# # SWAY CONFIG # # REQUIREMENTS: # | foot | terminal emulator # | brightnessctl | control brightness # | pipewire | audio processor # | pipewire-pulse | PulseAudio support for pipewire # | wireplumber | audio session manager # | mako | notification service # | bemenu | menu prompt # | yambar | status bar # | wlsunset | screen temperature # | swaylock | lock service # | swayidle | idle management # | mpd | music server # | lavalauncher | shortcut menu # Keys set $mod Mod4 set $up j set $down k set $left l set $right semicolon # Applications set $term footclient set $shell bash -c set $lock swaylock # Sizes set $igap 20 set $ogap 30 # Wallpaper set $wallpaper ~/.cache/wallpaper set $lockwallpaper ~/.cache/lockwallpaper exec [ -f ~/.cache/wallpaper ] || cp /usr/share/backgrounds/sway/*_1920x1080.png ~/.cache/wallpaper exec [ -f ~/.cache/lockwallpaper ] || cp ~/.cache/wallpaper ~/.cache/lockwallpaper # Default settings exec brightnessctl set 20% # Services exec mpd exec foot --server >/var/log/user/foot.log 2>&1 exec mako >/var/log/user/mako.log 2>&1 exec wlsunset -l 51.5 -L -0.1 -t 3000 -T 6000 >/var/log/user/wlsunset.log 2>&1 exec pipewire >/var/log/user/pipewire.log 2>&1 exec pipewire-pulse >/var/log/user/pipewire-pulse.log 2>&1 exec wireplumber >/var/log/user/wireplumber.log 2>&1 exec lavalauncher >/var/log/user/lavalauncher.log 2>&1 exec_always sh -c "pkill yambar; yambar >/var/log/user/yambar.log 2>&1" exec swayidle -w \ timeout 300 'swaylock' \ timeout 310 'swaymsg "output * dpms off"' \ resume 'swaymsg "output * dpms on"' \ timeout 5 'pgrep -x swaylock && swaymsg "output * power off"' \ resume 'swaymsg "output * dpms on"' \ before-sleep 'swaylock' # Inputs seat * hide_cursor when-typing enable input "type:touchpad" { dwt enable natural_scroll disable tap enable middle_emulation enable } input "type:keyboard" { xkb_layout gb xkb_options caps:ctrl_modifier } # Outputs output * bg $wallpaper fill output eDP-1 { resolution 1920x1080@60Hz scale 1.4 } # Gaps gaps inner $igap gaps outer $ogap # Borders # smart_borders on default_border pixel 2px set $focuscol "#b4befe" set $inactcol "#313244" client.focused $focuscol $focuscol #000000 $focuscol client.unfocused $inactcol $inactcol #000000 $inactcol client.focused_inactive $inactcol $inactcol #000000 $inactcol # Keybindings floating_modifier $mod normal bindsym $mod+Space exec bemenu-run --prompt='Run: ' # bindsym Menu exec bemenu-run --prompt='Run: ' bindsym $mod+Return exec $term bindsym $mod+q kill bindsym $mod+r reload bindsym $mod+e exec thunar bindsym $mod+Shift+e exec swaynag -t warning -m 'Exit Sway?' -B 'Yes, exit sway' 'swaymsg exit' bindsym Ctrl+Alt+Delete exit bindsym $mod+n exec makoctl dismiss bindsym $mod+i exec $term vim bindsym $mod+w exec swayimg -g ~/images/wallpaper bindsym $mod+p exec mpd-menu bindsym $mod+bracketright exec mpc next bindsym $mod+bracketleft exec mpc prev bindsym $mod+o exec mpc stop bindswitch --reload --locked lid:off exec $lock bindsym XF86Sleep exec $lock bindsym XF86PowerOff exec sudo halt bindsym --locked XF86MonBrightnessUp exec brightnessctl -s set +10% bindsym --locked XF86MonBrightnessDown exec brightnessctl -s set 10-% bindsym XF86AudioMute exec wpctl set-mute @DEFAULT_SINK@ toggle bindsym XF86AudioRaiseVolume exec wpctl set-volume --limit 1.0 @DEFAULT_SINK@ 5%+ bindsym XF86AudioLowerVolume exec wpctl set-volume @DEFAULT_SINK@ 5%- bindsym $mod+h splith bindsym $mod+v splitv bindsym $mod+c layout stacking bindsym $mod+t layout tabbed bindsym $mod+s layout toggle split bindsym $mod+m fullscreen bindsym $mod+Tab floating toggle bindsym $mod+Control+Tab focus mode_toggle bindsym $mod+y sticky toggle bindsym $mod+Shift+Grave move scratchpad bindsym $mod+Grave scratchpad show # All Gaps (toggle, increase, reduce, reset) bindsym $mod+g gaps inner current toggle $igap, gaps outer current toggle $ogap bindsym $mod+Ctrl+g gaps inner current plus 10, gaps outer current plus 10 bindsym $mod+Shift+g gaps inner current minus 10, gaps outer current minus 10 bindsym $mod+Shift+Ctrl+g gaps inner all set $igap, gaps outer all set $ogap # Outer gaps (increase, reduce, reset) bindsym $mod+Ctrl+o gaps outer current plus 10, gaps vertical current plus 10 bindsym $mod+Shift+o gaps outer current minus 10, gaps vertical current minus 10 bindsym $mod+Shift+Ctrl+o gaps outer all set $ogap # Inner gaps (increase, reduce, reset) bindsym $mod+Ctrl+i gaps inner current plus 10, gaps vertical current plus 10 bindsym $mod+Shift+i gaps inner current minus 10, gaps vertical current minus 10 bindsym $mod+Shift+Ctrl+i gaps inner all set $igap # Focus window bindsym $mod+$up focus up bindsym $mod+$down focus down bindsym $mod+$left focus left bindsym $mod+$right focus right bindsym $mod+a focus parent bindsym $mod+Ctrl+a focus child # Swap window bindsym $mod+Shift+$up move up 20px bindsym $mod+Shift+$down move down 20px bindsym $mod+Shift+$left move left 20px bindsym $mod+Shift+$right move right 20px # Resize window bindsym $mod+Shift+Equal resize grow height 20px bindsym $mod+Shift+Minus resize shrink height 20px bindsym $mod+Control+Minus resize shrink width 20px bindsym $mod+Control+Equal resize grow width 20px # Switch to workspace bindsym $mod+1 workspace number 1 bindsym $mod+2 workspace number 2 bindsym $mod+3 workspace number 3 bindsym $mod+4 workspace number 4 bindsym $mod+5 workspace number 5 bindsym $mod+6 workspace number 6 bindsym $mod+7 workspace number 7 bindsym $mod+8 workspace number 8 bindsym $mod+9 workspace number 9 bindsym $mod+0 workspace number 0 # Move focused to workspace bindsym $mod+Shift+1 move container to workspace number 1 bindsym $mod+Shift+2 move container to workspace number 2 bindsym $mod+Shift+3 move container to workspace number 3 bindsym $mod+Shift+4 move container to workspace number 4 bindsym $mod+Shift+5 move container to workspace number 5 bindsym $mod+Shift+6 move container to workspace number 6 bindsym $mod+Shift+7 move container to workspace number 7 bindsym $mod+Shift+8 move container to workspace number 8 bindsym $mod+Shift+9 move container to workspace number 9 bindsym $mod+Shift+0 move container to workspace number 0 bindsym $mod+z mode "resize" mode "resize" { bindsym $up resize shrink height 10px bindsym $down resize grow height 10px bindsym $left resize shrink width 10px bindsym $right resize grow width 10px bindsym Up resize shrink height 10px bindsym Down resize grow height 10px bindsym Left resize shrink width 10px bindsym Right resize grow width 10px bindsym Return mode "default" bindsym Escape mode "default" } # Scripts bindsym $mod+b exec $shell 'bookmark' bindsym $mod+Insert exec $shell 'bookmark add' # APPS # Thunar Popups for_window [title="File Operation Progress"] floating enable for_window [title="Confirm to replace files"] floating enable # Bottles for_window [class="steam_proton"] floating enable for_window [class="steam_proton"] border disable for_window [app_id=mpv] floating enabled