59 lines
1.2 KiB
Plaintext
59 lines
1.2 KiB
Plaintext
|
#!/bin/bash
|
||
|
|
||
|
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 ;; # Krita
|
||
|
esac
|
||
|
|
||
|
#
|
||
|
# swich
|
||
|
#
|
||
|
if [[ $flag == "move" ]]; then
|
||
|
swaymsg move container to workspace number $workspace_number
|
||
|
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
|
||
|
#
|
||
|
case $workspace_number in
|
||
|
51) # Game workspace - disable touchpad
|
||
|
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
|