Files
samfelag/modules/desktop/tools/greetd.nix
2024-12-30 18:59:03 +01:00

91 lines
2.3 KiB
Nix

{ inputs, config, lib, pkgs, ... }:
let
cfg = config.samfelag.modules.desktop.tools.greetd;
in {
options.samfelag.modules.desktop.tools.greetd = with lib; {
enable = mkEnableOption "Greetd based greeter";
wm_cmd = lib.my.mkOpt' types.str "" "Window manager command";
};
config = lib.mkIf cfg.enable {
environment.systemPackages = with pkgs; [
greetd.gtkgreet
cage
];
services.greetd = {
enable = true;
settings = {
default_session = {
command = "${pkgs.cage}/bin/cage -d -s ${pkgs.greetd.gtkgreet}/bin/gtkgreet -- -c ${cfg.wm_cmd} -s /etc/greetd/greetd.css";
user = config.user.name;
};
};
};
environment.etc."greetd/environments".text = ''
${cfg.wm_cmd}
'';
environment.etc."greetd/greetd.css".text = ''
window {
background-image: url("file://${config.samfelag.modules.desktop.wallpaper}");
background-size: cover;
background-position: center;
font-family: Iosevka;
}
label#clock {
font-size: 25px;
color: #${config.colorScheme.palette.base00};
}
entry {
color: #${config.colorScheme.palette.base05};
padding: 0px 15px;
background-color: #${config.colorScheme.palette.base00};
border-color: #${config.colorScheme.palette.base02};
border-radius: 20px;
}
button.combo {
box-shadow: none;
margin-left: 5px;
border-radius: 20px;
border-color: #${config.colorScheme.palette.base02};
background-image: image(#${config.colorScheme.palette.base00});
color: #${config.colorScheme.palette.base05};
}
menu {
color: #${config.colorScheme.palette.base05};
background-color: #${config.colorScheme.palette.base00};
}
menuitem {
border-radius: 20px;
background-color: #${config.colorScheme.palette.base00};
}
menuitem:hover {
background-color: #${config.colorScheme.palette.base0C};
}
.text-button {
border-radius: 20px;
border-color: #${config.colorScheme.palette.base02};
color: #${config.colorScheme.palette.base05};
background-image: image(#${config.colorScheme.palette.base00});
}
box#body {
padding: 50px;
}
'';
};
}