t2-cortile

This commit is contained in:
Daniel Napora 2023-05-26 22:18:11 +02:00
parent 1c8a1c6ade
commit 0698f6cd87

106
local/bin/t2-cortile Executable file
View File

@ -0,0 +1,106 @@
#!/bin/bash
# t2-cortile - tint2 executor to assist with cortile tiling manager
# quick and dirty currently for demo purposes only
CORTILE_CFG="$HOME/.config/cortile/config.toml"
IMG_DIR="$HOME/.config/cortile/tint2-cortile"
sendkey(){
read KEYS<<< $(grep "^${1}.*=.*$" $CORTILE_CFG | cut -d'"' -f2)
XDOTOOL_KEYS=${KEYS//-/+}
XDOTOOL_KEYS=${XDOTOOL_KEYS/Control/ctrl}
XDOTOOL_KEYS=${XDOTOOL_KEYS/Super_L/super}
XDOTOOL_KEYS=${XDOTOOL_KEYS/Space/space}
XDOTOOL_KEYS=${XDOTOOL_KEYS/KP_4/KP_Left}
XDOTOOL_KEYS=${XDOTOOL_KEYS/KP_6/KP_Right}
XDOTOOL_KEYS=${XDOTOOL_KEYS/KP_8/KP_Up}
XDOTOOL_KEYS=${XDOTOOL_KEYS/KP_2/KP_Down}
#notify-send.sh "$1" "$KEYS \n$XDOTOOL_KEYS"
xdotool key ${XDOTOOL_KEYS}
}
is_tiled(){
grep workspace-$(xdotool get_desktop) /tmp/cortile.log |tail -n 1 |grep Tile >/dev/null
}
is_fullscreen(){
grep workspace-$(xdotool get_desktop) /tmp/cortile.log |tail -n 1 |grep fullscreen >/dev/null
}
get_current_layout(){
layout=$(grep workspace-$(xdotool get_desktop) /tmp/cortile.log |tail -n 1| cut -d' ' -f6)
case "$layout" in
vertical-right) echo ${IMG_DIR}/vertical-right.png;;
vertical-left) echo ${IMG_DIR}/vertical-left.png;;
horizontal-top) echo ${IMG_DIR}/horizontal-top.png;;
horizontal-bottom) echo ${IMG_DIR}/horizontal-bottom.png;;
fullscreen) echo ${IMG_DIR}/fullscreen.png;;
esac
}
main(){
if pgrep -x cortile >/dev/null ;then
if is_tiled ;then
get_current_layout
else
echo "${IMG_DIR}/untiled.png"
fi
fi
}
left(){
if is_tiled ;then
if is_fullscreen ;then
sendkey untile
else
sendkey layout_cycle
fi
else
sendkey tile
sendkey layout_vertical_left
fi
}
middle(){
if is_tiled ;then
sendkey untile
else
sendkey tile
fi
}
right(){
if is_tiled ;then
sendkey untile
else
sendkey tile
fi
}
up(){
if is_tiled; then
if is_fullscreen ;then
sendkey window_previous
else
sendkey proportion_increase
fi
else
xdotool set_desktop --relative 1
fi
}
down(){
if is_tiled; then
if is_fullscreen ;then
sendkey window_next
else
sendkey proportion_decrease
fi
else
xdotool set_desktop --relative -- -1
fi
}
case "$1" in
left)left;;
right)right;;
middle)middle;;
up)up;;
down)down;;
*)main;;
esac