{ pkgs , config , lib , ... }: with lib; let cfg = config.eboskma.greetd; style = builtins.replaceStrings [ "{WALLPAPER}" ] [ (builtins.toString ../../home-manager/modules/sway/wallpapers/river-2560.png) ] (builtins.readFile ./greetd.css); in { options.eboskma.greetd = { enable = mkEnableOption "enable greetd"; }; config = mkIf cfg.enable { services.greetd = { enable = true; restart = true; settings = { default_session = { command = "${pkgs.sway}/bin/sway --config /etc/greetd/sway-config"; }; }; }; environment.systemPackages = with pkgs; [ greetd.gtkgreet quintom-cursor-theme papirus-icon-theme arc-theme ]; environment.etc = { "greetd/sway-config" = { text = '' # `-l` activates layer-shell mode. Notice that `swaymsg exit` will run after gtkgreet. exec "${pkgs.greetd.gtkgreet}/bin/gtkgreet -l -s /etc/greetd/gtkgreet.css; swaymsg exit" bindsym Mod4+shift+e exec swaynag \ -t warning \ -m 'What do you want to do?' \ -b 'Poweroff' 'systemctl poweroff' \ -b 'Reboot' 'systemctl reboot' include /etc/sway/config.d/* ''; user = "greeter"; group = "greeter"; }; "greetd/environments" = { text = '' ${pkgs.sway}/bin/sway ${pkgs.bash}/bin/bash ''; user = "greeter"; group = "greeter"; }; "greetd/gtkgreet.css" = { text = style; user = "greeter"; group = "greeter"; }; "sway/config.d/systemd-env.conf" = { text = '' exec_always --no-startup-id systemctl --user import-environment _JAVA_AWT_WM_NONREPARENTING MOZ_ENABLE_WAYLAND MOZ_DBUS_REMOTE QT_QPA_PLATFORM QT_WAYLAND_DISABLE_WINDOWDECORATION QT_QPA_PLATFORMTHEME SDL_VIDEODRIVER SSH_AUTH_SOCK exec_always --no-startup-id dbus-update-activation-environment --systemd _JAVA_AWT_WM_NONREPARENTING MOZ_ENABLE_WAYLAND MOZ_DBUS_REMOTE QT_QPA_PLATFORM QT_WAYLAND_DISABLE_WINDOWDECORATION QT_QPA_PLATFORMTHEME SDL_VIDEODRIVER SSH_AUTH_SOCK ''; }; "xdg/gtk-3.0/settings.ini" = { text = generators.toINI { } { Settings = { gtk-theme-name = "Arc-Dark"; gtk-icon-theme-name = "Papirus-Dark"; gtk-cursor-theme-name = "Quintom_Ink"; gtk-application-prefer-dark-theme = "true"; }; }; }; }; }; }