Browse Source

Make calls to bspc more explicit

Also delete some commented out code, and simplify logic
master
Maxime Wack 1 year ago
parent
commit
62a178024d
1 changed files with 29 additions and 35 deletions
  1. +29
    -35
      .config/bin/wm

+ 29
- 35
.config/bin/wm View File

@@ -25,20 +25,20 @@ clear_desktop ()
{
last=`cat $LASTDESK`
namelast=$last
namecurrent=`bspc query -d focused -D --names`
wincurrent=`bspc query -d focused -N`
namecurrent=`bspc query --desktops --desktop focused --names`
wincurrent=`bspc query --nodes --desktop focused`

if [[ "$last" -gt "1" ]]; then
del_desks=0

# Delete any empty desk and re-numerate
for desk in `seq 1 $last`; do
if [[ -z `bspc query -N -d "$desk"` ]]; then
if [[ -z `bspc query --nodes --desktop "$desk"` ]]; then
let "del_desks += 1"
bspc desktop "$desk" -r
bspc desktop "$desk" --remove
else
let "newname = desk - del_desks"
bspc desktop "$desk" -n "$newname"
bspc desktop "$desk" --rename "$newname"
fi
done

@@ -47,13 +47,13 @@ clear_desktop ()
# Always keep desktop 1 existing, even if empty
# and allow for an additional empty desktop
if [[ "$last" -eq "0" ]]; then
bspc monitor -a 1
bspc desktop -f 1
bspc monitor --add-desktops 1
bspc desktop --focus 1
last=1
elif [[ "$namecurrent" -eq "$namelast" && -z "$wincurrent" ]]; then
let "last=$last + 1"
bspc monitor -a "$last"
bspc desktop -f "$last"
bspc monitor --add-desktops "$last"
bspc desktop --focus "$last"
fi
fi

@@ -71,12 +71,12 @@ popup ()

# If the program is not yet running, launch it and monitor the node creation
if [ -z `xdotool search --classname $name` ];then
bspc subscribe node_add -c 1 | cut -d ' ' -f 5 > /tmp/win_${name} &
bspc subscribe node_add --count 1 | cut -d ' ' -f 5 > /tmp/win_${name} &
kitty --name $name $*
sleep .5
else
win=`cat /tmp/win_${name}`
bspc node ${win} -g hidden -f
bspc node ${win} --flag hidden --focus
fi
}

@@ -84,10 +84,10 @@ peek ()
{
case $1 in
left|right)
if [ `bspc config -d focused $1_padding` -gt 0 ]; then
bspc config -d focused $1_padding 0
if [ `bspc config --desktop focused $1_padding` -gt 0 ]; then
bspc config --desktop focused $1_padding 0
else
bspc config -d focused $1_padding 500
bspc config --desktop focused $1_padding 500
fi
;;
*) usage;;
@@ -96,53 +96,47 @@ peek ()

discard ()
{
# Save current desktop in case we --follow
# echo `bspc query -D -d focused --names` > /tmp/desk

# Create a new desktop at the end
last=`cat $LASTDESK`
let "last += 1"
echo $last > $LASTDESK
bspc monitor -a $last
bspc monitor --add-desktops $last

# Move the node and optionally --follow it
bspc node -d "$last" $1
bspc node --to-desktop "$last" $1

clear_desktop
}

goto ()
{
current=`bspc query -D -d focused --names`
current=`bspc query --desktops --desktop focused --names`
last=`cat $LASTDESK`

case $1 in
next) # Create a new desktop if needed
last=`cat $LASTDESK`
if [ `bspc query -D -d focused --names` -eq "$last" ]; then
next)
# Create a new desktop if needed
if [ "$current" -eq "$last" ]; then
let "last += 1"
echo $last > $LASTDESK
bspc monitor -a $last
bspc monitor --add-desktops $last
fi
togo=$1
target="next"
;;
last) togo=`cat $LASTDESK` ;;
prev| | | |1|2|3|4|5|6|7) togo=$1 ;;
last) target=$last;;
prev| | | |1|2|3|4|5|6|7) target=$1 ;;
*) usage ;;
esac

# Go back to previous desktop if destination is the current desktop
if [[ "$togo" == "$current" ]]; then
# target=`cat /tmp/desk`
if [[ "$target" == "$current" ]]; then
target="last"
else
target="$togo"
# echo $current > /tmp/desk
fi

# Carry a node or just focus desktop
case $2 in
--carry) bspc node -d "$target" --follow ;;
*) bspc desktop -f "$target" ;;
--carry) bspc node --to-desktop "$target" --follow ;;
*) bspc desktop --focus "$target" ;;
esac

clear_desktop
@@ -150,7 +144,7 @@ goto ()

unhide ()
{
bspc node any.hidden -g hidden=off
bspc node any.hidden --flag hidden=off
}

fix_popup ()


Loading…
Cancel
Save