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