[rc/sway] add original ws switch / window move keys on Mod1 (alt)
[~bandali/configs] / rc.org
diff --git a/rc.org b/rc.org
index 2c54071..ff1db79 100644 (file)
--- a/rc.org
+++ b/rc.org
@@ -3618,9 +3618,10 @@ insert_pass="Alt+n"
 #+begin_src conf
 exec xrdb .Xresources
 ### Variables
-#
-# Logo key. Use Mod1 for Alt.
+# super
 set $mod Mod4
+# alt
+set $mod2 Mod1
 set $left h
 set $down j
 set $up k
@@ -3698,11 +3699,17 @@ input "1:1:AT_Translated_Set_2_keyboard" {
     bindsym XF86MonBrightnessUp exec light -A 5    # increase screen brightness
     bindsym XF86MonBrightnessDown exec light -U 5  # decrease screen brightness
 
-    bindsym $mod+bracketleft workspace prev
-    bindsym $mod+bracketright workspace next
+    # bspwm-esque workspace switch and window move
+    bindsym $mod+bracketleft exec sway-ws-util switch prev
+    bindsym $mod+bracketright exec sway-ws-util switch next
+    bindsym $mod+braceleft exec sway-ws-util move prev follow
+    bindsym $mod+braceright exec sway-ws-util move next follow
 
-    bindsym $mod+braceleft move container to workspace prev
-    bindsym $mod+braceright move container to workspace next
+    # original sway workspace switch and window move
+    bindsym $mod2+bracketleft workspace prev
+    bindsym $mod2+bracketright workspace next
+    bindsym $mod2+braceleft move container to workspace prev
+    bindsym $mod2+braceright move container to workspace next
 #
 # Moving around:
 #
@@ -4841,6 +4848,43 @@ source $HOME/.zprofile
 sway
 #+end_src
 
+** sway-ws-util
+:PROPERTIES:
+:header-args+: :tangle ~/.local/bin/sway-ws-util :shebang "#!/bin/bash"
+:END:
+
+#+begin_src bash
+curr_ws=$(swaymsg -t get_workspaces | jq -r '.[] | select(.focused==true).name')
+[[ $curr_ws -eq 1 ]] && prev_ws=10 || prev_ws=$((curr_ws-1))
+[[ $curr_ws -eq 10 ]] && next_ws=1 || next_ws=$((curr_ws+1))
+dest_ws=-1
+op=-1
+
+if [ "$1" = "switch" ] || [ "$1" = "move" ]; then
+  op="$1"
+  if [ "$2" = "prev" ]; then
+    dest_ws="$prev_ws"
+  elif [ "$2" = "next" ]; then
+    dest_ws="$next_ws"
+  else
+    echo "Usage: $0 $1 {prev|next} [follow]"
+    exit 1
+  fi
+else
+  echo "Usage: $0 {switch|move} {prev|next} [follow]"
+  exit 1
+fi
+
+if [ "$op" = "switch" ]; then
+  sway workspace "$dest_ws"
+elif [ "$op" = "move" ]; then
+  sway move container to workspace "$dest_ws"
+  if [ "$3" = "follow" ]; then
+    sway workspace "$dest_ws"
+  fi
+fi
+#+end_src
+
 ** toggle-layout
 :PROPERTIES:
 :header-args+: :tangle ~/.local/bin/toggle-layout :shebang "#!/bin/bash"