# # 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 40 set $ogap 40 # 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 2800 -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 ~/.config/sway/scripts/lock-screen # Inputs seat * hide_cursor when-typing enable input "type:touchpad" { dwt true # 'disable when typing' tap enable natural_scroll disable 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.3 } # Gaps gaps inner $igap gaps outer $ogap gaps horizontal 60 # 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 # bindsym Menu exec bemenu-run --prompt='Run: ' bindsym $mod+Insert exec $shell 'bookmark add' bindsym $mod+Return exec $term bindsym $mod+Shift+e exec swaynag -t warning -m 'Exit Sway?' -B 'Yes, exit sway' 'swaymsg exit' bindsym $mod+Space exec bemenu-run --prompt='Run: ' bindsym $mod+Shift+Space exec wmenu-run -p "Run" -f "Hack 12" -M 00ffff -m 000000 -N 000000 -n aaaaaa -S 00ffff -s 000000 bindsym $mod+b exec $shell 'bookmark' bindsym $mod+bracketleft exec mpc prev bindsym $mod+bracketright exec mpc next bindsym $mod+e exec thunar bindsym $mod+u exec swayimg -g ~/images/wallpaper bindsym $mod+i exec $term vim bindsym $mod+n exec makoctl dismiss bindsym $mod+o exec mpc stop bindsym $mod+p exec mpd-menu bindsym $mod+q kill bindsym $mod+r reload bindsym $mod+w exec librewolf bindsym Ctrl+Alt+Delete exit floating_modifier $mod normal 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" } # 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, border disable # mpv for_window [app_id=mpv] floating enabled # librewolf for_window [app_id="librewolf"] floating enable, move absolute position centered, resize set 100 ppt 100 ppt # set floating for window roles for_window [window_role="pop-up"] floating enable for_window [window_role="bubble"] floating enable for_window [window_role="task_dialog"] floating enable for_window [window_type="dialog"] floating enable for_window [window_type="menu"] floating enable for_window [window_role="Preferences"] floating enable for_window [window_role="About"] floating enable