diff --git a/flake.lock b/flake.lock index f38583c..2256798 100644 --- a/flake.lock +++ b/flake.lock @@ -198,11 +198,11 @@ ] }, "locked": { - "lastModified": 1716711219, - "narHash": "sha256-TnZETiQPXbyT5mdCHMOyrJnx2+BwroMBRrguciz1vEo=", + "lastModified": 1716930911, + "narHash": "sha256-t4HT5j3Jy7skRB5PINnxcEBCkgE89rGBpwTI7YS4Ffo=", "owner": "nix-community", "repo": "home-manager", - "rev": "05e6ba83eb3585ce0aff7b41e4bd0e317d05ad4a", + "rev": "a9b36cbe9292a649222b89fdb9ae9907e9c74086", "type": "github" }, "original": { @@ -256,11 +256,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1716715385, - "narHash": "sha256-fe6Z33pbfqu4TI5ijmcaNc5vRBs633tyxJ12HTghy3w=", + "lastModified": 1716881121, + "narHash": "sha256-oTf3enbe/lbiNzsyZ8ria+422hx4e/FB3xQcY2LPnJw=", "owner": "nixos", "repo": "nixos-hardware", - "rev": "2e7d6c568063c83355fe066b8a8917ee758de1b8", + "rev": "806e9d4a933dd1e75592e88894d4bd2f296f5bbf", "type": "github" }, "original": { diff --git a/modules/nixos/graphical-interface/desktop-manager/kde/default.nix b/modules/nixos/graphical-interface/desktop-manager/kde/default.nix new file mode 100644 index 0000000..09803fd --- /dev/null +++ b/modules/nixos/graphical-interface/desktop-manager/kde/default.nix @@ -0,0 +1,25 @@ +{ + config, + lib, + pkgs, + ... +}: +with lib; +with lib.wyrdgard; +let + cfg = config.wyrdgard.graphical-interface.desktop-manager.kde; +in +{ + options.wyrdgard.graphical-interface.desktop-manager.kde = with types; { + enable = mkEnableOption "Whether to enable a kde plasma6"; + }; + + config = mkIf cfg.enable { + environment.systemPackages = with pkgs; [ xdg-utils ]; + + services = { + xserver = enabled; + desktopManager.plasma6 = enabled; + }; + }; +} diff --git a/modules/nixos/graphical-interface/display-manager/greetd/default.nix b/modules/nixos/graphical-interface/display-manager/greetd/default.nix new file mode 100644 index 0000000..638bac4 --- /dev/null +++ b/modules/nixos/graphical-interface/display-manager/greetd/default.nix @@ -0,0 +1,39 @@ +{ + pkgs, + config, + lib, + ... +}: +with lib; +with lib.wyrdgard; +let + cfg = config.wyrdgard.graphical-interface.display-manager.greetd; + + hyperland = config.wyrdgard.graphical-interface.desktop-manager.hyperland; + hyprland-session = "${inputs.hyprland.packages.${pkgs.system}.hyperland}/share/wayland-sessions"; + kde-session = "${inputs.plasma6.packages.${pkgs.system}.plasma6}/share/wayland-sessions"; + + tuigreet = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --remember --remember-session"; + + command = if hyperland.enable then "${tuigreet} --sessions ${hyprland-session}" else "${tuigreet} --sessions ${kde-session}"; +in +{ + options.wyrdgard.graphical-interface.display-manager.greetd = with types; { + enable = mkEnableOption "Whether to enable a sddm"; + }; + + config = mkIf cfg.enable { + services = { + xserver = enabled; + greetd = { + enable = true; + settings = { + default_session = { + command = command; + user = config.wyrdgard.user.name; + }; + }; + }; + }; + }; +} diff --git a/modules/nixos/graphical-interface/display-manager/sddm/default.nix b/modules/nixos/graphical-interface/display-manager/sddm/default.nix new file mode 100644 index 0000000..0f3f499 --- /dev/null +++ b/modules/nixos/graphical-interface/display-manager/sddm/default.nix @@ -0,0 +1,27 @@ +{ + config, + lib, + ... +}: +with lib; +with lib.wyrdgard; +let + cfg = config.wyrdgard.graphical-interface.display-manager.sddm; +in +{ + options.wyrdgard.graphical-interface.display-manager.sddm = with types; { + enable = mkEnableOption "Whether to enable a sddm"; + }; + + config = mkIf cfg.enable { + services = { + xserver = enabled; + displayManager = { + sddm = { + enable = true; + wayland.enable = true; + }; + }; + }; + }; +}