feat(niri): giving niri a test drive

This commit is contained in:
2025-09-12 20:47:08 +02:00
parent 65de9592a0
commit f6722f4986
19 changed files with 329 additions and 107 deletions

View File

@@ -1,6 +1,7 @@
{
config,
lib,
pkgs,
...
}:
let
@@ -9,8 +10,11 @@ let
mkEnableOption
mkOption
types
mkMerge
;
cfg = config.nixos.services.greetd;
hyprcfg = config.nixos.programs.hyprland;
niricfg = config.nixos.programs.niri;
in
{
options = {
@@ -28,21 +32,47 @@ in
};
};
config = mkIf cfg.enable {
services.greetd =
let
session = {
command = "${lib.getExe config.programs.uwsm.package} start hyprland-uwsm.desktop";
user = cfg.user;
config =
let
usernames = builtins.attrNames config.home-manager.users;
username = builtins.head usernames;
in
mkMerge [
(mkIf cfg.enable { services.greetd.enable = true; })
(mkIf hyprcfg.enable {
services.greetd =
let
session = {
command = "${lib.getExe config.programs.uwsm.package} start hyprland-uwsm.desktop";
user = cfg.user;
};
in
{
settings = {
terminal.vt = 1;
default_session = session;
initial_session = session;
};
};
})
(mkIf niricfg.enable {
services.greetd = {
enable = true;
settings = rec {
tuigreet_session =
let
session = "${pkgs.niri-unstable}/bin/niri-session";
tuigreet = "${lib.getExe pkgs.tuigreet}";
in
{
command = "${tuigreet} --time --remember --cmd ${session}";
user = "greeter";
};
default_session = tuigreet_session;
};
};
in
{
enable = true;
settings = {
terminal.vt = 1;
default_session = session;
initial_session = session;
};
};
};
})
];
}