shithub: riow

Download patch

ref: 6547ade065de04a4361bb2ad859f9af7b944bfe9
parent: 8819833a6a6ab6a0a0148368dfd68a4534d47338
author: Sigrid Solveig Haflínudóttir <[email protected]>
date: Wed Jan 27 04:21:49 EST 2021

window moving/resizing

--- a/README.md
+++ b/README.md
@@ -43,6 +43,15 @@
 Mod4-enter          start a new window
 Mod4-[0..9]         switch to a specific virtual desktop
 Mod4-shift-[0..9]   move the current window to a specific virtual desktop
+
+Mod4-[↑↓←→]         move the window (big steps)
+Mod4-shift-[↑↓←→]   move the window (small steps)
+
+Mod4-ctrl-[↑↓←→]        drag bottom-right of the window (big steps)
+Mod4-ctrl-shift-[↑↓←→]  drag bottom-right of the window (small steps)
+
+Mod4-alt-[↑↓←→]        drag top-left of the window (big steps)
+Mod4-alt-shift-[↑↓←→]  drag top-left of the window (small steps)
 ```
 
 ## Extras
--- a/riow
+++ b/riow
@@ -4,6 +4,10 @@
 # these are shown on every desktop
 sticky=(bar 'cat clock' clock desktop faces kbmap stats winwatch)
 
+# window move/resize step (in pixels)
+step=96
+stepsmall=8
+
 alt=0
 ctl=0
 shift=0
@@ -116,6 +120,33 @@
 	}
 }
 
+fn arrows {
+	winid=`{curwindow}
+	if(! ~ $#winid 0){
+		f=/dev/wsys/^$winid
+		x=+0
+		y=+0
+		if(~ $2 0)
+			s=$step
+		if not
+			s=$stepsmall
+		~ $1 up    && y=-$s
+		~ $1 right && x=+$s
+		~ $1 down  && y=+$s
+		~ $1 left  && x=-$s
+
+		if(~ $3 0 && ~ $4 0){
+			echo move -minx $x -miny $y >> $f/wctl
+		}
+		if not{
+			if(~ $4 0)
+				echo resize -maxx $x -maxy $y >> $f/wctl
+			if not
+				echo resize -minx $x -miny $y >> $f/wctl
+		}
+	}
+}
+
 fn handle {
 	# K is key down
 	# k is key up
@@ -151,6 +182,7 @@
 		if(~ $ukey [0-9] && ! ~ $ukey $curdesktop)
 			desktop $ukey
 	}
+	arrows $key $shift $ctl $alt
 }
 
 scrsize