Как избавиться от задержки перед реакцией сенсорной панели Lenovo?

Переменные оболочки по умолчанию являются строками. Некоторые оболочки поддерживают другие типы переменных, но вы должны сообщить об этом оболочке.

В любой оболочке в стиле POSIX ( sh , кроме старых систем Unix, dash, bash, ksh, zsh и т. Д.) Вы можете использовать арифметическое расширение , чтобы указать оболочке для выполнения арифметических действий при анализе присвоения переменной.

t=20
s=$((t+30))
echo "$s"

(Двойные кавычки здесь не обязательны, но это хорошая привычка .)

Также можно сохранить текст выражения для оценки и выполнить арифметические операции при распечатке.

t=20
s=$((t+30))
echo "expression: $s; evaluated: $(($s))"

Но будьте осторожны с использованием явных подстановок переменных внутри арифметических выражений: они заменяются как текст, а не как арифметические подвыражения, поэтому приоритет операторов может выглядеть странно.

echo "$(($s*2))" # equivalent to $((t+30*2)), so prints 80, not 100

В bash, ksh или zsh вы можете вместо этого использовать let или ((…)) для выполнения арифметических операций.

t=20
let s=t+30
echo "$s"

или

((t = 20))
((s = t + 30))
echo "$s"

или их варианты.

Другой возможностью в bash, ksh или zsh является использование встроенного набора typeset для объявления переменной как целого числа. Затем каждое присваивание ему выполняет арифметическую оценку.

typeset -i s t
t=20
s=t+30
echo "$s"

5
20.11.2019, 18:56
3 ответа

Это может быть вызвано управлением питанием USB.

Попробуйте временно отключить управление питанием USB и посмотрите, исчезнет ли проблема:

сначала используйте lsusb (часть пакета usbutils), чтобы определить порт, который использует ваш тачпад:

Bus 002 Device 003: ID 18a5:0245 Verbatim, Ltd 
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

В моем случае это будет приемник logitech unifying receiver на шине 001 Device 003. Теперь найдите соответствующее устройство в /sys/, используя идентификатор производителя вашего устройства (в моем случае это 046d):

grep 046d /sys/bus/usb/devices/*/idVendor

> /sys/bus/usb/devices/1-1.5/idVendor:046d

теперь скажите ядру держать устройство всегда включенным:

echo on >/sys/bus/usb/devices/1-1.5/power/control

если это поможет, вы можете отключить автоотключение в инструментах режима ноутбука. отредактируйте /etc/laptop-mode/conf.d/runtime-pm.conf и добавьте AUTOSUSPEND_RUNTIME_DEVID_BLACKLIST="046d:c52b", где замените 046d:c52b на id вашего устройства, заданный lsusb. В моем случае я использовал более общий параметр, который отключает автоотключение для всех устройств человеческого интерфейса и устройств хранения: AUTOSUSPEND_RUNTIME_DEVTYPE_BLACKLIST="usbhid usb-storage"

0
27.01.2020, 20:42

У меня была такая же проблема в Ubuntu 18.04 LTS.

Установка этого пакета значительно улучшает реакцию сенсорной панели:

sudo apt-get install xserver-xorg-input-synaptics
1
27.01.2020, 20:42

Возможно, в вашем конкретном случае Synaptics Finger (298): 25, 30, 0установлено слишком высокое значение.

. для мгновенного движения при любом давлении (используйте что-то более толковое позже):

xinput set-prop "SynPS/2 Synaptics TouchPad" "Synaptics Finger" 1 1 0

для вашего устройстваSynPS/2 Synaptics TouchPad(получить имя устройства по:xinput list)

Документация:

"FingerLow" "integer": When finger pressure drops below this value, the driver counts it as a release. Property: "Synaptics Finger"

"FingerHigh" "integer": When finger pressure goes above this value, the driver counts it as a touch. Property: "Synaptics Finger"

Таким образом, проблема здесь может заключаться в «давлении», а не в расстоянии в пикселях.

1
27.01.2020, 20:42

Теги

Похожие вопросы