From 7d407bbd0bf286d88796a9230510f57aea83047f Mon Sep 17 00:00:00 2001 From: Aleksandr Lebedev Date: Thu, 9 Oct 2025 18:57:52 +0200 Subject: [PATCH] Quickshell greeter --- flake.lock | 20 +++++++++---------- flake.nix | 1 + .../kylekrein/niri/desktopShell.nix | 1 + modules/nixos/presets/workstation/default.nix | 16 +++++++++++++++ modules/nixos/windowManagers/niri/default.nix | 3 --- overlays/quickshell/default.nix | 3 +++ systems/x86_64-linux/andrej-pc/default.nix | 19 ++++++++++++++++-- 7 files changed, 48 insertions(+), 15 deletions(-) create mode 100644 overlays/quickshell/default.nix diff --git a/flake.lock b/flake.lock index 7e4c82d..d73b9c0 100644 --- a/flake.lock +++ b/flake.lock @@ -332,11 +332,11 @@ ] }, "locked": { - "lastModified": 1759959372, - "narHash": "sha256-JBYtCba6pGFGK65Cn0vSrRWnH31Gn/mS7sChNcacVGc=", + "lastModified": 1759979887, + "narHash": "sha256-Q+ovF48Jn2t+jT0MKCWTRoxbLe6pnLeHXmFH67JYpnU=", "owner": "KyleKrein", "repo": "DesktopShell", - "rev": "981e527560997d717bc86f6a8979c870c96071d2", + "rev": "c12eafa1db33d611e930bb516939fbf1665a8f3f", "type": "github" }, "original": { @@ -1201,11 +1201,11 @@ }, "master": { "locked": { - "lastModified": 1759959294, - "narHash": "sha256-tp2XyKMuXskbyvEcKcFCRvmmm0NgyTWhEQKeimu+LqU=", + "lastModified": 1759997385, + "narHash": "sha256-wRxqHCD0iW+jsWa2hE1HinF90iz7+dfL/T9SA3hoH/E=", "owner": "nixos", "repo": "nixpkgs", - "rev": "720964439d71f7f662a60d7008968ae6988d6e3c", + "rev": "f16815c7683f77a7cd8f204d9d1aca84f5908f6f", "type": "github" }, "original": { @@ -1730,11 +1730,11 @@ ] }, "locked": { - "lastModified": 1759610621, - "narHash": "sha256-P3UPFd95mS/3aNgy40nCXAmyfR2bEEBd+tX6xfkYFb0=", + "lastModified": 1759997568, + "narHash": "sha256-xQyzPkgpgjAceJKwZhLU2//Y1jAmvPGOq80svqkWFhQ=", "ref": "refs/heads/master", - "rev": "c5c438f1cd1a76660a8658ef929a3d19e968e2ce", - "revCount": 689, + "rev": "3e32ae595f97bd2d2e5ed4512fb4bb25edb4eae6", + "revCount": 691, "type": "git", "url": "https://git.outfoxxed.me/outfoxxed/quickshell" }, diff --git a/flake.nix b/flake.nix index ff7c896..3b89bf4 100644 --- a/flake.nix +++ b/flake.nix @@ -146,6 +146,7 @@ lanzaboote.nixosModules.lanzaboote impermanence.nixosModules.impermanence declarative-jellyfin.nixosModules.default + desktopShell.nixosModules.greeter ]; systems.hosts.kylekrein-framework12.modules = with inputs; [ diff --git a/homes/x86_64-linux/kylekrein/niri/desktopShell.nix b/homes/x86_64-linux/kylekrein/niri/desktopShell.nix index 1aea583..597840c 100644 --- a/homes/x86_64-linux/kylekrein/niri/desktopShell.nix +++ b/homes/x86_64-linux/kylekrein/niri/desktopShell.nix @@ -48,6 +48,7 @@ in ".local/share/color-schemes/DankMatugen.colors" ]; directories = [ + ".cache/quickshell/dankshell" #".config/qt5ct" #".config/qt6ct" #".config/gtk-3.0" diff --git a/modules/nixos/presets/workstation/default.nix b/modules/nixos/presets/workstation/default.nix index 399450d..45cbef1 100644 --- a/modules/nixos/presets/workstation/default.nix +++ b/modules/nixos/presets/workstation/default.nix @@ -106,6 +106,22 @@ in { #services.gvfs.enable = true; # Mount, trash, and other functionalities #services.tumbler.enable = true; # Thumbnail support for images + #greeter + programs.dankMaterialShell.greeter = { + enable = config.${namespace}.windowManagers.niri.enable || config.programs.hyprland.enable; + compositor.name = + if config.${namespace}.windowManagers.niri.enable + then "niri" + else "hyprland"; + configHome = let + imp = config.${namespace}.impermanence; + in "${ + if imp.enable + then imp.persistentStorage + else "" + }${config.users.users.kylekrein.home}"; + }; + security.rtkit.enable = true; services.pipewire = { enable = true; diff --git a/modules/nixos/windowManagers/niri/default.nix b/modules/nixos/windowManagers/niri/default.nix index 59bc8d2..d7a175c 100644 --- a/modules/nixos/windowManagers/niri/default.nix +++ b/modules/nixos/windowManagers/niri/default.nix @@ -36,8 +36,5 @@ in { gamescope xwayland-satellite-unstable ]; - - #greeter - services.xserver.displayManager.gdm.enable = true; }; } diff --git a/overlays/quickshell/default.nix b/overlays/quickshell/default.nix new file mode 100644 index 0000000..8a6a7d8 --- /dev/null +++ b/overlays/quickshell/default.nix @@ -0,0 +1,3 @@ +{inputs, ...}: final: prev: { + quickshell = inputs.quickshell.packages.${prev.system}.quickshell; +} diff --git a/systems/x86_64-linux/andrej-pc/default.nix b/systems/x86_64-linux/andrej-pc/default.nix index 1a4651c..32875ba 100644 --- a/systems/x86_64-linux/andrej-pc/default.nix +++ b/systems/x86_64-linux/andrej-pc/default.nix @@ -48,9 +48,24 @@ with lib.custom; { }; }; + #greeter + programs.dankMaterialShell.greeter = { + enable = config.${namespace}.windowManagers.niri.enable || config.programs.hyprland.enable; + compositor.name = + if config.${namespace}.windowManagers.niri.enable + then "niri" + else "hyprland"; + configHome = let + imp = config.${namespace}.impermanence; + in "${ + if imp.enable + then imp.persistentStorage + else "" + }${config.users.users.andrej.home}"; + }; + services.flatpak = enabled; security.pam.services.quickshell = {}; - services.displayManager.sddm.enable = true; services.xserver = { enable = true; }; @@ -113,7 +128,7 @@ with lib.custom; { teams-for-linux ]; systemd.network.wait-online.enable = lib.mkForce false; - networking.wireless.enable = false; + networking.wireless.enable = mkForce false; networking.networkmanager.enable = true; services.udisks2.enable = true;