diff --git a/.config/i3/config b/.config/i3/config index 3613d32..76f00ae 100644 --- a/.config/i3/config +++ b/.config/i3/config @@ -164,6 +164,22 @@ bindsym $mod+z focus child bindsym $mod+Tab workspace back_and_forth +# Window swapping +mode "swap-dest" { + set $swp_cmd swap container with mark quickswap; [con_mark="quickswap"] focus; unmark quickswap; mode default + bindsym --whole-window button1 $swp_cmd + bindsym --whole-window $mod+Shift+button1 $swp_cmd + + set $cancel_cmd unmark quickswap; mode "default" + bindsym Return $cancel_cmd + bindsym Escape $cancel_cmd +} +bindsym --whole-window $mod+Shift+button1 mark --add quickswap; mode "swap-dest" + +# Keyboard only bindings (can't use binding mode, since would have to rebind all movement commands +bindsym $mod+Mod1+comma mark --add quickswap +bindsym $mod+comma swap container with mark quickswap; [con_mark="quickswap"] focus; unmark quickswap + # bind workspaces 1-10 to monitor 1, 11-20 to monitor 2 workspace 1 output $mon1 workspace 2 output $mon1