SexiSway/scripts/workspace-manager

61 lines
1.2 KiB
Plaintext
Raw Permalink Normal View History

2025-03-25 01:47:41 +03:00
#!/bin/dash
key_input=$1
flag=$2
#
# Calc workspace swich
#
last_workspace=$(cat /tmp/last_workspace 2>/dev/null)
f_key_number=$(cat /tmp/f_key_number 2>/dev/null || echo 0)
digit_key_number=$(cat /tmp/digit_key_number 2>/dev/null || echo 0)
case $key_input in
F*) f_key_number=${key_input#F} ;;
0) digit_key_number=10;;
[1-9]) digit_key_number=$key_input ;;
*) echo "Invalid key input"; exit 1 ;;
esac
workspace_number=$((f_key_number * 10 + digit_key_number))
if [ "$workspace_number" -eq "$last_workspace" ]; then
exit 0
fi
#
# Hooks
#
case $workspace_number in
30) workspace_number=48 ;;
esac
#
# swich
#
if [ "$flag" = "move" ]; then
swaymsg move container to workspace number $workspace_number
exit 0
else
swaymsg workspace $workspace_number
fi
echo "$workspace_number" > /tmp/last_workspace
echo "$f_key_number" > /tmp/f_key_number
echo "$digit_key_number" > /tmp/digit_key_number
#
# Post swich | Game workspace - disable touchpad
#
case $workspace_number in
51)
swaymsg input type:touchpad events disabled
;;
*)
swaymsg input type:touchpad events enabled
;;
esac
case $workspace_number in
*)
swaymsg input type:keyboard xkb_switch_layout 0
;;
esac