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:
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 = {