41 lines
1.0 KiB
Bash
Executable File
41 lines
1.0 KiB
Bash
Executable File
|
|
#!/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
|