# variables #################################################################### # logo key set $mod Mod4 # home row direction keys set $left h set $down j set $up k set $right l # key bindings ################################################################# # start terminal bindsym $mod+return exec footclient bindsym $mod+shift+return exec foot # start browser bindsym $mod+w exec firefox bindsym $mod+shift+w exec thunderbird # start menu bindsym $mod+space exec fuzzel bindsym $mod+home exec footclient nmtui bindsym $mod+o exec fuzzel_do.sh # notifications bindsym $mod+x exec makoctl dismiss bindsym $mod+shift+x exec makoctl dismiss -a bindsym $mod+z exec makoctl restore # kill window bindsym $mod+q kill # move focus bindsym $mod+$up focus up bindsym $mod+$down focus down bindsym $mod+$left focus left bindsym $mod+$right focus right # move focused window bindsym $mod+shift+$up move up bindsym $mod+shift+$down move down bindsym $mod+shift+$left move left bindsym $mod+shift+$right move right # 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 10 bindsym $mod+next workspace next bindsym $mod+prior workspace prev # move focused to workspace bindsym $mod+shift+1 move container to workspace number 1, workspace number 1 bindsym $mod+shift+2 move container to workspace number 2, workspace number 2 bindsym $mod+shift+3 move container to workspace number 3, workspace number 3 bindsym $mod+shift+4 move container to workspace number 4, workspace number 4 bindsym $mod+shift+5 move container to workspace number 5, workspace number 5 bindsym $mod+shift+6 move container to workspace number 6, workspace number 6 bindsym $mod+shift+7 move container to workspace number 7, workspace number 7 bindsym $mod+shift+8 move container to workspace number 8, workspace number 8 bindsym $mod+shift+9 move container to workspace number 9, workspace number 9 bindsym $mod+shift+0 move container to workspace number 10, workspace number 10 bindsym $mod+shift+next move container to workspace next, workspace next bindsym $mod+shift+prior move container to workspace prev, workspace prev # resize bindsym $mod+control+$left resize shrink width bindsym $mod+control+$down resize grow height bindsym $mod+control+$up resize shrink height bindsym $mod+control+$right resize grow width # layout bindsym $mod+a focus parent bindsym $mod+shift+a focus child bindsym $mod+s layout toggle split bindsym $mod+shift+s split toggle bindsym $mod+d layout toggle tabbed split bindsym $mod+f fullscreen toggle bindsym $mod+shift+f floating toggle bindsym $mod+g focus mode_toggle bindsym $mod+shift+g sticky toggle bindsym $mod+period move scratchpad bindsym $mod+shift+period scratchpad show # mouse floating_modifier $mod normal # laptop bindsym XF86AudioRaiseVolume exec wpctl set-volume @DEFAULT_AUDIO_SINK@ 1%+;\ exec notify-send -e -t 1000 -h string:x-canonical-private-synchronous:audio_sink "$(wpctl get-volume @DEFAULT_AUDIO_SINK@)" bindsym XF86AudioLowerVolume exec wpctl set-volume @DEFAULT_AUDIO_SINK@ 1%-;\ exec notify-send -e -t 1000 -h string:x-canonical-private-synchronous:audio_sink "$(wpctl get-volume @DEFAULT_AUDIO_SINK@)" bindsym XF86AudioMute exec wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle;\ exec notify-send -e -t 1000 -h string:x-canonical-private-synchronous:audio_sink "$(wpctl get-volume @DEFAULT_AUDIO_SINK@)" bindsym XF86AudioMicMute exec wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle;\ exec notify-send -e -t 1000 -h string:x-canonical-private-synchronous:audio_source "$(wpctl get-volume @DEFAULT_AUDIO_SOURCE@)" bindsym XF86MonBrightnessUp exec brightnessctl set "+1%";\ exec notify-send -e -t 1000 -h string:x-canonical-private-synchronous:brightness "Brightness: $(brightnessctl get)" bindsym XF86MonBrightnessDown exec brightnessctl set "1%-";\ exec notify-send -e -t 1000 -h string:x-canonical-private-synchronous:brightness "Brightness: $(brightnessctl get)" bindsym shift+XF86MonBrightnessUp exec brightnessctl set "+10%";\ exec notify-send -e -t 1000 -h string:x-canonical-private-synchronous:brightness "Brightness: $(brightnessctl get)" bindsym shift+XF86MonBrightnessDown exec brightnessctl set "10%-";\ exec notify-send -e -t 1000 -h string:x-canonical-private-synchronous:brightness "Brightness: $(brightnessctl get)" # screenshots bindsym print exec grim - | wl-copy # mark mode #################################################################### set $mark_mode "mark" mode $mark_mode { bindsym a mark --toggle a, mode default bindsym b mark --toggle b, mode default bindsym c mark --toggle c, mode default bindsym backspace unmark, mode default # return bindsym escape mode "default" bindsym $mod+escape mode "default" } bindsym $mod+m mode $mark_mode # tab mode ##################################################################### set $tab_mode "tab" mode $tab_mode { bindsym a [con_mark="a"] focus, mode default bindsym b [con_mark="b"] focus, mode default bindsym c [con_mark="c"] focus, mode default # return bindsym escape mode "default" bindsym $mod+escape mode "default" } bindsym $mod+tab mode $tab_mode # session mode ################################################################# set $session_mode "session: (r)eload (l)ock (q)uit (s)uspend re(b)oot (p)oweroff" mode $session_mode { bindsym r reload, mode default bindsym l exec swaylock, mode default bindsym q exit, mode default bindsym s exec systemctl suspend, mode default bindsym b exec systemctl reboot, mode default bindsym p exec systemctl poweroff, mode default # return bindsym escape mode default bindsym $mod+escape mode default } bindsym $mod+escape mode $session_mode # visuals ###################################################################### set $bg #292526 set $dimmed #6185ff set $accent #ff3e8b set $error #ff404f # output output * { background $bg solid_color adaptive_sync on } # border default_border normal 1 default_floating_border normal 1 # class border background text indicator child_border client.focused $accent $accent $bg $error $bg client.focused_inactive $dimmed $dimmed $bg $bg $bg client.unfocused $dimmed $dimmed $bg $bg $bg client.urgent $error $error $bg $error $bg # behaviour #################################################################### workspace_layout tabbed focus_follows_mouse yes focus_wrapping yes # statusbar #################################################################### bar { # status_command ~/src/swaystatus/build/swaystatus status_command statusline.sh separator_symbol " | " colors { background $bg statusline $dimmed separator $dimmed # border background text focused_workspace $bg $bg $accent active_workspace $dimmed $bg $dimmed inactive_workspace $bg $bg $dimmed urgent_workspace $bg $bg $error } } # xwayland ##################################################################### xwayland disable # autostart #################################################################### exec swayidle exec wlsunset -l 45 -L 15 exec mako exec foot --server # include ###################################################################### include ~/.config/sway/`hostname`