{ pkgs, config, lib, ... }: with lib; let cfg = config.eboskma.greetd; 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; 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"; }; "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 ''; }; }; }; }