nixos_config/nixos/modules/wm/sway.nix

96 lines
2 KiB
Nix
Raw Normal View History

2026-03-10 21:50:51 +01:00
{ 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
];
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" ];
};
};
};
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" ];
}