52 lines
1.2 KiB
Bash
Executable File
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 "${@}"
|