nixos_config/hosts/common/wm/sway.nix
2025-12-11 20:23:32 +01:00

95 lines
No EOL
2.5 KiB
Nix

{ config, pkgs, lib, hostName, ... }:
{
environment.systemPackages = with pkgs; [
mako # notification system developed by swaywm maintainer
rofi
libinput
libinput-gestures
wmctrl
seahorse
libsecret
gnome-text-editor
nautilus
playerctl
libnotify
];
# enable Sway window manager
programs = {
sway = {
enable = true;
wrapperFeatures.base = true;
wrapperFeatures.gtk = true;
extraOptions = [
"--unsupported-gpu"
];
extraPackages = with pkgs; [
swayidle
swaylock
swayimg
swaybg
grim
slurp
wl-clipboard
pulseaudio
sway-contrib.grimshot
kitty
kitty-themes
];
}; # end sway
uwsm = {
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 = {
default_session = {
command = "${pkgs.tuigreet}/bin/tuigreet --time --cmd 'uwsm start -- sway-uwsm.desktop' --remember --asterisks''";
user = "greeter";
}; # end default_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;
}; # end services
users.users.alisceon.extraGroups = [ "video" "input" ];
}