ref: 0c3b33270ab8c42f070d2894d2b2e47193cc7d3b
parent: f9c28b3c411bc2d59d3a5122662e6d66296b7ad3
author: Sigrid Haflínudóttir <ftrvxmtrx@gmail.com>
date: Sun Mar 29 21:09:38 EDT 2020
don't get in the way of winwatch and manual hiding/unhiding
--- a/riow
+++ b/riow
@@ -42,11 +42,20 @@
}
fn desktop {+ # find and remember the current window
+ if(~ $shift 0){+ for(f in /dev/wsys/*){+ a=`{winread $f}+ winid=`{basename $f}+ if(~ $a(5) current)
+ echo -n $winid >/env/windeskcur_^$curdesktop
+ }
+ }
+
for(f in /dev/wsys/*){ if(! ~ `{winlabel $f} $sticky){ a=`{winread $f} winid=`{basename $f}- windesk=`{test -f /env/windesk_^$winid && cat /env/windesk_^$winid} if(~ $shift 1){ # moving the current window elsewhere if(~ $a(5) current){@@ -57,16 +66,13 @@
if not {# go through all visible windows
if(~ $a(6) visible){- if(~ $a(5) current)
- echo -n $f >/env/windeskcur_^$curdesktop
- if(~ $#windesk 0){ # no desktop and visible- # assign to the current one
- echo -n $curdesktop >/env/windesk_^$winid
- }
+ # assign to the current one
+ echo -n $curdesktop >/env/windesk_^$winid
# and hide
echo hide >$f/wctl
}
if not { # hidden, unhide if should be shown now+ windesk=`{test -f /env/windesk_^$winid && cat /env/windesk_^$winid}if(~ $windesk $1)
echo unhide >$f/wctl
}
@@ -74,8 +80,11 @@
}
}
if(~ $shift 0){- if(test -f /env/windeskcur_^$1)
- echo current >`{cat /env/windeskcur_^$1}^/wctl+ if(test -f /env/windeskcur_^$1){+ winid=`{cat /env/windeskcur_^$1}+ if(test -f /env/windesk_^$winid && ~ `{cat /env/windesk_^$winid} $1)+ echo current >/dev/wsys/^$winid^/wctl
+ }
curdesktop=$1
}
}
--
⑨