46 lines
1.3 KiB
Nix
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;
|
|
}
|