{ lib, config, pkgs, ... }: { programs = { swaylock.enable = true; }; services = { swayidle = { enable = true; events = [ { event = "before-sleep"; command = "${pkgs.swaylock}/bin/swaylock -fF"; } ]; timeouts = [ { timeout = 300; command = "${pkgs.swaylock}/bin/swaylock -fF"; } { timeout = 330; command = "${pkgs.sway}/bin/swaymsg 'output * dpms off'"; resumeCommand = "${pkgs.sway}/bin/swaymsg 'output * dpms on'"; } ]; }; swaync = { enable = true; }; swayosd = { enable = true; display = "DP-1"; }; }; wayland.windowManager = { sway = { enable = true; extraConfig = '' smart_gaps inverse_outer ''; config = { bars = []; window = { commands = [ { command = "floating enable, sticky enable, resize set 20 ppt 40 ppt, border pixel 10"; criteria = { app_id = "^launcher"; }; } ]; }; gaps = { inner = 30; vertical = 50; horizontal = 400; # smartGaps = true; smartBorders = "on"; }; input = { "type:keyboard" = { xkb_layout = "eu"; xkb_options = "compose:rwin"; }; "type:touchpad" = { tap = "enabled"; natural_scroll = "enabled"; dwt = "enabled"; accel_profile = "adaptive"; pointer_accel = "0.5"; }; }; keybindings = let modifier = config.wayland.windowManager.sway.config.modifier; in lib.mkOptionDefault { "XF86AudioRaiseVolume" = "exec wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"; "XF86AudioLowerVolume" = "exec wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"; "XF86AudioMute" = "exec wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; "XF86MonBrightnessUp" = "exec brightnessctl set 10%+"; "XF86MonBrightnessDown" = "exec brightnessctl set 10%-"; "XF86AudioPlay" = "exec playerctl play-pause"; "XF86AudioNext" = "exec playerctl next"; "XF86AudioPrev" = "exec playerctl previous"; "${modifier}+o" = "for_window [class=obsidian] scratchpad show"; }; menu = "kitty --app-id launcher -e sway-launcher-desktop"; modifier = "Mod4"; output = { DP-1 = { resolution = "3840x2160@30Hz"; position = "1280 0"; # background = "/home/muhh/Sync/Backgrounds/wald.jpg fill"; scale = "1.5"; }; HDMI-A-1 = { resolution = "1920x1080@60.000Hz"; transform = "180"; position = "0 0"; scale = "1.5"; # background = "/home/muhh/Sync/Backgrounds/pfuetze.jpg fill"; }; }; seat = { "*" = { hide_cursor = "5000"; }; }; terminal = "kitty"; window = { titlebar = false; }; workspaceOutputAssign = map (x: { workspace = x; output = "DP-1"; }) ["1" "2" "3" "4" "5" "6" "7"] ++ map (x: { workspace = x; output = "HDMI-A-1"; }) ["8" "9" "10"]; }; wrapperFeatures.gtk = true; }; }; }