dot

NixOS dotfiles
git clone https://git.echoz.io/dot.git
Log | Files | Refs

commit 9c9a86031ad5aae978807f77ff1d89afeacbcacc
parent 5fc4949f62241ad471e49b80e088ddaffd23e3aa
Author: Chris <chris@echoz.io>
Date:   Sun, 23 Nov 2025 22:09:28 +0100

feat(greetd): configure hypr{land,paper}, waybar, cursor with home-manager

Diffstat:
Mmodules/greetd/default.nix | 138+++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------
Mmodules/kernel/default.nix | 3++-
Mmodules/waybar/default.nix | 4++--
3 files changed, 101 insertions(+), 44 deletions(-)

diff --git a/modules/greetd/default.nix b/modules/greetd/default.nix @@ -5,54 +5,110 @@ style, user, - - home-manager, ... }: +let + hmUserCfg = config.home-manager.users.${user}; +in { config = { + users.users.greeter = { + createHome = true; + home = "/var/greeter"; + }; + + home-manager.users.greeter = { + home = { + stateVersion = config.system.stateVersion; + pointerCursor = hmUserCfg.home.pointerCursor; + }; + + wayland.windowManager.hyprland = { + enable = true; + package = null; + portalPackage = null; + settings = { + inherit (hmUserCfg.wayland.windowManager.hyprland.settings) + input + general + misc + ecosystem + decoration + animations + ; + windowrule = "float, class:gtkgreet"; + layerrule = "blur,waybar"; + exec-once = "${lib.getExe pkgs.gtkgreet} -s ${pkgs.writeText "gtkgreet-style.css" '' + window, button, entry { + background: ${style.colors.bg.rgba}; + border: none; + box-shadow: none; + text-shadow: none; + } + label, window, button, entry { + color: #${style.colors.fg.hex}; + } + #command-selector arrow { + opacity: 0; + } + #clock { + margin-bottom: -48px; + opacity: 0; + } + ''} -c 'uwsm start hyprland-uwsm.desktop'; hyprctl dispatch exit"; + }; + }; + + services.hyprpaper = { + enable = true; + settings = { + inherit (hmUserCfg.services.hyprpaper.settings) + preload + wallpaper + ; + }; + }; + + programs.waybar = { + enable = true; + systemd.enable = true; + + inherit (hmUserCfg.programs.waybar) style; + + settings = { + mainBar = { + inherit (hmUserCfg.programs.waybar.settings.mainBar) + layer + position + height + "clock#date" + "clock" + "clock#utc" + battery + cpu + memory + disk + ; + modules-center = [ + "clock#date" + "clock" + "clock#utc" + ]; + modules-right = [ + "battery" + "cpu" + "memory" + "disk" + ]; + }; + }; + }; + }; + services.greetd = { enable = true; settings = { - default_session.command = "Hyprland --config ${ - pkgs.writeText "greetd-hyprland.conf" ( - home-manager.lib.hm.generators.toHyprconf { - attrs = { - inherit (config.home-manager.users.${user}.wayland.windowManager.hyprland.settings) - input - general - misc - decoration - animations - ; - windowrule = "float, class:gtkgreet"; - exec-once = [ - "${lib.getExe pkgs.gtkgreet} -s ${pkgs.writeText "greetd-style.css" '' - window, button, entry { - background: ${style.colors.bg.rgba}; - border: none; - box-shadow: none; - text-shadow: none; - } - label, window, button, entry { - color: #${style.colors.fg.hex}; - } - #command-selector arrow { - opacity: 0; - } - ''} -c 'uwsm start hyprland-uwsm.desktop'; hyprctl dispatch exit" - "${lib.getExe pkgs.hyprpaper} -c ${ - pkgs.writeText "greetd-hyprpaper.conf" ( - home-manager.lib.hm.generators.toHyprconf { - attrs = config.home-manager.users.${user}.services.hyprpaper.settings; - } - ) - }" - ]; - }; - } - ) - }"; + default_session.command = "uwsm start hyprland-uwsm.desktop"; }; }; }; diff --git a/modules/kernel/default.nix b/modules/kernel/default.nix @@ -1,4 +1,5 @@ { pkgs, nixpkgs-stable, ... }: { - boot.kernelPackages = nixpkgs-stable.legacyPackages.${pkgs.stdenv.hostPlatform.system}.linuxPackages_lqx; + boot.kernelPackages = + nixpkgs-stable.legacyPackages.${pkgs.stdenv.hostPlatform.system}.linuxPackages_lqx; } diff --git a/modules/waybar/default.nix b/modules/waybar/default.nix @@ -39,11 +39,11 @@ }; clock = { interval = 1; - format = " {:%I:%M:%S%p}"; + format = " {:%I:%M:%S %p}"; }; "clock#utc" = { interval = 1; - format = " {:%I:%M:%S%p}"; + format = " {:%I:%M:%S %p}"; timezone = "UTC"; }; cpu = {