{user}: { lib, pkgs, config, ... }: { services.greetd = { enable = true; settings = rec { sway_session = { command = "sway"; user = user; }; default_session = sway_session; }; }; home-manager.users.${user}.imports = [ (import ./home/swaylock.nix) { xdg.portal = { enable = true; configPackages = [pkgs.sway]; extraPortals = [pkgs.xdg-desktop-portal-sway pkgs.xdg-desktop-portal-gtk]; }; wayland.windowManager.sway = { enable = true; }; services.swayidle = { enable = true; systemdTarget = "graphical-session.target"; events = [ { event = "before-sleep"; command = "${pkgs.swaylock-effects}/bin/swaylock"; } { event = "lock"; command = "${pkgs.swaylock-effects}/bin/swaylock"; } ]; timeouts = [ { timeout = 300; command = "${pkgs.swaylock-effects}/bin/swaylock -f"; } { timeout = 600; command = "systemctl suspend"; } ]; }; services.mako.enable = true; programs.waybar = { enable = true; settings = { mainBar = { layer = "top"; position = "top"; height = 36; modules-left = ["sway/workspaces" "sway/window"]; modules-right = ["mpris" "pulseaudio" "clock" "tray" "battery"]; clock = { format = "πŸ“… {:%a %b-%d %I:%M %p}"; }; pulseaudio = { format-muted = "πŸ”‡ {volume}"; format = "{icon} {volume}"; format-icons.default = ["πŸ”ˆ" "πŸ”‰" "πŸ”Š"]; on-click = "${pkgs.pavucontrol}/bin/pavucontrol"; }; mpris = { format = "{player_icon} {artist} - {title}"; format-paused = "{status_icon} {player_icon} {artist} - {title}"; player-icons = { default = "▢️"; mpd = "🎡"; kdeconnect = "☎️"; }; status-icons = { paused = "⏸️"; }; }; battery = { format = "{icon} {capacity}%"; format-icons = ["🀏" "πŸͺ«" "πŸ”‹" "πŸ”‹"]; format-charging = "πŸ”Œ {capacity}%"; states = { warning = 30; critical = 15; }; }; }; }; systemd = { enable = true; target = "graphical-session.target"; }; }; } ]; }