Вопрос или проблема
Когда я удерживаю левую или правую клавишу-стрелку, чтобы переместить курсор, он перемещается правильно, но если я внезапно отпускаю кнопку, курсор продолжает двигаться еще немного, как если бы была задержка, что раздражает, так как я не могу найти правильное положение.
Я использую zsh и последнюю версию Kali (Kali 2024). Также я использую Gnome. Может быть, это проблема Gnome? (Виртуальная машина не облачная, так что никаких задержек от интернет-соединения; я также изменил настройки повторения (клавиши–>скорость повторения, клавиши–>задержка), но они предназначены для проблем с набором текста, а не для перемещения курсора).
Я исследовал это и очень близок к тому, чтобы разобраться, но мне нужна помощь. Я установил эти значения для Gnome для клавиш нампада 2, 4, 6, 8 (которые работают как стрелки, когда NumLock отключен). Эти кнопки, кажется, работают правильно при удерживании/отпускании. Скорость перемещения курсора нормальная, и когда я отпускаю клавиши, он сразу же останавливается, как и в любой другой системе. Проблема теперь в том, как передать те же значения для классических клавиш управления курсором, поскольку они не работают правильно.
gsettings set org.gnome.desktop.a11y.keyboard mousekeys-max-speed 2000;
gsettings set org.gnome.desktop.a11y.keyboard mousekeys-init-delay 20;
gsettings set org.gnome.desktop.a11y.keyboard mousekeys-accel-time 2000;
gsettings set org.gnome.desktop.a11y.keyboard mousekeys-enable true;
└─$ xset q
Keyboard Control:
auto repeat: on key click percent: 0 LED mask: 00000002
XKB indicators:
00: Caps Lock: off 01: Num Lock: on 02: Scroll Lock: off
03: Compose: off 04: Kana: off 05: Sleep: off
06: Suspend: off 07: Mute: off 08: Misc: off
09: Mail: off 10: Charging: off 11: Shift Lock: off
12: Group 2: off 13: Mouse Keys: off
auto repeat delay: 600 repeat rate: 31
auto repeating keys: 00ffffffdffffbbf
fadfffefffedffff
9fffffffffffffff
fff7ffffffffffff
bell percent: 50 bell pitch: 400 bell duration: 100
Pointer Control:
acceleration: 2/1 threshold: 4
Screen Saver:
prefer blanking: yes allow exposures: yes
timeout: 0 cycle: 0
Colors:
default colormap: 0x20 BlackPixel: 0x0 WhitePixel: 0xffffff
Font Path:
/usr/share/fonts/X11/misc,/usr/share/fonts/X11/100dpi/:unscaled,/usr/share/fonts/X11/75dpi/:unscaled,/usr/share/fonts/X11/Type1,/usr/share/fonts/X11/100dpi,/usr/share/fonts/X11/75dpi,built-ins
DPMS (Display Power Management Signaling):
Standby: 0 Suspend: 0 Off: 0
DPMS включен
Монитор включен
gsettings list-recursively org.gnome.desktop.peripherals.keyboard
org.gnome.desktop.peripherals.keyboard delay uint32 500
org.gnome.desktop.peripherals.keyboard numlock-state false
org.gnome.desktop.peripherals.keyboard remember-numlock-state true
org.gnome.desktop.peripherals.keyboard repeat true
org.gnome.desktop.peripherals.keyboard repeat-interval uint32 30
Это решило мою проблему, добавьте это в файл vmware .vmx
keyboard.allowBothIRQs = "FALSE"
keyboard.vusb.enable = "TRUE"
Ответ или решение
В описанной ситуации пользователь сталкивается с проблемой пролонгированного перемещения курсора при отпускании клавиш управления курсором (влево и вправо) в Kali Linux с оболочкой zsh и окружением рабочего стола Gnome на виртуальной машине. Рассмотрим это подробнее.
Теория
Проблема, описанная пользователем, связана с некорректной обработкой сигнала отпускания клавиш. Когда пользователь удерживает кнопку и затем отпускает ее, система продолжает обработку сигнала, как будто клавиша все еще нажата. Это может быть вызвано несколькими факторами:
-
Конфигурация системы и драйверов: Некорректные настройки клавиатуры или драйверов могут привести к неправильной интерпретации событий нажатия и отпускания клавиш.
-
Настройки повторения клавиш: Поведение, связанное с авто-повтором клавиш, может влиять на реакции куросора на перемещения. Стандартные параметры могут быть слишком высоки для комфортного использования.
-
Виртуальная среда: Проблемы, связанные с виртуальными машинами, особенно на VMWare, могут касаться обработки ввода-вывода, где используются эмуляторные драйверы клавиатуры.
Пример
Пользователь уже внес изменения в конфигурацию, добавив настройки через команду gsettings
в GNOME, такие как скорость движения мыши и ускорение. Несмотря на это, проблема все еще сохраняется для классических клавиш навигации.
Применение
Для устранения описанной проблемы, необходимо предпринять следующие шаги:
-
Калибровка настроек клавиатуры:
- Проверить и откорректировать настройки задержки (
delay
) и интервала повтора (repeat-interval
) черезgsettings
. - Убедиться, что
auto repeat
(автоповтор) включен и имеет оптимальные значения. Например,delay
может быть установлен в 600 мс, аrepeat-interval
в 30 мс, как это уже указано вxset q
.
- Проверить и откорректировать настройки задержки (
-
Настройка VMWare:
- Изменить конфигурацию виртуальной машины в файле .vmx, как предложено:
keyboard.allowBothIRQs = "FALSE" keyboard.vusb.enable = "TRUE"
Эти настройки позволяют переключить обработку прерываний клавиатуры и включить виртуальные USB клавиатуры, что может помочь в улучшении реакции системы на нажатия клавиш.
- Изменить конфигурацию виртуальной машины в файле .vmx, как предложено:
-
Обновление системы и драйверов:
- Убедиться, что все пакеты, связанные с управлением клавиатурой и устройствами ввода, актуальны.
- Обновить виртуальные драйверы VMWare Tools, так как устаревшие версии могут приводить к несоответствиям в обработке устройств ввода.
-
Тестирование альтернативных сред:
- Если проблема сохраняется, попробовать переключиться на другую среду рабочего стола (например, XFCE или KDE), чтобы проверить, не связано ли это с GNOME.
-
Обратная связь и логи:
- Использовать
dmesg
илиjournalctl
для проверки логов системы на предмет ошибок, связанных с устройствами ввода.
- Использовать
-
Дополнительные утилиты и диагностика:
- Использовать утилиту
xinput
для диагностики и изменения параметров ввода устройств. Это поможет более детально настроить поведение клавиатуры.
- Использовать утилиту
Каждое из предложенных изменений может способствовать решению проблемы или, по крайней мере, её сокращению. Важно последовательно тестировать влияние каждой настройки, чтобы избежать внесения конфликтов в существующую конфигурацию системы. При этом, использование обновленной версии системы и утилит управления, таких как xset
и xinput
, должно обеспечивать более точное управление устройствами ввода и быстродействие системы.