{ pkgs, ... }: { environment.systemPackages = with pkgs; [ pavucontrol libinput libinput-gestures libnotify wmctrl playerctl xdg-utils shared-mime-info libsecret gnome-text-editor loupe evince seahorse nautilus gamescope ]; programs = { sway = { enable = true; wrapperFeatures.base = true; wrapperFeatures.gtk = true; extraOptions = [ "--unsupported-gpu" ]; extraPackages = with pkgs; [ swayidle swaylock swaybg grim slurp wl-clipboard pulseaudio sway-contrib.grimshot foot kitty dotool mako espanso-wayland ]; }; uwsm = { enable = true; waylandCompositors = { sway = { prettyName = "Sway"; comment = "Sway compositor managed by UWSM"; binPath = "${pkgs.sway}/bin/sway"; extraArgs = [ "--unsupported-gpu" ]; }; big_picture = { prettyName = "Steam Big Picture"; comment = "Launch in big picture mode within a gamescope container"; binPath = "${pkgs.gamescope}/bin/gamescope"; extraArgs = [ "-e" "-W 1920" "-H 1080" "--" "/usr/bin/steam" "-tenfoot" ]; }; }; }; light.enable = true; dconf.enable = true; seahorse.enable = true; }; security = { polkit.enable = true; pam.services = { greetd.enableGnomeKeyring = true; login.enableGnomeKeyring = true; swaylock.text = '' auth sufficient pam_unix.so try_first_pass likeauth nullok auth sufficient pam_fprintd.so auth include login ''; }; }; services = { greetd = { enable = true; settings = { default_session = { command = "${pkgs.tuigreet}/bin/tuigreet --time --cmd 'uwsm start -- sway-uwsm.desktop' --remember --asterisks''"; user = "greeter"; }; }; }; logind.settings.Login = { HandleLidSwitch = "suspend"; HandleLidSwitchExternalPower = "suspend"; }; dbus.packages = [ pkgs.seahorse pkgs.gnome-keyring pkgs.gcr ]; gnome.gcr-ssh-agent.enable = true; gvfs.enable = true; }; users.users.alisceon.extraGroups = [ "video" "input" ]; }