Ноутбуки ThinkPad (например, X230, который я использую) имеют и trackpoint и сенсорную панель. Сенсорная панель отключена при вводе.
Однако, когда я использую trackpoint, я часто касаюсь сенсорной панели также и генерирую щелчки мышью, которых я хотел бы избежать. У кого-либо есть идея, как отключают щелчки мышью по сенсорной панели, когда trackpoint используется?
Править: также, кто-то может объяснить как опция отключения сенсорной панели при вводе работ? Что делается негласно? Действительно ли это - xinput команда конфигурации, и если да, который?
EDIT2: разъяснение; вручную отключающая Сенсорная панель (даже с ярлыком) не является проблемой здесь. Это должно работать точно так же, как опция "отключают сенсорную панель при вводе", так как я использую Touchpad и Trackpoint попеременно (наиболее часто, я использую Сенсорную панель для прокрутки и Trackpoint для перемещения курсора).
Эта функция выполняется syndaemon
утилита, от xserver-xorg-input-synaptics
пакет. Можно установить опции, такие как время простоя, частота запросов, и т.д. (см. справку во время выполнения):
Usage: syndaemon [-i idle-time] [-m poll-delay] [-d] [-t] [-k] -i How many seconds to wait after the last key press before enabling the touchpad. (default is 2.0s) -m How many milli-seconds to wait until next poll. (default is 200ms) ... -t Only disable tapping and scrolling, not mouse movements.
Вот исходный код для syndaemon.c
.
keyboard_activity(...)
и main_loop(...)
keyboard_activity
использует вызов API XQueryKeyMap для получения текущего состояния клавиатуры (1 бит за ключ) и затем выдерживает сравнение, к последнему (старому) состоянию; если они отличаются, это возвращается 1main_loop
опросы keyboard_activity
каждый m
миллисекунды, и на основе "прошлого времени действия" и ли keyboard_activity
TRUE или FALSE возвратов, это решает, запретить ли или включить сенсорную панель.dp_get_device
функция иллюстрирует, как перечисляются X устройств ввода данных; необходимо смочь изменить это и keyboard_activity
функционируйте, чтобы также проверить на любое trackpoint действие. xinput
инструмент перечисляет устройства и идентификаторы, например"
Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ SynPS/2 Synaptics TouchPad id=11 [slave pointer (2)] ⎜ ↳ TPPS/2 IBM TrackPoint id=12 [slave pointer (2)]
Можно получить это (идентификатор) через функцию XListInputDevices
Можно использовать xinput
утилита с query-state
переключатель и идентификатор устройства, чтобы проверить, корректно ли Ваше программирование, например:
$ xinput query-state 12 2 classes : ButtonClass button[1]=up button[2]=up button[3]=up button[4]=up button[5]=up button[6]=up button[7]=up ValuatorClass Mode=Relative Proximity=In valuator[0]=854 valuator[1]=867
xinput
источник для большего количества подсказокИзменить и восстановить этот пакет:
apt-get source...
tools/syndaemon.c
syndaemon
патчи путем комментирования 118...
и 124...
строки в debian/patches/series
dpkg-buildpackage -us -uc
и deb файлы будут в родительском каталоге. Первая вещь, которая будет сделана, состоит в том, чтобы знать Ваш идентификатор сенсорной панели. Таким образом, чтобы сделать, которые выполняют эти шаги
Первый открытый терминал и Выполнение эта команда
~$ xinput --list
Здесь, мы получаем это Touchpad id = <id Number>
После этого, открытые сочетания клавиш затем добавляют, что это ниже два управляет с Вашими сочетаниями клавиш.
# Disable Touchpad:
xinput set-prop <id number> 'Device Enabled' 0
# Enable Touchpad:
xinput set-prop <id number> 'Device Enabled' 1
Вот не использующее высокие технологии решение, которое могло бы быть плохо для энергопотребления (syndaemon-T, патч не работал на меня).
#!/bin/sh
TRACKPOINT_DEV="TPPS/2 IBM TrackPoint"
SLEEP_TIME=5
OLD_XY=0,0,
while true; do
NEW_XY=`xinput query-state "$TRACKPOINT_DEV" |grep valu|awk 'BEGIN { FS = "=" } ; {print $2 ","}'|xargs`
if [ ! "$OLD_XY" = "$NEW_XY" ]; then
synclient TouchpadOff=1
else
synclient TouchpadOff=0
fi
sleep $SLEEP_TIME
OLD_XY="$NEW_XY"
done
должно стать немного удачным заметить использование trackpoint потому что это может только сказать координаты во время каждых 5 интервалов с. Другими словами, это консервативно об отключении сенсорной панели, но не должно надежно повторно включить его, когда trackpoint неактивен.
Так или иначе, это помогает мне много на моем ультрабуке с блуждающим курсором из пальмового нажатия.