init commit
This commit is contained in:
@@ -0,0 +1,540 @@
|
||||
#!/bin/sh
|
||||
# configversion: 113bf453dd3310afff192d841089e5ac
|
||||
# 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. Gestures are tied to actions in
|
||||
# sxmo_hook_lisgdstart.sh .
|
||||
|
||||
ACTION="$1"
|
||||
|
||||
# include common definitions
|
||||
# shellcheck source=scripts/core/sxmo_common.sh
|
||||
. sxmo_common.sh
|
||||
|
||||
stop_proximity_lock() {
|
||||
sxmo_jobs.sh stop proximity_lock
|
||||
}
|
||||
|
||||
exec 0<<EOF
|
||||
$(sxmo_wm.sh focusedwindow -r)
|
||||
EOF
|
||||
read -r WMCLASS
|
||||
read -r WMNAME
|
||||
|
||||
sxmo_debug "STATE: $(sxmo_state.sh get) ACTION: $ACTION WMCLASS: $WMCLASS WMNAME: $WMNAME"
|
||||
|
||||
if sxmo_state.sh is_locked; then
|
||||
case "$WMNAME" in # Handle programs
|
||||
*"epy"*|*"epr"*)
|
||||
case "$ACTION" in
|
||||
"voldown_one")
|
||||
sxmo_type.sh l
|
||||
exit 0
|
||||
;;
|
||||
"volup_one")
|
||||
sxmo_type.sh h
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
case "$ACTION" in
|
||||
"powerbutton_one"|"powerbutton_two"|"powerbutton_three"|"menuleft_one"|"menuright_one"|"enter_one"|"enter_two"|"enter_three")
|
||||
brightnessctl -d white:kbd_backlight set 255 >/dev/null 2>&1 || true
|
||||
sxmo_state.sh set unlock
|
||||
sxmo_wm.sh display on
|
||||
;;
|
||||
"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
|
||||
;;
|
||||
*"acme"*)
|
||||
case "$ACTION" in
|
||||
"volup_one")
|
||||
xdotool click 3
|
||||
exit 0
|
||||
;;
|
||||
"voldown_one")
|
||||
xdotool click 2
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*"links"*)
|
||||
case "$ACTION" in
|
||||
# you're probably dragging the scrollbar
|
||||
*"uprightedge") exit 0 ;;
|
||||
*"downrightedge") exit 0 ;;
|
||||
*"onedown")
|
||||
sxmo_type.sh -M Ctrl -M Shift -k b
|
||||
exit 0
|
||||
;;
|
||||
*"oneup")
|
||||
sxmo_type.sh -M Ctrl -M Shift -k f
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*"netsurf"*)
|
||||
case "$ACTION" in
|
||||
# you're probably dragging the scrollbar
|
||||
*"uprightedge") exit 0 ;;
|
||||
*"downrightedge") exit 0 ;;
|
||||
*"onedown")
|
||||
sxmo_type.sh -k Page_Up
|
||||
exit 0
|
||||
;;
|
||||
*"oneup")
|
||||
sxmo_type.sh -k Page_Down
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*"firefox"*|*"librewolf"*)
|
||||
case "$ACTION" in
|
||||
# you're probably dragging the scrollbar
|
||||
*"uprightedge") exit 0 ;;
|
||||
*"downrightedge") exit 0 ;;
|
||||
esac
|
||||
;;
|
||||
*"foot"*|*"st"*|*"vte"*|"terminal") # Terminals
|
||||
case "$WMCLASS" in # Handle programs without touch support
|
||||
*"st"*)
|
||||
case "$WMNAME" in
|
||||
*"weechat"*|*'gomuks'*)
|
||||
case "$ACTION" in
|
||||
*"onedown")
|
||||
sxmo_type.sh -k Page_Up
|
||||
exit 0
|
||||
;;
|
||||
*"oneup")
|
||||
sxmo_type.sh -k Page_Down
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*"less"*|*"amfora"*)
|
||||
case "$ACTION" in
|
||||
*"onedown")
|
||||
sxmo_type.sh u
|
||||
exit 0
|
||||
;;
|
||||
*"oneup")
|
||||
sxmo_type.sh d
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*'irssi'*)
|
||||
case "$ACTION" in
|
||||
"onedown")
|
||||
sxmo_type.sh -M Alt p
|
||||
exit 0
|
||||
;;
|
||||
"oneup")
|
||||
sxmo_type.sh -M Alt n
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*'epy'*|*'epr'*)
|
||||
case "$ACTION" in
|
||||
"onedown")
|
||||
sxmo_type.sh h
|
||||
exit 0
|
||||
;;
|
||||
"oneup")
|
||||
sxmo_type.sh l
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*'nnn'*|'lf')
|
||||
case "$ACTION" in
|
||||
"onedown")
|
||||
sxmo_type.sh -k Down
|
||||
exit 0
|
||||
;;
|
||||
"oneup")
|
||||
sxmo_type.sh -k Up
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
|
||||
case "$WMNAME" in # Handle programs
|
||||
*"weechat"*)
|
||||
case "$ACTION" in
|
||||
*"oneleft")
|
||||
sxmo_type.sh -M Alt -k a
|
||||
exit 0
|
||||
;;
|
||||
*"oneright")
|
||||
sxmo_type.sh -M Alt -k less
|
||||
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
|
||||
;;
|
||||
*"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
|
||||
;;
|
||||
*"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
|
||||
;;
|
||||
*"epy"*|*"epr"*)
|
||||
case "$ACTION" in
|
||||
*"left"|"voldown_one")
|
||||
sxmo_type.sh l
|
||||
exit 0
|
||||
;;
|
||||
*"right"|"volup_one")
|
||||
sxmo_type.sh h
|
||||
exit 0
|
||||
;;
|
||||
"voldown_three"|"twodownbottomedge")
|
||||
sxmo_type.sh q
|
||||
exit
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*'nnn'*|'lf')
|
||||
case "$ACTION" in
|
||||
*"left")
|
||||
sxmo_type.sh -k Right
|
||||
exit 0
|
||||
;;
|
||||
*"right")
|
||||
sxmo_type.sh -k Left
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
|
||||
case "$WMCLASS" in # Handle general scrolling without touch support
|
||||
*"st"*)
|
||||
case "$ACTION" in
|
||||
*"onedown")
|
||||
sxmo_type.sh -M Ctrl -M Shift -k b
|
||||
exit 0
|
||||
;;
|
||||
*"oneup")
|
||||
sxmo_type.sh -M Ctrl -M Shift -k f
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
"org.gnome.vte.application"|"terminal")
|
||||
case "$ACTION" in
|
||||
# For VTE, fallback to doing nothing,
|
||||
# you're probably dragging the scrollbar
|
||||
*"uprightedge") exit 0 ;;
|
||||
*"downrightedge") exit 0 ;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
|
||||
#standard handling
|
||||
case "$ACTION" in
|
||||
"menuright"*|"menuright_one")
|
||||
if sxmo_dmenu.sh isopen; then
|
||||
sxmo_dmenu.sh close
|
||||
else
|
||||
sxmo_appmenu.sh "$WMCLASS" "$WMNAME"
|
||||
fi
|
||||
exit 0
|
||||
;;
|
||||
"menuleft"*|"menuleft_one")
|
||||
if sxmo_dmenu.sh isopen; then
|
||||
sxmo_dmenu.sh close
|
||||
else
|
||||
sxmo_appmenu.sh sys
|
||||
fi
|
||||
exit 0
|
||||
;;
|
||||
"enter_one")
|
||||
if pidof -q sxmo_RepeatRing.sh; then
|
||||
sxmo_hook_pickup.sh
|
||||
else
|
||||
sxmo_appmenu.sh "$WMCLASS" "$WMNAME"
|
||||
fi
|
||||
exit 0
|
||||
;;
|
||||
"enter_two")
|
||||
swaymsg focus next >/dev/null 2>&1 || sxmo_wm.sh switchfocus
|
||||
exit 0
|
||||
;;
|
||||
"enter_three")
|
||||
sxmo_wm.sh togglelayout
|
||||
exit 0
|
||||
;;
|
||||
"powerbutton_one")
|
||||
if echo "$WMCLASS" | grep -i "megapixels"; then
|
||||
sxmo_type.sh -k space
|
||||
else
|
||||
sxmo_appmenu.sh power
|
||||
fi
|
||||
exit 0
|
||||
;;
|
||||
"powerbutton_two")
|
||||
sxmo_state.sh click 2
|
||||
exit 0
|
||||
;;
|
||||
"powerbutton_three")
|
||||
sxmo_terminal.sh
|
||||
exit 0
|
||||
;;
|
||||
"voldown_one")
|
||||
if [ -n "$SXMO_NO_VIRTUAL_KEYBOARD" ]; then
|
||||
sxmo_killwindow.sh
|
||||
else
|
||||
sxmo_keyboard.sh toggle
|
||||
fi
|
||||
exit
|
||||
;;
|
||||
"voldown_two")
|
||||
sxmo_wm.sh togglelayout
|
||||
exit
|
||||
;;
|
||||
"voldown_three")
|
||||
sxmo_killwindow.sh
|
||||
exit
|
||||
;;
|
||||
"volup_one")
|
||||
sxmo_appmenu.sh "$WMCLASS" "$WMNAME"
|
||||
exit
|
||||
;;
|
||||
"volup_two")
|
||||
sxmo_appmenu.sh sys
|
||||
exit
|
||||
;;
|
||||
"volup_three")
|
||||
sxmo_wmmenu.sh
|
||||
exit
|
||||
;;
|
||||
"rightleftedge")
|
||||
sxmo_wm.sh previousworkspace
|
||||
exit 0
|
||||
;;
|
||||
"leftrightedge")
|
||||
sxmo_wm.sh nextworkspace
|
||||
exit 0
|
||||
;;
|
||||
"twoleft")
|
||||
sxmo_wm.sh movepreviousworkspace
|
||||
exit 0
|
||||
;;
|
||||
"tworight")
|
||||
sxmo_wm.sh movenextworkspace
|
||||
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")
|
||||
if [ -n "$SXMO_NO_VIRTUAL_KEYBOARD" ]; then
|
||||
sxmo_terminal.sh
|
||||
else
|
||||
sxmo_keyboard.sh open
|
||||
fi
|
||||
exit 0
|
||||
;;
|
||||
"downbottomedge")
|
||||
if [ -n "$SXMO_NO_VIRTUAL_KEYBOARD" ]; then
|
||||
sxmo_killwindow.sh
|
||||
else
|
||||
sxmo_keyboard.sh close
|
||||
fi
|
||||
exit 0
|
||||
;;
|
||||
"downtopedge")
|
||||
sxmo_dmenu.sh isopen || sxmo_appmenu.sh "$WMCLASS" "$WMNAME"
|
||||
exit 0
|
||||
;;
|
||||
"twodowntopedge")
|
||||
sxmo_hook_quickactions.sh
|
||||
exit 0
|
||||
;;
|
||||
"uptopedge")
|
||||
sxmo_dmenu.sh close
|
||||
dunstctl close-all
|
||||
exit 0
|
||||
;;
|
||||
"twodownbottomedge")
|
||||
sxmo_killwindow.sh
|
||||
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
|
||||
sxmo_keyboard.sh close
|
||||
if [ -n "$WMCLASS" ]; then
|
||||
sxmo_state.sh set lock
|
||||
else
|
||||
sxmo_state.sh set screenoff
|
||||
fi
|
||||
exit 0
|
||||
;;
|
||||
"bottomrightcorner")
|
||||
sxmo_rotate.sh
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
@@ -0,0 +1,75 @@
|
||||
#!/bin/sh
|
||||
# configversion: 32e953d311555ad8dd7b4c13d5a0fff4
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
# Copyright 2022 Sxmo Contributors
|
||||
|
||||
# include common definitions
|
||||
# shellcheck source=scripts/core/sxmo_common.sh
|
||||
. sxmo_common.sh
|
||||
|
||||
LISGD_THRESHOLD="${SXMO_LISGD_THRESHOLD:-125}"
|
||||
LISGD_THRESHOLD_PRESSED="${SXMO_LISGD_THRESHOLD_PRESSED:-60}"
|
||||
LISGD_INPUT_DEVICE="${SXMO_LISGD_INPUT_DEVICE:-"/dev/input/by-path/first-touchscreen"}"
|
||||
|
||||
case "$SXMO_WM" in
|
||||
dwm|i3)
|
||||
case "$(xrandr | grep primary | cut -d' ' -f 5)" in
|
||||
right) orientation=1;;
|
||||
left) orientation=3;;
|
||||
inverted) orientation=2;;
|
||||
*) orientation=0;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
|
||||
#-g format:
|
||||
# fingers,swipe,edge,distance,command
|
||||
#order matters, only the first match gets executed
|
||||
lisgd "$@" -d "$LISGD_INPUT_DEVICE" ${orientation:+-o $orientation} \
|
||||
-s "${LISGD_EDGE_SIZE:-1.0}" -t "$LISGD_THRESHOLD" -T "$LISGD_THRESHOLD_PRESSED" \
|
||||
-g "1,DRUL,BR,*,setsid -f sxmo_hook_inputhandler.sh bottomrightcorner" \
|
||||
-g "1,DLUR,BL,*,setsid -f sxmo_hook_inputhandler.sh bottomleftcorner" \
|
||||
-g "1,ULDR,TL,*,setsid -f sxmo_hook_inputhandler.sh topleftcorner" \
|
||||
-g "1,URDL,TR,*,setsid -f sxmo_hook_inputhandler.sh toprightcorner" \
|
||||
-g "1,LR,B,L,setsid -f sxmo_hook_inputhandler.sh rightbottomedge" \
|
||||
-g "1,RL,B,L,setsid -f sxmo_hook_inputhandler.sh leftbottomedge" \
|
||||
-g "1,LR,L,*,setsid -f sxmo_hook_inputhandler.sh rightleftedge" \
|
||||
-g "1,RL,R,*,setsid -f sxmo_hook_inputhandler.sh leftrightedge" \
|
||||
-g "1,DU,L,*,P,setsid -f sxmo_hook_inputhandler.sh upleftedge" \
|
||||
-g "1,UD,L,*,P,setsid -f sxmo_hook_inputhandler.sh downleftedge" \
|
||||
-g "1,LR,T,*,P,setsid -f sxmo_hook_inputhandler.sh righttopedge" \
|
||||
-g "1,RL,T,*,P,setsid -f sxmo_hook_inputhandler.sh lefttopedge" \
|
||||
-g "1,DU,B,*,setsid -f sxmo_hook_inputhandler.sh upbottomedge" \
|
||||
-g "1,UD,B,*,setsid -f sxmo_hook_inputhandler.sh downbottomedge" \
|
||||
-g "1,UD,T,*,setsid -f sxmo_hook_inputhandler.sh downtopedge" \
|
||||
-g "1,DU,T,*,setsid -f sxmo_hook_inputhandler.sh uptopedge" \
|
||||
-g "2,UD,T,*,setsid -f sxmo_hook_inputhandler.sh twodowntopedge" \
|
||||
-g "2,UD,B,*,setsid -f sxmo_hook_inputhandler.sh twodownbottomedge" \
|
||||
-g "1,DU,R,*,P,setsid -f sxmo_hook_inputhandler.sh uprightedge" \
|
||||
-g "1,UD,R,*,P,setsid -f sxmo_hook_inputhandler.sh downrightedge" \
|
||||
-g "1,LR,R,S,setsid -f sxmo_hook_inputhandler.sh rightrightedge_short" \
|
||||
-g "1,RL,L,S,setsid -f sxmo_hook_inputhandler.sh leftrightedge_short" \
|
||||
-g "1,RL,*,L,setsid -f sxmo_hook_inputhandler.sh longoneleft" \
|
||||
-g "1,LR,*,L,setsid -f sxmo_hook_inputhandler.sh longoneright" \
|
||||
-g "1,DU,*,L,setsid -f sxmo_hook_inputhandler.sh longoneup" \
|
||||
-g "1,UD,*,L,setsid -f sxmo_hook_inputhandler.sh longonedown" \
|
||||
-g "1,RL,*,M,setsid -f sxmo_hook_inputhandler.sh mediumoneleft" \
|
||||
-g "1,LR,*,M,setsid -f sxmo_hook_inputhandler.sh mediumoneright" \
|
||||
-g "1,DU,*,M,setsid -f sxmo_hook_inputhandler.sh mediumoneup" \
|
||||
-g "1,UD,*,M,setsid -f sxmo_hook_inputhandler.sh mediumonedown" \
|
||||
-g "1,RL,*,*,setsid -f sxmo_hook_inputhandler.sh oneleft" \
|
||||
-g "1,LR,*,*,setsid -f sxmo_hook_inputhandler.sh oneright" \
|
||||
-g "1,DU,*,*,setsid -f sxmo_hook_inputhandler.sh oneup" \
|
||||
-g "1,UD,*,*,setsid -f sxmo_hook_inputhandler.sh onedown" \
|
||||
-g "1,DRUL,*,*,setsid -f sxmo_hook_inputhandler.sh upleft" \
|
||||
-g "1,URDL,*,*,setsid -f sxmo_hook_inputhandler.sh downleft" \
|
||||
-g "1,DLUR,*,*,setsid -f sxmo_hook_inputhandler.sh upright" \
|
||||
-g "1,ULDR,*,*,setsid -f sxmo_hook_inputhandler.sh downright" \
|
||||
-g "2,RL,*,*,setsid -f sxmo_hook_inputhandler.sh twoleft" \
|
||||
-g "2,LR,*,*,setsid -f sxmo_hook_inputhandler.sh tworight" \
|
||||
-g "2,DU,*,*,setsid -f sxmo_hook_inputhandler.sh twoup" \
|
||||
-g "2,UD,*,*,setsid -f sxmo_hook_inputhandler.sh twodown" \
|
||||
-g "3,RL,*,*,setsid -f sxmo_hook_inputhandler.sh threeleft" \
|
||||
-g "3,LR,*,*,setsid -f sxmo_hook_inputhandler.sh threeright" \
|
||||
-g "3,DU,*,*,setsid -f sxmo_hook_inputhandler.sh threeup" \
|
||||
-g "3,UD,*,*,setsid -f sxmo_hook_inputhandler.sh threedown"
|
||||
@@ -0,0 +1,159 @@
|
||||
#!/bin/sh
|
||||
# configversion: c73f9334f62c4c1addcaf074cbcb91e8
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
# Copyright 2022 Sxmo Contributors
|
||||
|
||||
# Runs upon system start and starts various background services
|
||||
|
||||
# include common definitions
|
||||
# shellcheck source=scripts/core/sxmo_common.sh
|
||||
. sxmo_common.sh
|
||||
|
||||
# Create xdg user directories, such as ~/Pictures
|
||||
xdg-user-dirs-update
|
||||
|
||||
sxmo_jobs.sh start daemon_manager superd
|
||||
|
||||
# let time to superd to start correctly
|
||||
while ! superctl status > /dev/null 2>&1; do
|
||||
sleep 0.5
|
||||
done
|
||||
|
||||
# Not dangerous if "locker" isn't an available state
|
||||
sxmo_state.sh set locker
|
||||
|
||||
if [ -n "$SXMO_ROTATE_START" ]; then
|
||||
sxmo_rotate.sh
|
||||
fi
|
||||
|
||||
# Load our sound daemons
|
||||
|
||||
if [ -z "$SXMO_NO_AUDIO" ]; then
|
||||
if ! [ -d /run/systemd/system ]; then
|
||||
if [ "$(command -v pulseaudio)" ]; then
|
||||
superctl start pulseaudio
|
||||
elif [ "$(command -v pipewire)" ]; then
|
||||
# pipewire-pulse will start pipewire
|
||||
superctl start pipewire-pulse
|
||||
superctl start wireplumber
|
||||
fi
|
||||
fi
|
||||
|
||||
# monitor for headphone for statusbar
|
||||
superctl start sxmo_soundmonitor
|
||||
fi
|
||||
|
||||
# Periodically update some status bar components
|
||||
sxmo_hook_statusbar.sh all
|
||||
sxmo_jobs.sh start statusbar_periodics sxmo_run_aligned.sh 60 \
|
||||
sxmo_hook_statusbar.sh periodics
|
||||
|
||||
# dunst is required for warnings.
|
||||
superctl start dunst
|
||||
|
||||
# start adaptive brightness at boot
|
||||
# superctl start sxmo_adaptivebrightness
|
||||
|
||||
# load some other little things here too.
|
||||
case "$SXMO_WM" in
|
||||
river)
|
||||
superctl start sxmo_wob
|
||||
[ "$(command -v bonsaid)" ] && superctl start bonsaid
|
||||
[ "$(command -v fcitx5)" ] && superctl start fcitx5
|
||||
superctl start sxmo_riverbar
|
||||
;;
|
||||
sway)
|
||||
superctl start sxmo_wob
|
||||
superctl start sxmo_menumode_toggler
|
||||
[ "$(command -v bonsaid)" ] && superctl start bonsaid
|
||||
[ "$(command -v fcitx5)" ] && superctl start fcitx5
|
||||
;;
|
||||
dwm|i3)
|
||||
superctl start sxmo_xob
|
||||
|
||||
# Auto hide cursor with touchscreen, Show it with a mouse
|
||||
if command -v "unclutter-xfixes" > /dev/null; then
|
||||
set -- unclutter-xfixes
|
||||
else
|
||||
set -- unclutter
|
||||
fi
|
||||
superctl start "$1"
|
||||
|
||||
superctl start autocutsel
|
||||
superctl start autocutsel-primary
|
||||
superctl start sxmo-x11-status
|
||||
[ "$(command -v bonsaid)" ] && superctl start bonsaid
|
||||
[ "$(command -v fcitx5)" ] && superctl start fcitx5
|
||||
[ -n "$SXMO_MONITOR" ] && xrandr --output "$SXMO_MONITOR" --primary
|
||||
# Set onboard to auto-hide in config first
|
||||
if [ "$KEYBOARD" = "onboard" ]; then
|
||||
onboard "$KEYBOARD_ARGS"
|
||||
fi
|
||||
case "$SXMO_WM" in
|
||||
i3)
|
||||
xbindkeys -f "$XDG_CONFIG_HOME/sxmo/xbindkeysrc_$SXMO_BINDING_PROVIDER"
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
|
||||
# Turn on auto-suspend
|
||||
if sxmo_wakelock.sh isenabled; then
|
||||
sxmo_wakelock.sh lock sxmo_not_suspendable infinite
|
||||
superctl start sxmo_autosuspend
|
||||
fi
|
||||
|
||||
# To setup initial unlock state
|
||||
sxmo_state.sh set unlock
|
||||
|
||||
# Turn on lisgd
|
||||
if [ ! -e "$XDG_CACHE_HOME"/sxmo/sxmo.nogesture ]; then
|
||||
superctl start sxmo_hook_lisgd
|
||||
fi
|
||||
|
||||
if [ -z "$SXMO_NO_MODEM" ] && command -v ModemManager > /dev/null; then
|
||||
# Turn on the dbus-monitors for modem-related tasks
|
||||
superctl start sxmo_modemmonitor
|
||||
|
||||
# place a wakelock for 120s to allow the modem to fully warm up (eg25 +
|
||||
# elogind/systemd would do this for us, but we don't use those.)
|
||||
sxmo_wakelock.sh lock sxmo_modem_warming_up 120s
|
||||
fi
|
||||
|
||||
# Start the desktop wallpaper
|
||||
superctl start sxmo_bg
|
||||
|
||||
# Start the desktop widget (e.g. clock)
|
||||
superctl start sxmo_conky
|
||||
|
||||
# Monitor the battery
|
||||
superctl start sxmo_battery_monitor
|
||||
|
||||
# It watch network changes and update the status bar icon by example
|
||||
superctl start sxmo_networkmonitor
|
||||
|
||||
# The daemon that display notifications popup messages
|
||||
superctl start sxmo_notificationmonitor
|
||||
|
||||
# Play a funky startup tune if you want (disabled by default)
|
||||
#mpv --quiet --no-video ~/welcome.ogg &
|
||||
|
||||
# mmsd and vvmd
|
||||
if [ -z "$SXMO_NO_MODEM" ]; then
|
||||
if [ -f "${SXMO_MMS_BASE_DIR:-"$HOME"/.mms/modemmanager}/mms" ]; then
|
||||
superctl start mmsd-tng
|
||||
fi
|
||||
|
||||
if [ -f "${SXMO_VVM_BASE_DIR:-"$HOME"/.vvm/modemmanager}/vvm" ]; then
|
||||
superctl start vvmd
|
||||
fi
|
||||
fi
|
||||
|
||||
# add some warnings if things are not setup correctly
|
||||
if ! command -v "sxmo_deviceprofile_$SXMO_DEVICE_NAME.sh"; then
|
||||
sxmo_notify_user.sh --urgency=critical \
|
||||
"No deviceprofile found $SXMO_DEVICE_NAME. See: https://sxmo.org/deviceprofile"
|
||||
fi
|
||||
|
||||
sxmo_migrate.sh state || sxmo_notify_user.sh --urgency=critical \
|
||||
"Config needs migration" "$? file(s) in your sxmo configuration are out of date and disabled - using defaults until you migrate (run sxmo_migrate.sh)"
|
||||
@@ -0,0 +1,29 @@
|
||||
#!/bin/sh -e
|
||||
# configversion: 9c6286bbff8167b35278cf97aae4d7e6
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
# Copyright 2022 Sxmo Contributors
|
||||
|
||||
# shellcheck source=scripts/core/sxmo_common.sh
|
||||
. sxmo_common.sh
|
||||
|
||||
# This script is executed once, and must output the wallpaper to display
|
||||
|
||||
installed_wallpapers() {
|
||||
xdg_data_path wallpapers 0 "\0" | xargs -r0I{} find "{}" -name "$SXMO_OS.*"
|
||||
}
|
||||
|
||||
sxmo_wallpaper() {
|
||||
xdg_data_path sxmo/background.jpg
|
||||
}
|
||||
|
||||
all_wallpapers() {
|
||||
installed_wallpapers
|
||||
sxmo_wallpaper
|
||||
}
|
||||
|
||||
if [ -n "$SXMO_BG_IMG" ]; then
|
||||
printf "%s" "$SXMO_BG_IMG"
|
||||
exit
|
||||
fi
|
||||
|
||||
all_wallpapers | head -n1
|
||||
Reference in New Issue
Block a user