Files

46 lines
1.3 KiB
Nix

{ pkgs, ... }:
{
# System-level Sway enablement. User-level configuration (keybinds, output
# layout, bar, etc.) lives in modules/home/sway.nix via home-manager.
programs.sway = {
enable = true;
wrapperFeatures.gtk = true;
};
# greetd + tuigreet: minimal TUI greeter that launches Sway directly under
# Wayland. Avoids the SDDM dependency on kwin_wayland for its own greeter UI.
services.greetd = {
enable = true;
settings.default_session = {
command = "${pkgs.tuigreet}/bin/tuigreet --time --remember --cmd sway";
user = "greeter";
};
};
# XDG desktop portals — required for screensharing, file pickers, etc. under Wayland.
xdg.portal = {
enable = true;
wlr.enable = true;
extraPortals = with pkgs; [
xdg-desktop-portal-gtk
];
};
# Polkit is needed by many GUI apps (e.g. NetworkManager applet).
security.polkit.enable = true;
# Real-time scheduling for low-latency audio/graphics; PipeWire benefits too.
security.pam.loginLimits = [
{ domain = "@users"; item = "rtprio"; type = "-"; value = "1"; }
];
# dconf is required by many GTK apps for settings storage.
programs.dconf.enable = true;
# GTK theming + icon-cache plumbing.
programs.thunar.enable = true;
services.gvfs.enable = true;
services.tumbler.enable = true;
}