Add desktopenvs/hyprland/scripts/hyprland-toggle-touchpad.sh
parent
9d6c00265d
commit
69dbe41a1c
|
|
@ -0,0 +1,40 @@
|
||||||
|
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
STATUS_FILE="$XDG_RUNTIME_DIR/touchpad.status"
|
||||||
|
|
||||||
|
# Detect touchpad name dynamically
|
||||||
|
TOUCHPAD_NAME=$(hyprctl devices | awk '/type: touchpad/{getline; print $2; exit}')
|
||||||
|
TOUCHPAD_KEYWORD="device:${TOUCHPAD_NAME}:enabled"
|
||||||
|
|
||||||
|
# Functions
|
||||||
|
enable_touchpad() {
|
||||||
|
printf "true" >"$STATUS_FILE"
|
||||||
|
notify-send -u normal "Touchpad Enabled"
|
||||||
|
hyprctl keyword "$TOUCHPAD_KEYWORD" "true" -r
|
||||||
|
}
|
||||||
|
|
||||||
|
disable_touchpad() {
|
||||||
|
printf "false" >"$STATUS_FILE"
|
||||||
|
notify-send -u normal "Touchpad Disabled"
|
||||||
|
hyprctl keyword "$TOUCHPAD_KEYWORD" "false" -r
|
||||||
|
}
|
||||||
|
|
||||||
|
# Get current state from Hyprland (1 = enabled, 0 = disabled)
|
||||||
|
CURRENT_STATE=$(hyprctl getoption "$TOUCHPAD_KEYWORD" | grep "int:" | awk '{print $2}')
|
||||||
|
|
||||||
|
# Initialize status file if missing
|
||||||
|
if ! [ -f "$STATUS_FILE" ]; then
|
||||||
|
if [ "$CURRENT_STATE" -eq 1 ]; then
|
||||||
|
printf "true" >"$STATUS_FILE"
|
||||||
|
else
|
||||||
|
printf "false" >"$STATUS_FILE"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Toggle based on status file
|
||||||
|
if [ "$(cat "$STATUS_FILE")" = "true" ]; then
|
||||||
|
disable_touchpad
|
||||||
|
else
|
||||||
|
enable_touchpad
|
||||||
|
fi
|
||||||
Loading…
Reference in New Issue