summary refs log tree commit diff
path: root/.config/sway/binds.conf
diff options
context:
space:
mode:
authorRobert Günzler <r@gnzler.io>2020-01-26 17:16:07 +0100
committerRobert Günzler <r@gnzler.io>2020-01-26 18:00:59 +0100
commitf5d56602df70950de6b7d40966b00c9939c81763 (patch)
treeb50ffeb5496fe3525cc1bab2629389ced95435b7 /.config/sway/binds.conf
Intial commit of v2
See https://drewdevault.com/2019/12/30/dotfiles.html
Diffstat (limited to '.config/sway/binds.conf')
-rw-r--r--.config/sway/binds.conf215
1 files changed, 215 insertions, 0 deletions
diff --git a/.config/sway/binds.conf b/.config/sway/binds.conf
new file mode 100644
index 0000000..4ee9ce0
--- /dev/null
+++ b/.config/sway/binds.conf
@@ -0,0 +1,215 @@
+# vim: ft=i3
+
+# Basics {{{
+# start a terminal
+bindsym $mod+Return exec $term
+bindsym $mod+Shift+Return exec $floating_term
+
+# kill focused window
+bindsym $mod+Shift+q kill
+
+# start your launcher
+bindsym $mod+d exec $menu
+bindsym $mod+o exec $run_menu
+
+# Drag floating windows by holding down $mod and left mouse button.
+# Resize them with right mouse button + $mod.
+# Despite the name, also works for non-floating windows.
+# Change normal to inverse to use left mouse button for resizing and right
+# mouse button for dragging.
+floating_modifier $mod normal
+
+# reload the configuration file
+bindsym $mod+Shift+c reload
+
+# exit sway (logs you out of your wayland session)
+bindsym $mod+Shift+e exit
+bindsym $mod+Shift+p exec $HOME/.dotfiles/bin/lock
+
+bindsym $mod+Shift+s mode "screengrab"
+mode "screengrab" {
+bindsym f exec grimshot save screen; mode "default"
+bindsym s exec grimshot save area; mode "default"
+bindsym c exec grimshot copy area; mode "default"
+bindsym r exec grimshot rec screen; mode "default"
+bindsym p exec colorpick; mode "default"
+bindsym Shift+r exec grimshot rec area; mode "default"
+bindsym Escape mode "default"
+}
+
+bindsym $mod+Shift+b border toggle
+
+bindsym $mod+a exec soundswitch_dmenu
+bindsym $mod+Shift+a exec soundswitch_dmenu global
+bindsym $mod+n exec networkmanager_dmenu
+# }}}
+
+# Moving around {{{
+# Move your focus around
+bindsym $mod+$left focus left
+bindsym $mod+$down focus down
+bindsym $mod+$up focus up
+bindsym $mod+$right focus right
+# or use $mod+[up|down|left|right]
+
+# _move_ the focused window with the same, but add Shift
+bindsym $mod+Shift+$left move left
+bindsym $mod+Shift+$down move down
+bindsym $mod+Shift+$up move up
+bindsym $mod+Shift+$right move right
+
+bindsym $mod+Next focus child
+bindsym $mod+Prior focus parent
+
+bindsym $mod+Escape [urgent="latest"] focus
+# }}}
+
+# Workspaces {{{
+# Note: workspaces can have any name you want, not just numbers.
+# We just use 1-10 as the default.
+bindsym $mod+Shift+comma workspace prev
+bindsym $mod+Shift+period workspace next
+# switch to workspace
+bindsym $mod+1 workspace $ws1
+bindsym $mod+2 workspace $ws2
+bindsym $mod+3 workspace $ws3
+bindsym $mod+4 workspace $ws4
+bindsym $mod+5 workspace $ws5
+bindsym $mod+6 workspace $ws6
+bindsym $mod+7 workspace $ws7
+bindsym $mod+8 workspace $ws8
+bindsym $mod+9 workspace $ws9
+
+bindsym $mod+Ctrl+m workspace $wsMusic
+bindsym $mod+Ctrl+v workspace $wsVideo
+bindsym $mod+Ctrl+g workspace $wsGame
+bindsym $mod+Tab workspace back_and_forth
+
+# move focused container to workspace
+bindsym $mod+Shift+1 move container to workspace $ws1
+bindsym $mod+Shift+2 move container to workspace $ws2
+bindsym $mod+Shift+3 move container to workspace $ws3
+bindsym $mod+Shift+4 move container to workspace $ws4
+bindsym $mod+Shift+5 move container to workspace $ws5
+bindsym $mod+Shift+6 move container to workspace $ws6
+bindsym $mod+Shift+7 move container to workspace $ws7
+bindsym $mod+Shift+8 move container to workspace $ws8
+bindsym $mod+Shift+9 move container to workspace $ws9
+
+# move focused workspce to output
+bindsym $mod+Ctrl+$left move workspace to output left
+bindsym $mod+Ctrl+$down move workspace to output down
+bindsym $mod+Ctrl+$up move workspace to output up
+bindsym $mod+Ctrl+$right move workspace to output right
+# }}}
+
+# Layout stuff {{{
+bindsym $mod+Alt+v splith
+bindsym $mod+Alt+h splitv
+
+# Make the current focus fullscreen
+bindsym $mod+f fullscreen
+# Hide the topbar (also gets you more space)
+bindsym $mod+Shift+t bar mode toggle topbar; default_border pixel
+
+# Swap focus between the tiling area and the floating area
+bindsym $mod+space focus mode_toggle
+# Toggle the current focus between tiling and floating mode
+bindsym $mod+Ctrl+space floating toggle
+
+mode "layout" {
+    # Switch the current container between different layout styles
+    bindsym s layout stacking; mode "default"
+    bindsym w layout tabbed; mode "default"
+    bindsym e layout toggle split; mode "default"
+
+    # move focus to the parent container
+    bindsym p focus parent
+    bindsym Shift+p focus child
+    
+    # make a sticky container
+    bindsym t sticky toggle; mode "default"; exec notify-send "container sticky'd"
+
+    # return to default mode
+    bindsym Return mode "default"
+    bindsym Escape mode "default"
+}
+bindsym $mod+y mode "layout"
+# }}}
+
+# Scratchpad {{{
+# Sway has a "scratchpad", which is a bag of holding for windows.
+# You can send windows there and get them back later.
+
+# Move the currently focused window to the scratchpad
+bindsym $mod+Ctrl+backspace move scratchpad
+
+# Show the next scratchpad window or hide the focused scratchpad window.
+# If there are multiple scratchpad windows, this command cycles through them.
+bindsym $mod+backspace scratchpad show
+# }}}
+
+# Resizing containers {{{
+mode "resize" {
+    # 1x
+    set $resizeRate1x 50
+    bindsym $left resize shrink width $resizeRate1x px
+    bindsym $down resize grow height $resizeRate1x px
+    bindsym $up resize shrink height $resizeRate1x px
+    bindsym $right resize grow width $resizeRate1x px
+    bindsym Shift+$down resize shrink width $resizeRate1x px ; resize shrink height $resizeRate1x px
+    bindsym Shift+$up resize grow width $resizeRate1x px ; resize grow height $resizeRate1x px
+
+    # 2x
+    set $resizeRate2x 100
+    bindsym Left resize shrink width $resizeRate1x px
+    bindsym Down resize grow height $resizeRate1x px
+    bindsym Up resize shrink height $resizeRate1x px
+    bindsym Right resize grow width $resizeRate1x px
+    bindsym Shift+Down resize shrink width $resizeRate2x px ; resize shrink height $resizeRate2x px
+    bindsym Shift+Up resize grow width $resizeRate2x px ; resize grow height $resizeRate2x px
+
+    # return to default mode
+    bindsym Return mode "default"
+    bindsym Escape mode "default"
+}
+bindsym $mod+r mode "resize"
+# }}}
+
+# Gaps {{{
+mode "gaps" {
+    bindsym r gaps outer all set 0; gaps inner all set 0
+
+    set $gapRate 5
+    bindsym $up gaps inner all plus $gapRate
+    bindsym $down gaps inner all minus $gapRate
+
+    # return to default mode
+    bindsym Return mode "default"
+    bindsym Escape mode "default"
+}
+bindsym $mod+Alt+g mode "gaps"
+# }}}
+
+# Misc {{{
+bindsym $mod+Shift+x mark --toggle "x"
+bindsym $mod+x [con_mark="x"] focus
+bindsym $mod+Ctrl+x swap container with mark "x"
+
+# Media volume controls
+bindsym XF86AudioMute exec pactl set-sink-mute '@DEFAULT_SINK@' toggle
+bindsym XF86AudioMicMute exec pactl set-input-mute '@DEFAULT_INPUT@' toggle
+bindsym XF86AudioLowerVolume exec pactl set-sink-volume '@DEFAULT_SINK@' -5%
+bindsym XF86AudioRaiseVolume exec pactl set-sink-volume '@DEFAULT_SINK@' +5%
+
+# Sreen brightness controls
+bindsym XF86MonBrightnessUp exec light -A 5
+bindsym XF86MonBrightnessDown exec light -U 5
+
+# Media player controls
+bindsym XF86AudioPlay exec playerctl play-pause
+# bindsym XF86AudioForward exec playerctl next
+# bindsym XF86AudioRewind exec playerctl previous
+bindsym XF86AudioNext exec playerctl next
+bindsym XF86AudioPrev exec playerctl previous
+# }}}