Helps if I commit the hooks I think
This commit is contained in:
parent
3ec0ca06dd
commit
435918eac9
389
.config/sxmo/hooks/pine64,pinephone-1.0/sxmo_hook_inputhandler.sh
Executable file
389
.config/sxmo/hooks/pine64,pinephone-1.0/sxmo_hook_inputhandler.sh
Executable file
|
@ -0,0 +1,389 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# configversion: 061f1ec838ab73997514c2281424b1e6
|
||||||
|
# SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
# Copyright 2022 Sxmo Contributors
|
||||||
|
|
||||||
|
# This script handles input actions, it is called by lisgd for gestures
|
||||||
|
# and by dwm for button presses
|
||||||
|
|
||||||
|
ACTION="$1"
|
||||||
|
|
||||||
|
# include common definitions
|
||||||
|
# shellcheck source=scripts/core/sxmo_common.sh
|
||||||
|
. sxmo_common.sh
|
||||||
|
|
||||||
|
# this action will move the lock state $1 levels higher
|
||||||
|
lock_screen_action() {
|
||||||
|
count="${1:-1}"
|
||||||
|
|
||||||
|
state="$(cat "$SXMO_STATE")"
|
||||||
|
while [ "$count" -gt 0 ]; do
|
||||||
|
case "$state" in
|
||||||
|
unlock)
|
||||||
|
state=screenoff
|
||||||
|
;;
|
||||||
|
screenoff)
|
||||||
|
state=lock
|
||||||
|
;;
|
||||||
|
lock)
|
||||||
|
state=unlock
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
count=$((count-1))
|
||||||
|
done
|
||||||
|
|
||||||
|
sxmo_hook_"$state".sh
|
||||||
|
}
|
||||||
|
|
||||||
|
XPROPOUT="$(sxmo_wm.sh focusedwindow)"
|
||||||
|
WMCLASS="$(printf %s "$XPROPOUT" | grep app: | cut -d" " -f2- | tr '[:upper:]' '[:lower:]')"
|
||||||
|
WMNAME="$(printf %s "$XPROPOUT" | grep title: | cut -d" " -f2- | tr '[:upper:]' '[:lower:]')"
|
||||||
|
|
||||||
|
sxmo_debug "ACTION: $ACTION WMCLASS: $WMCLASS WMNAME: $WMNAME XPROPOUT: $XPROPOUT"
|
||||||
|
|
||||||
|
if ! grep -q unlock "$SXMO_STATE"; then
|
||||||
|
case "$ACTION" in
|
||||||
|
"powerbutton_one")
|
||||||
|
lock_screen_action
|
||||||
|
;;
|
||||||
|
"powerbutton_two"|"powerbutton_three")
|
||||||
|
lock_screen_action 2
|
||||||
|
;;
|
||||||
|
"voldown_one")
|
||||||
|
sxmo_audio.sh vol down 5
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
"voldown_two")
|
||||||
|
sxmo_audio.sh vol down 10
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
"voldown_three")
|
||||||
|
sxmo_audio.sh vol down 15
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
"volup_one")
|
||||||
|
sxmo_audio.sh vol up 5
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
"volup_two")
|
||||||
|
sxmo_audio.sh vol up 10
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
"volup_three")
|
||||||
|
sxmo_audio.sh vol up 15
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
#we're locked, don't process the rest of the script
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
#special context-sensitive handling
|
||||||
|
case "$WMCLASS" in
|
||||||
|
*"mpv"*)
|
||||||
|
case "$ACTION" in
|
||||||
|
"oneright")
|
||||||
|
sxmo_type.sh -k Left
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"oneleft")
|
||||||
|
sxmo_type.sh -k Right
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"oneup")
|
||||||
|
sxmo_type.sh m
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"onedown")
|
||||||
|
sxmo_type.sh p
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*"foot"*|*"st"*|*"vte"*)
|
||||||
|
# First we try to handle the app running inside st:
|
||||||
|
case "$WMNAME" in
|
||||||
|
*"weechat"*)
|
||||||
|
case "$ACTION" in
|
||||||
|
*"oneleft")
|
||||||
|
sxmo_type.sh -M Alt -k a
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"oneright")
|
||||||
|
sxmo_type.sh -M Alt -k less
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"oneup")
|
||||||
|
sxmo_type.sh -k Page_Down
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"onedown")
|
||||||
|
sxmo_type.sh -k Page_Up
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*" sms")
|
||||||
|
case "$ACTION" in
|
||||||
|
*"upbottomedge")
|
||||||
|
number="$(printf %s "$WMNAME" | sed -e 's|^\"||' -e 's|\"$||' | cut -f1 -d' ')"
|
||||||
|
sxmo_terminal.sh sxmo_modemtext.sh conversationloop "$number" &
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*"tuir"*)
|
||||||
|
if [ "$ACTION" = "rightbottomedge" ]; then
|
||||||
|
sxmo_type.sh o
|
||||||
|
exit 0
|
||||||
|
elif [ "$ACTION" = "leftbottomedge" ]; then
|
||||||
|
sxmo_type.sh s
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*"less"*)
|
||||||
|
case "$ACTION" in
|
||||||
|
"leftbottomedge")
|
||||||
|
sxmo_type.sh q
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"leftrightedge_short")
|
||||||
|
sxmo_type.sh q
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"onedown")
|
||||||
|
sxmo_type.sh u
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"oneup")
|
||||||
|
sxmo_type.sh d
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"oneleft")
|
||||||
|
sxmo_type.sh ":n" -k Return
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"oneright")
|
||||||
|
sxmo_type.sh ":p" -k Return
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*"amfora"*)
|
||||||
|
case "$ACTION" in
|
||||||
|
"downright")
|
||||||
|
sxmo_type.sh -k Tab
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"upleft")
|
||||||
|
sxmo_type.sh -M Shift -k Tab
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"onedown")
|
||||||
|
sxmo_type.sh u
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"oneup")
|
||||||
|
sxmo_type.sh d
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"oneright")
|
||||||
|
sxmo_type.sh -k Return
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"upright")
|
||||||
|
sxmo_type.sh -M Ctrl t
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"oneleft")
|
||||||
|
sxmo_type.sh b
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"downleft")
|
||||||
|
sxmo_type.sh -M Ctrl w
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
# Now we try generic actions for terminal
|
||||||
|
case "$ACTION" in
|
||||||
|
*"onedown")
|
||||||
|
case "$WMCLASS" in
|
||||||
|
*"foot"*)
|
||||||
|
sxmo_type.sh -M Shift -k Page_Up
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"st"*)
|
||||||
|
sxmo_type.sh -M Ctrl -M Shift -k b
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*"oneup")
|
||||||
|
case "$WMCLASS" in
|
||||||
|
*"foot"*)
|
||||||
|
sxmo_type.sh -M Shift -k Page_Down
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"st"*)
|
||||||
|
sxmo_type.sh -M Ctrl -M Shift -k f
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
esac
|
||||||
|
|
||||||
|
#standard handling
|
||||||
|
case "$ACTION" in
|
||||||
|
"powerbutton_one")
|
||||||
|
if echo "$WMCLASS" | grep -i "megapixels"; then
|
||||||
|
sxmo_type.sh -k space
|
||||||
|
else
|
||||||
|
lock_screen_action
|
||||||
|
fi
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"powerbutton_two")
|
||||||
|
lock_screen_action 2
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"powerbutton_three")
|
||||||
|
sxmo_terminal.sh
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"voldown_one")
|
||||||
|
sxmo_keyboard.sh toggle
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
"voldown_two")
|
||||||
|
sxmo_wm.sh togglelayout
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
"voldown_three")
|
||||||
|
sxmo_killwindow.sh
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
"volup_one")
|
||||||
|
sxmo_appmenu.sh
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
"volup_two")
|
||||||
|
sxmo_appmenu.sh sys
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
"volup_three")
|
||||||
|
sxmo_wmmenu.sh
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
"rightleftedge")
|
||||||
|
bspc desktop -f prev.local
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"leftrightedge")
|
||||||
|
bspc desktop -f next.local
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"twoleft")
|
||||||
|
#sxmo_wm.sh movepreviousworkspace
|
||||||
|
bspc node -d prev.local
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"tworight")
|
||||||
|
#sxmo_wm.sh movenextworkspace
|
||||||
|
bspc node -d next.local
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"righttopedge")
|
||||||
|
sxmo_brightness.sh up &
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"lefttopedge")
|
||||||
|
sxmo_brightness.sh down &
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"upleftedge")
|
||||||
|
sxmo_audio.sh vol up &
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"downleftedge")
|
||||||
|
sxmo_audio.sh vol down &
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"upbottomedge")
|
||||||
|
sxmo_keyboard.sh open
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"downbottomedge")
|
||||||
|
sxmo_keyboard.sh close
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"downtopedge")
|
||||||
|
sxmo_dmenu.sh isopen || sxmo_appmenu.sh &
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"twodowntopedge")
|
||||||
|
sxmo_dmenu.sh isopen || sxmo_appmenu.sh sys &
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"uptopedge")
|
||||||
|
sxmo_dmenu.sh close
|
||||||
|
if pgrep mako >/dev/null; then
|
||||||
|
makoctl dismiss --all
|
||||||
|
elif pgrep dunst >/dev/null; then
|
||||||
|
dunstctl close-all
|
||||||
|
fi
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"twodownbottomedge")
|
||||||
|
#sxmo_killwindow.sh
|
||||||
|
bspc node -c
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"uprightedge")
|
||||||
|
sxmo_type.sh -k Up
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"downrightedge")
|
||||||
|
sxmo_type.sh -k Down
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"leftrightedge_short")
|
||||||
|
sxmo_type.sh -k Left
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"rightrightedge_short")
|
||||||
|
sxmo_type.sh -k Right
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"rightbottomedge")
|
||||||
|
sxmo_type.sh -k Return
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"leftbottomedge")
|
||||||
|
sxmo_type.sh -k BackSpace
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"topleftcorner")
|
||||||
|
sxmo_appmenu.sh sys &
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"toprightcorner")
|
||||||
|
sxmo_appmenu.sh scripts &
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"bottomleftcorner")
|
||||||
|
sxmo_dmenu.sh close
|
||||||
|
if [ -n "$WMCLASS" ]; then
|
||||||
|
sxmo_hook_lock.sh
|
||||||
|
else
|
||||||
|
sxmo_hook_screenoff.sh
|
||||||
|
fi
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"bottomrightcorner")
|
||||||
|
sxmo_rotate.sh &
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
389
.config/sxmo/hooks/pine64,pinephone-1.1/sxmo_hook_inputhandler.sh
Executable file
389
.config/sxmo/hooks/pine64,pinephone-1.1/sxmo_hook_inputhandler.sh
Executable file
|
@ -0,0 +1,389 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# configversion: 061f1ec838ab73997514c2281424b1e6
|
||||||
|
# SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
# Copyright 2022 Sxmo Contributors
|
||||||
|
|
||||||
|
# This script handles input actions, it is called by lisgd for gestures
|
||||||
|
# and by dwm for button presses
|
||||||
|
|
||||||
|
ACTION="$1"
|
||||||
|
|
||||||
|
# include common definitions
|
||||||
|
# shellcheck source=scripts/core/sxmo_common.sh
|
||||||
|
. sxmo_common.sh
|
||||||
|
|
||||||
|
# this action will move the lock state $1 levels higher
|
||||||
|
lock_screen_action() {
|
||||||
|
count="${1:-1}"
|
||||||
|
|
||||||
|
state="$(cat "$SXMO_STATE")"
|
||||||
|
while [ "$count" -gt 0 ]; do
|
||||||
|
case "$state" in
|
||||||
|
unlock)
|
||||||
|
state=screenoff
|
||||||
|
;;
|
||||||
|
screenoff)
|
||||||
|
state=lock
|
||||||
|
;;
|
||||||
|
lock)
|
||||||
|
state=unlock
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
count=$((count-1))
|
||||||
|
done
|
||||||
|
|
||||||
|
sxmo_hook_"$state".sh
|
||||||
|
}
|
||||||
|
|
||||||
|
XPROPOUT="$(sxmo_wm.sh focusedwindow)"
|
||||||
|
WMCLASS="$(printf %s "$XPROPOUT" | grep app: | cut -d" " -f2- | tr '[:upper:]' '[:lower:]')"
|
||||||
|
WMNAME="$(printf %s "$XPROPOUT" | grep title: | cut -d" " -f2- | tr '[:upper:]' '[:lower:]')"
|
||||||
|
|
||||||
|
sxmo_debug "ACTION: $ACTION WMCLASS: $WMCLASS WMNAME: $WMNAME XPROPOUT: $XPROPOUT"
|
||||||
|
|
||||||
|
if ! grep -q unlock "$SXMO_STATE"; then
|
||||||
|
case "$ACTION" in
|
||||||
|
"powerbutton_one")
|
||||||
|
lock_screen_action
|
||||||
|
;;
|
||||||
|
"powerbutton_two"|"powerbutton_three")
|
||||||
|
lock_screen_action 2
|
||||||
|
;;
|
||||||
|
"voldown_one")
|
||||||
|
sxmo_audio.sh vol down 5
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
"voldown_two")
|
||||||
|
sxmo_audio.sh vol down 10
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
"voldown_three")
|
||||||
|
sxmo_audio.sh vol down 15
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
"volup_one")
|
||||||
|
sxmo_audio.sh vol up 5
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
"volup_two")
|
||||||
|
sxmo_audio.sh vol up 10
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
"volup_three")
|
||||||
|
sxmo_audio.sh vol up 15
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
#we're locked, don't process the rest of the script
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
#special context-sensitive handling
|
||||||
|
case "$WMCLASS" in
|
||||||
|
*"mpv"*)
|
||||||
|
case "$ACTION" in
|
||||||
|
"oneright")
|
||||||
|
sxmo_type.sh -k Left
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"oneleft")
|
||||||
|
sxmo_type.sh -k Right
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"oneup")
|
||||||
|
sxmo_type.sh m
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"onedown")
|
||||||
|
sxmo_type.sh p
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*"foot"*|*"st"*|*"vte"*)
|
||||||
|
# First we try to handle the app running inside st:
|
||||||
|
case "$WMNAME" in
|
||||||
|
*"weechat"*)
|
||||||
|
case "$ACTION" in
|
||||||
|
*"oneleft")
|
||||||
|
sxmo_type.sh -M Alt -k a
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"oneright")
|
||||||
|
sxmo_type.sh -M Alt -k less
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"oneup")
|
||||||
|
sxmo_type.sh -k Page_Down
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"onedown")
|
||||||
|
sxmo_type.sh -k Page_Up
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*" sms")
|
||||||
|
case "$ACTION" in
|
||||||
|
*"upbottomedge")
|
||||||
|
number="$(printf %s "$WMNAME" | sed -e 's|^\"||' -e 's|\"$||' | cut -f1 -d' ')"
|
||||||
|
sxmo_terminal.sh sxmo_modemtext.sh conversationloop "$number" &
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*"tuir"*)
|
||||||
|
if [ "$ACTION" = "rightbottomedge" ]; then
|
||||||
|
sxmo_type.sh o
|
||||||
|
exit 0
|
||||||
|
elif [ "$ACTION" = "leftbottomedge" ]; then
|
||||||
|
sxmo_type.sh s
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*"less"*)
|
||||||
|
case "$ACTION" in
|
||||||
|
"leftbottomedge")
|
||||||
|
sxmo_type.sh q
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"leftrightedge_short")
|
||||||
|
sxmo_type.sh q
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"onedown")
|
||||||
|
sxmo_type.sh u
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"oneup")
|
||||||
|
sxmo_type.sh d
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"oneleft")
|
||||||
|
sxmo_type.sh ":n" -k Return
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"oneright")
|
||||||
|
sxmo_type.sh ":p" -k Return
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*"amfora"*)
|
||||||
|
case "$ACTION" in
|
||||||
|
"downright")
|
||||||
|
sxmo_type.sh -k Tab
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"upleft")
|
||||||
|
sxmo_type.sh -M Shift -k Tab
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"onedown")
|
||||||
|
sxmo_type.sh u
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"oneup")
|
||||||
|
sxmo_type.sh d
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"oneright")
|
||||||
|
sxmo_type.sh -k Return
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"upright")
|
||||||
|
sxmo_type.sh -M Ctrl t
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"oneleft")
|
||||||
|
sxmo_type.sh b
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"downleft")
|
||||||
|
sxmo_type.sh -M Ctrl w
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
# Now we try generic actions for terminal
|
||||||
|
case "$ACTION" in
|
||||||
|
*"onedown")
|
||||||
|
case "$WMCLASS" in
|
||||||
|
*"foot"*)
|
||||||
|
sxmo_type.sh -M Shift -k Page_Up
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"st"*)
|
||||||
|
sxmo_type.sh -M Ctrl -M Shift -k b
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*"oneup")
|
||||||
|
case "$WMCLASS" in
|
||||||
|
*"foot"*)
|
||||||
|
sxmo_type.sh -M Shift -k Page_Down
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"st"*)
|
||||||
|
sxmo_type.sh -M Ctrl -M Shift -k f
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
esac
|
||||||
|
|
||||||
|
#standard handling
|
||||||
|
case "$ACTION" in
|
||||||
|
"powerbutton_one")
|
||||||
|
if echo "$WMCLASS" | grep -i "megapixels"; then
|
||||||
|
sxmo_type.sh -k space
|
||||||
|
else
|
||||||
|
lock_screen_action
|
||||||
|
fi
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"powerbutton_two")
|
||||||
|
lock_screen_action 2
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"powerbutton_three")
|
||||||
|
sxmo_terminal.sh
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"voldown_one")
|
||||||
|
sxmo_keyboard.sh toggle
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
"voldown_two")
|
||||||
|
sxmo_wm.sh togglelayout
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
"voldown_three")
|
||||||
|
sxmo_killwindow.sh
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
"volup_one")
|
||||||
|
sxmo_appmenu.sh
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
"volup_two")
|
||||||
|
sxmo_appmenu.sh sys
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
"volup_three")
|
||||||
|
sxmo_wmmenu.sh
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
"rightleftedge")
|
||||||
|
bspc desktop -f prev.local
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"leftrightedge")
|
||||||
|
bspc desktop -f next.local
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"twoleft")
|
||||||
|
#sxmo_wm.sh movepreviousworkspace
|
||||||
|
bspc node -d prev.local
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"tworight")
|
||||||
|
#sxmo_wm.sh movenextworkspace
|
||||||
|
bspc node -d next.local
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"righttopedge")
|
||||||
|
sxmo_brightness.sh up &
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"lefttopedge")
|
||||||
|
sxmo_brightness.sh down &
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"upleftedge")
|
||||||
|
sxmo_audio.sh vol up &
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"downleftedge")
|
||||||
|
sxmo_audio.sh vol down &
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"upbottomedge")
|
||||||
|
sxmo_keyboard.sh open
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"downbottomedge")
|
||||||
|
sxmo_keyboard.sh close
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"downtopedge")
|
||||||
|
sxmo_dmenu.sh isopen || sxmo_appmenu.sh &
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"twodowntopedge")
|
||||||
|
sxmo_dmenu.sh isopen || sxmo_appmenu.sh sys &
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"uptopedge")
|
||||||
|
sxmo_dmenu.sh close
|
||||||
|
if pgrep mako >/dev/null; then
|
||||||
|
makoctl dismiss --all
|
||||||
|
elif pgrep dunst >/dev/null; then
|
||||||
|
dunstctl close-all
|
||||||
|
fi
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"twodownbottomedge")
|
||||||
|
#sxmo_killwindow.sh
|
||||||
|
bspc node -c
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"uprightedge")
|
||||||
|
sxmo_type.sh -k Up
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"downrightedge")
|
||||||
|
sxmo_type.sh -k Down
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"leftrightedge_short")
|
||||||
|
sxmo_type.sh -k Left
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"rightrightedge_short")
|
||||||
|
sxmo_type.sh -k Right
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"rightbottomedge")
|
||||||
|
sxmo_type.sh -k Return
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"leftbottomedge")
|
||||||
|
sxmo_type.sh -k BackSpace
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"topleftcorner")
|
||||||
|
sxmo_appmenu.sh sys &
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"toprightcorner")
|
||||||
|
sxmo_appmenu.sh scripts &
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"bottomleftcorner")
|
||||||
|
sxmo_dmenu.sh close
|
||||||
|
if [ -n "$WMCLASS" ]; then
|
||||||
|
sxmo_hook_lock.sh
|
||||||
|
else
|
||||||
|
sxmo_hook_screenoff.sh
|
||||||
|
fi
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"bottomrightcorner")
|
||||||
|
sxmo_rotate.sh &
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
389
.config/sxmo/hooks/pine64,pinephone-1.2/sxmo_hook_inputhandler.sh
Executable file
389
.config/sxmo/hooks/pine64,pinephone-1.2/sxmo_hook_inputhandler.sh
Executable file
|
@ -0,0 +1,389 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# configversion: 061f1ec838ab73997514c2281424b1e6
|
||||||
|
# SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
# Copyright 2022 Sxmo Contributors
|
||||||
|
|
||||||
|
# This script handles input actions, it is called by lisgd for gestures
|
||||||
|
# and by dwm for button presses
|
||||||
|
|
||||||
|
ACTION="$1"
|
||||||
|
|
||||||
|
# include common definitions
|
||||||
|
# shellcheck source=scripts/core/sxmo_common.sh
|
||||||
|
. sxmo_common.sh
|
||||||
|
|
||||||
|
# this action will move the lock state $1 levels higher
|
||||||
|
lock_screen_action() {
|
||||||
|
count="${1:-1}"
|
||||||
|
|
||||||
|
state="$(cat "$SXMO_STATE")"
|
||||||
|
while [ "$count" -gt 0 ]; do
|
||||||
|
case "$state" in
|
||||||
|
unlock)
|
||||||
|
state=screenoff
|
||||||
|
;;
|
||||||
|
screenoff)
|
||||||
|
state=lock
|
||||||
|
;;
|
||||||
|
lock)
|
||||||
|
state=unlock
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
count=$((count-1))
|
||||||
|
done
|
||||||
|
|
||||||
|
sxmo_hook_"$state".sh
|
||||||
|
}
|
||||||
|
|
||||||
|
XPROPOUT="$(sxmo_wm.sh focusedwindow)"
|
||||||
|
WMCLASS="$(printf %s "$XPROPOUT" | grep app: | cut -d" " -f2- | tr '[:upper:]' '[:lower:]')"
|
||||||
|
WMNAME="$(printf %s "$XPROPOUT" | grep title: | cut -d" " -f2- | tr '[:upper:]' '[:lower:]')"
|
||||||
|
|
||||||
|
sxmo_debug "ACTION: $ACTION WMCLASS: $WMCLASS WMNAME: $WMNAME XPROPOUT: $XPROPOUT"
|
||||||
|
|
||||||
|
if ! grep -q unlock "$SXMO_STATE"; then
|
||||||
|
case "$ACTION" in
|
||||||
|
"powerbutton_one")
|
||||||
|
lock_screen_action
|
||||||
|
;;
|
||||||
|
"powerbutton_two"|"powerbutton_three")
|
||||||
|
lock_screen_action 2
|
||||||
|
;;
|
||||||
|
"voldown_one")
|
||||||
|
sxmo_audio.sh vol down 5
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
"voldown_two")
|
||||||
|
sxmo_audio.sh vol down 10
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
"voldown_three")
|
||||||
|
sxmo_audio.sh vol down 15
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
"volup_one")
|
||||||
|
sxmo_audio.sh vol up 5
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
"volup_two")
|
||||||
|
sxmo_audio.sh vol up 10
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
"volup_three")
|
||||||
|
sxmo_audio.sh vol up 15
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
#we're locked, don't process the rest of the script
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
#special context-sensitive handling
|
||||||
|
case "$WMCLASS" in
|
||||||
|
*"mpv"*)
|
||||||
|
case "$ACTION" in
|
||||||
|
"oneright")
|
||||||
|
sxmo_type.sh -k Left
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"oneleft")
|
||||||
|
sxmo_type.sh -k Right
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"oneup")
|
||||||
|
sxmo_type.sh m
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"onedown")
|
||||||
|
sxmo_type.sh p
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*"foot"*|*"st"*|*"vte"*)
|
||||||
|
# First we try to handle the app running inside st:
|
||||||
|
case "$WMNAME" in
|
||||||
|
*"weechat"*)
|
||||||
|
case "$ACTION" in
|
||||||
|
*"oneleft")
|
||||||
|
sxmo_type.sh -M Alt -k a
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"oneright")
|
||||||
|
sxmo_type.sh -M Alt -k less
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"oneup")
|
||||||
|
sxmo_type.sh -k Page_Down
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"onedown")
|
||||||
|
sxmo_type.sh -k Page_Up
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*" sms")
|
||||||
|
case "$ACTION" in
|
||||||
|
*"upbottomedge")
|
||||||
|
number="$(printf %s "$WMNAME" | sed -e 's|^\"||' -e 's|\"$||' | cut -f1 -d' ')"
|
||||||
|
sxmo_terminal.sh sxmo_modemtext.sh conversationloop "$number" &
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*"tuir"*)
|
||||||
|
if [ "$ACTION" = "rightbottomedge" ]; then
|
||||||
|
sxmo_type.sh o
|
||||||
|
exit 0
|
||||||
|
elif [ "$ACTION" = "leftbottomedge" ]; then
|
||||||
|
sxmo_type.sh s
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*"less"*)
|
||||||
|
case "$ACTION" in
|
||||||
|
"leftbottomedge")
|
||||||
|
sxmo_type.sh q
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"leftrightedge_short")
|
||||||
|
sxmo_type.sh q
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"onedown")
|
||||||
|
sxmo_type.sh u
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"oneup")
|
||||||
|
sxmo_type.sh d
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"oneleft")
|
||||||
|
sxmo_type.sh ":n" -k Return
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"oneright")
|
||||||
|
sxmo_type.sh ":p" -k Return
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*"amfora"*)
|
||||||
|
case "$ACTION" in
|
||||||
|
"downright")
|
||||||
|
sxmo_type.sh -k Tab
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"upleft")
|
||||||
|
sxmo_type.sh -M Shift -k Tab
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"onedown")
|
||||||
|
sxmo_type.sh u
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"oneup")
|
||||||
|
sxmo_type.sh d
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"oneright")
|
||||||
|
sxmo_type.sh -k Return
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"upright")
|
||||||
|
sxmo_type.sh -M Ctrl t
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"oneleft")
|
||||||
|
sxmo_type.sh b
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"downleft")
|
||||||
|
sxmo_type.sh -M Ctrl w
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
# Now we try generic actions for terminal
|
||||||
|
case "$ACTION" in
|
||||||
|
*"onedown")
|
||||||
|
case "$WMCLASS" in
|
||||||
|
*"foot"*)
|
||||||
|
sxmo_type.sh -M Shift -k Page_Up
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"st"*)
|
||||||
|
sxmo_type.sh -M Ctrl -M Shift -k b
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*"oneup")
|
||||||
|
case "$WMCLASS" in
|
||||||
|
*"foot"*)
|
||||||
|
sxmo_type.sh -M Shift -k Page_Down
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"st"*)
|
||||||
|
sxmo_type.sh -M Ctrl -M Shift -k f
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
esac
|
||||||
|
|
||||||
|
#standard handling
|
||||||
|
case "$ACTION" in
|
||||||
|
"powerbutton_one")
|
||||||
|
if echo "$WMCLASS" | grep -i "megapixels"; then
|
||||||
|
sxmo_type.sh -k space
|
||||||
|
else
|
||||||
|
lock_screen_action
|
||||||
|
fi
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"powerbutton_two")
|
||||||
|
lock_screen_action 2
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"powerbutton_three")
|
||||||
|
sxmo_terminal.sh
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"voldown_one")
|
||||||
|
sxmo_keyboard.sh toggle
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
"voldown_two")
|
||||||
|
sxmo_wm.sh togglelayout
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
"voldown_three")
|
||||||
|
sxmo_killwindow.sh
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
"volup_one")
|
||||||
|
sxmo_appmenu.sh
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
"volup_two")
|
||||||
|
sxmo_appmenu.sh sys
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
"volup_three")
|
||||||
|
sxmo_wmmenu.sh
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
"rightleftedge")
|
||||||
|
bspc desktop -f prev.local
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"leftrightedge")
|
||||||
|
bspc desktop -f next.local
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"twoleft")
|
||||||
|
#sxmo_wm.sh movepreviousworkspace
|
||||||
|
bspc node -d prev.local
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"tworight")
|
||||||
|
#sxmo_wm.sh movenextworkspace
|
||||||
|
bspc node -d next.local
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"righttopedge")
|
||||||
|
sxmo_brightness.sh up &
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"lefttopedge")
|
||||||
|
sxmo_brightness.sh down &
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"upleftedge")
|
||||||
|
sxmo_audio.sh vol up &
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"downleftedge")
|
||||||
|
sxmo_audio.sh vol down &
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"upbottomedge")
|
||||||
|
sxmo_keyboard.sh open
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"downbottomedge")
|
||||||
|
sxmo_keyboard.sh close
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"downtopedge")
|
||||||
|
sxmo_dmenu.sh isopen || sxmo_appmenu.sh &
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"twodowntopedge")
|
||||||
|
sxmo_dmenu.sh isopen || sxmo_appmenu.sh sys &
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"uptopedge")
|
||||||
|
sxmo_dmenu.sh close
|
||||||
|
if pgrep mako >/dev/null; then
|
||||||
|
makoctl dismiss --all
|
||||||
|
elif pgrep dunst >/dev/null; then
|
||||||
|
dunstctl close-all
|
||||||
|
fi
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"twodownbottomedge")
|
||||||
|
#sxmo_killwindow.sh
|
||||||
|
bspc node -c
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"uprightedge")
|
||||||
|
sxmo_type.sh -k Up
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"downrightedge")
|
||||||
|
sxmo_type.sh -k Down
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"leftrightedge_short")
|
||||||
|
sxmo_type.sh -k Left
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"rightrightedge_short")
|
||||||
|
sxmo_type.sh -k Right
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"rightbottomedge")
|
||||||
|
sxmo_type.sh -k Return
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"leftbottomedge")
|
||||||
|
sxmo_type.sh -k BackSpace
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"topleftcorner")
|
||||||
|
sxmo_appmenu.sh sys &
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"toprightcorner")
|
||||||
|
sxmo_appmenu.sh scripts &
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"bottomleftcorner")
|
||||||
|
sxmo_dmenu.sh close
|
||||||
|
if [ -n "$WMCLASS" ]; then
|
||||||
|
sxmo_hook_lock.sh
|
||||||
|
else
|
||||||
|
sxmo_hook_screenoff.sh
|
||||||
|
fi
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"bottomrightcorner")
|
||||||
|
sxmo_rotate.sh &
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
389
.config/sxmo/hooks/pine64,pinephone-pro/sxmo_hook_inputhandler.sh
Executable file
389
.config/sxmo/hooks/pine64,pinephone-pro/sxmo_hook_inputhandler.sh
Executable file
|
@ -0,0 +1,389 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# configversion: 061f1ec838ab73997514c2281424b1e6
|
||||||
|
# SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
# Copyright 2022 Sxmo Contributors
|
||||||
|
|
||||||
|
# This script handles input actions, it is called by lisgd for gestures
|
||||||
|
# and by dwm for button presses
|
||||||
|
|
||||||
|
ACTION="$1"
|
||||||
|
|
||||||
|
# include common definitions
|
||||||
|
# shellcheck source=scripts/core/sxmo_common.sh
|
||||||
|
. sxmo_common.sh
|
||||||
|
|
||||||
|
# this action will move the lock state $1 levels higher
|
||||||
|
lock_screen_action() {
|
||||||
|
count="${1:-1}"
|
||||||
|
|
||||||
|
state="$(cat "$SXMO_STATE")"
|
||||||
|
while [ "$count" -gt 0 ]; do
|
||||||
|
case "$state" in
|
||||||
|
unlock)
|
||||||
|
state=screenoff
|
||||||
|
;;
|
||||||
|
screenoff)
|
||||||
|
state=lock
|
||||||
|
;;
|
||||||
|
lock)
|
||||||
|
state=unlock
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
count=$((count-1))
|
||||||
|
done
|
||||||
|
|
||||||
|
sxmo_hook_"$state".sh
|
||||||
|
}
|
||||||
|
|
||||||
|
XPROPOUT="$(sxmo_wm.sh focusedwindow)"
|
||||||
|
WMCLASS="$(printf %s "$XPROPOUT" | grep app: | cut -d" " -f2- | tr '[:upper:]' '[:lower:]')"
|
||||||
|
WMNAME="$(printf %s "$XPROPOUT" | grep title: | cut -d" " -f2- | tr '[:upper:]' '[:lower:]')"
|
||||||
|
|
||||||
|
sxmo_debug "ACTION: $ACTION WMCLASS: $WMCLASS WMNAME: $WMNAME XPROPOUT: $XPROPOUT"
|
||||||
|
|
||||||
|
if ! grep -q unlock "$SXMO_STATE"; then
|
||||||
|
case "$ACTION" in
|
||||||
|
"powerbutton_one")
|
||||||
|
lock_screen_action
|
||||||
|
;;
|
||||||
|
"powerbutton_two"|"powerbutton_three")
|
||||||
|
lock_screen_action 2
|
||||||
|
;;
|
||||||
|
"voldown_one")
|
||||||
|
sxmo_audio.sh vol down 5
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
"voldown_two")
|
||||||
|
sxmo_audio.sh vol down 10
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
"voldown_three")
|
||||||
|
sxmo_audio.sh vol down 15
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
"volup_one")
|
||||||
|
sxmo_audio.sh vol up 5
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
"volup_two")
|
||||||
|
sxmo_audio.sh vol up 10
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
"volup_three")
|
||||||
|
sxmo_audio.sh vol up 15
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
#we're locked, don't process the rest of the script
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
#special context-sensitive handling
|
||||||
|
case "$WMCLASS" in
|
||||||
|
*"mpv"*)
|
||||||
|
case "$ACTION" in
|
||||||
|
"oneright")
|
||||||
|
sxmo_type.sh -k Left
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"oneleft")
|
||||||
|
sxmo_type.sh -k Right
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"oneup")
|
||||||
|
sxmo_type.sh m
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"onedown")
|
||||||
|
sxmo_type.sh p
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*"foot"*|*"st"*|*"vte"*)
|
||||||
|
# First we try to handle the app running inside st:
|
||||||
|
case "$WMNAME" in
|
||||||
|
*"weechat"*)
|
||||||
|
case "$ACTION" in
|
||||||
|
*"oneleft")
|
||||||
|
sxmo_type.sh -M Alt -k a
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"oneright")
|
||||||
|
sxmo_type.sh -M Alt -k less
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"oneup")
|
||||||
|
sxmo_type.sh -k Page_Down
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"onedown")
|
||||||
|
sxmo_type.sh -k Page_Up
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*" sms")
|
||||||
|
case "$ACTION" in
|
||||||
|
*"upbottomedge")
|
||||||
|
number="$(printf %s "$WMNAME" | sed -e 's|^\"||' -e 's|\"$||' | cut -f1 -d' ')"
|
||||||
|
sxmo_terminal.sh sxmo_modemtext.sh conversationloop "$number" &
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*"tuir"*)
|
||||||
|
if [ "$ACTION" = "rightbottomedge" ]; then
|
||||||
|
sxmo_type.sh o
|
||||||
|
exit 0
|
||||||
|
elif [ "$ACTION" = "leftbottomedge" ]; then
|
||||||
|
sxmo_type.sh s
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*"less"*)
|
||||||
|
case "$ACTION" in
|
||||||
|
"leftbottomedge")
|
||||||
|
sxmo_type.sh q
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"leftrightedge_short")
|
||||||
|
sxmo_type.sh q
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"onedown")
|
||||||
|
sxmo_type.sh u
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"oneup")
|
||||||
|
sxmo_type.sh d
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"oneleft")
|
||||||
|
sxmo_type.sh ":n" -k Return
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"oneright")
|
||||||
|
sxmo_type.sh ":p" -k Return
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*"amfora"*)
|
||||||
|
case "$ACTION" in
|
||||||
|
"downright")
|
||||||
|
sxmo_type.sh -k Tab
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"upleft")
|
||||||
|
sxmo_type.sh -M Shift -k Tab
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"onedown")
|
||||||
|
sxmo_type.sh u
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"oneup")
|
||||||
|
sxmo_type.sh d
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"oneright")
|
||||||
|
sxmo_type.sh -k Return
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"upright")
|
||||||
|
sxmo_type.sh -M Ctrl t
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"oneleft")
|
||||||
|
sxmo_type.sh b
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"downleft")
|
||||||
|
sxmo_type.sh -M Ctrl w
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
# Now we try generic actions for terminal
|
||||||
|
case "$ACTION" in
|
||||||
|
*"onedown")
|
||||||
|
case "$WMCLASS" in
|
||||||
|
*"foot"*)
|
||||||
|
sxmo_type.sh -M Shift -k Page_Up
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"st"*)
|
||||||
|
sxmo_type.sh -M Ctrl -M Shift -k b
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*"oneup")
|
||||||
|
case "$WMCLASS" in
|
||||||
|
*"foot"*)
|
||||||
|
sxmo_type.sh -M Shift -k Page_Down
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*"st"*)
|
||||||
|
sxmo_type.sh -M Ctrl -M Shift -k f
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
esac
|
||||||
|
|
||||||
|
#standard handling
|
||||||
|
case "$ACTION" in
|
||||||
|
"powerbutton_one")
|
||||||
|
if echo "$WMCLASS" | grep -i "megapixels"; then
|
||||||
|
sxmo_type.sh -k space
|
||||||
|
else
|
||||||
|
lock_screen_action
|
||||||
|
fi
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"powerbutton_two")
|
||||||
|
lock_screen_action 2
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"powerbutton_three")
|
||||||
|
sxmo_terminal.sh
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"voldown_one")
|
||||||
|
sxmo_keyboard.sh toggle
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
"voldown_two")
|
||||||
|
sxmo_wm.sh togglelayout
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
"voldown_three")
|
||||||
|
sxmo_killwindow.sh
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
"volup_one")
|
||||||
|
sxmo_appmenu.sh
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
"volup_two")
|
||||||
|
sxmo_appmenu.sh sys
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
"volup_three")
|
||||||
|
sxmo_wmmenu.sh
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
"rightleftedge")
|
||||||
|
bspc desktop -f prev.local
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"leftrightedge")
|
||||||
|
bspc desktop -f next.local
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"twoleft")
|
||||||
|
#sxmo_wm.sh movepreviousworkspace
|
||||||
|
bspc node -d prev.local
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"tworight")
|
||||||
|
#sxmo_wm.sh movenextworkspace
|
||||||
|
bspc node -d next.local
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"righttopedge")
|
||||||
|
sxmo_brightness.sh up &
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"lefttopedge")
|
||||||
|
sxmo_brightness.sh down &
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"upleftedge")
|
||||||
|
sxmo_audio.sh vol up &
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"downleftedge")
|
||||||
|
sxmo_audio.sh vol down &
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"upbottomedge")
|
||||||
|
sxmo_keyboard.sh open
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"downbottomedge")
|
||||||
|
sxmo_keyboard.sh close
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"downtopedge")
|
||||||
|
sxmo_dmenu.sh isopen || sxmo_appmenu.sh &
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"twodowntopedge")
|
||||||
|
sxmo_dmenu.sh isopen || sxmo_appmenu.sh sys &
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"uptopedge")
|
||||||
|
sxmo_dmenu.sh close
|
||||||
|
if pgrep mako >/dev/null; then
|
||||||
|
makoctl dismiss --all
|
||||||
|
elif pgrep dunst >/dev/null; then
|
||||||
|
dunstctl close-all
|
||||||
|
fi
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"twodownbottomedge")
|
||||||
|
#sxmo_killwindow.sh
|
||||||
|
bspc node -c
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"uprightedge")
|
||||||
|
sxmo_type.sh -k Up
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"downrightedge")
|
||||||
|
sxmo_type.sh -k Down
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"leftrightedge_short")
|
||||||
|
sxmo_type.sh -k Left
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"rightrightedge_short")
|
||||||
|
sxmo_type.sh -k Right
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"rightbottomedge")
|
||||||
|
sxmo_type.sh -k Return
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"leftbottomedge")
|
||||||
|
sxmo_type.sh -k BackSpace
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"topleftcorner")
|
||||||
|
sxmo_appmenu.sh sys &
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"toprightcorner")
|
||||||
|
sxmo_appmenu.sh scripts &
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"bottomleftcorner")
|
||||||
|
sxmo_dmenu.sh close
|
||||||
|
if [ -n "$WMCLASS" ]; then
|
||||||
|
sxmo_hook_lock.sh
|
||||||
|
else
|
||||||
|
sxmo_hook_screenoff.sh
|
||||||
|
fi
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"bottomrightcorner")
|
||||||
|
sxmo_rotate.sh &
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
14
.config/sxmo/hooks/sxmo_hook_rotate.sh
Executable file
14
.config/sxmo/hooks/sxmo_hook_rotate.sh
Executable file
|
@ -0,0 +1,14 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# configversion: e806e1faef996af8b67d560b864e5f33
|
||||||
|
# SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
# Copyright 2022 Sxmo Contributors
|
||||||
|
|
||||||
|
# This script is executed after the screen is rotated.
|
||||||
|
# You can use this to change your conky/wayout layout or status
|
||||||
|
# bar to something more appropriate to the current orientation.
|
||||||
|
|
||||||
|
# The following parameters are provided:
|
||||||
|
# $1 = the new orientation
|
||||||
|
# possible values are "normal", "left" and "right"
|
||||||
|
|
||||||
|
.config/polybar/launch.sh $1
|
Loading…
Reference in a new issue