dotfiles/local/bin/xinput-preferences

52 lines
1.2 KiB
Bash
Executable File

#!/usr/bin/env bash
set -o errexit
set -o pipefail
main() {
local session_id
session_id="$(loginctl --output=json | jq -r '.[]|.session')"
local session_type
session_type="$(
loginctl show-session "${session_id}" -p Type |
awk -F= '{ print $2 }'
)"
"_setup_elan_touchpad_${session_type}"
"_setup_trackman_marble_${session_type}"
}
_setup_elan_touchpad_wayland() {
local tp='org.gnome.desktop.peripherals.touchpad'
gsettings set "${tp}" natural-scroll true
gsettings set "${tp}" tap-to-click true
}
_setup_trackman_marble_wayland() {
local tm='org.gnome.desktop.peripherals.trackball'
gsettings set "${tm}" scroll-wheel-emulation-button 8
gsettings set "${tm}" accel-profile default
}
_setup_elan_touchpad_x11() {
local etp='Elan Touchpad'
if ! xinput list-props "${etp}" &>/dev/null; then
return
fi
xinput set-prop "${etp}" 'libinput Tapping Enabled' 1
xinput set-prop "${etp}" 'libinput Natural Scrolling Enabled' 1
}
_setup_trackman_marble_x11() {
local tmm='Logitech USB Trackball'
if ! xinput list-props "${tmm}" &>/dev/null; then
return
fi
xinput set-prop "${tmm}" 'libinput Button Scrolling Button' 8
xinput set-prop "${tmm}" 'libinput Scroll Method Enabled' 0 0 1
}
main "${@}"