{ config, pkgs, lib, hostName, ... }: { environment.systemPackages = with pkgs; [ pavucontrol libinput libinput-gestures libnotify wmctrl playerctl # MIME utilities xdg-utils shared-mime-info # GNOME utilities libsecret # Keyring backend gnome-text-editor loupe evince seahorse nautilus ]; # enable Sway window manager programs = { sway = { enable = true; wrapperFeatures.base = true; wrapperFeatures.gtk = true; extraOptions = [ "--unsupported-gpu" ]; extraPackages = with pkgs; [ swayidle # idle management swaylock # screen locker swaybg # wallpaper setting tool grim # screenshot tool slurp # selection tool for screenshots wl-clipboard # clipboard support (mostly for grim/slurp) pulseaudio # pulseaudio support sway-contrib.grimshot # screenshot tool kitty # terminal emulator dotool # tool to send keyboard/mouse input to wayland apps mako # notification system developed by swaywm maintainer espanso-wayland # text expander ]; }; # end sway uwsm = { # responsible for creating xdg-portal and systemd insteraction for sway enable = true; waylandCompositors = { sway = { prettyName = "Sway"; comment = "Sway compositor managed by UWSM"; binPath = "${pkgs.sway}/bin/sway"; extraArgs = [ "--unsupported-gpu" ]; }; }; }; # end uwsm light = { enable = true; }; # end light dconf.enable = true; seahorse.enable = true; }; # end programs security = { polkit.enable = true; pam.services = { greetd.enableGnomeKeyring = true; #greetd-password.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 ''; }; # end swaylock }; # end pam.services }; # end security services = { greetd = { enable = true; settings = { initial_session = { command = "uwsm start -- sway-uwsm.desktop"; user = "alisceon"; }; # end initial_session default_session = { command = "${pkgs.tuigreet}/bin/tuigreet --time --cmd 'uwsm start -- sway-uwsm.desktop' --remember --asterisks''"; user = "greeter"; }; # end initial_session }; # end settings }; # end greetd logind = { settings = { Login = { HandleLidSwitch = "suspend"; HandleLidSwitchExternalPower = "suspend"; }; }; }; # end logind dbus.packages = [ pkgs.seahorse pkgs.gnome-keyring pkgs.gcr ]; gnome.gcr-ssh-agent.enable = true; # SSH key management via gnome keyring gvfs.enable = true; # some support for nautilus operations }; # end services users.users.alisceon.extraGroups = [ "video" "input" ]; # input group required for libinput-gestures }