Я использую Enlightenment DM, но это актуально для других DM / рабочих столов. Я начинаю сеанс с помощью xsession, поэтому сначала я поместил команды xinput в ~ / .xsession, которые не изменили все параметры, которые я хотел изменить. Только некоторые из них. Я ожидал, что все или никакие изменения не будут, поэтому я добавил цикл с 10-ю целыми числами в мою .xsession с интервалами в 1 секунду, каждый раз выполняя команды xinput и проверяя, применены ли настройки. К моему удивлению, все настройки были применены после первой итерации.
Это означает, что именно ваш DM делает что-то, чтобы переопределить ваши настройки xinput, и поскольку команда, запускающая ваш DM (E17 в моем случае), является последней в вашем файле .xsession, этот файл не подходит для этого.
Я добавил следующие строки в мой ~ / .profile, и это решило проблему:
# don't run unless we're being invoked from an xwindows session
if [[ -n ${DISPLAY} ]]; then
# set your devices names here
pointer1="IBM TrackPoint"
pointer2="Lite-On Technology Corp. ThinkPad USB Keyboard with TrackPoint"
pointer3="Logitech USB Trackball"
id1=$(xinput | awk -F= "/$pointer1.*pointer/ {print \$2}" | cut -f1)
id2=$(xinput | awk -F= "/$pointer2.*pointer/ {print \$2}" | cut -f1)
id3=$(xinput | awk -F= "/$pointer3.*pointer/ {print \$2}" | cut -f1)
if [[ -n "${id1}" ]]; then
xinput --set-button-map "${id1}" 1 2 3 4 5 6 7
xinput set-prop "${id1}" "Evdev Wheel Emulation Axes" 6 7 4 5
xinput set-prop "${id1}" "Evdev Wheel Emulation" 1
xinput set-prop "${id1}" "Evdev Wheel Emulation Button" 2
xinput set-prop "${id1}" "Evdev Middle Button Emulation" 0
fi
if [[ -n "${id2}" ]]; then
xinput --set-button-map "${id2}" 1 2 3 4 5 6 7
xinput set-prop "${id2}" "Evdev Wheel Emulation Axes" 6 7 4 5
xinput set-prop "${id2}" "Evdev Wheel Emulation" 1
xinput set-prop "${id2}" "Evdev Wheel Emulation Button" 2
xinput set-prop "${id2}" "Evdev Middle Button Emulation" 0
fi
if [[ -n "${id3}" ]]; then
xinput --set-button-map "${id3}" 1 2 3 4 5 6 7 8 9
xinput set-prop "${id3}" "Evdev Wheel Emulation Axes" 6 7 4 5
xinput set-prop "${id3}" "Evdev Wheel Emulation" 1
xinput set-prop "${id3}" "Evdev Wheel Emulation Button" 8
xinput set-prop "${id3}" "Evdev Middle Button Emulation" 1
fi
fi
PS. set-int-prop устарела в пользу set-prop (man xinput).
Надеюсь, это кому-нибудь поможет.
sleep 5
в начало вашего.xsession
файла?