Чи можна ввімкнути клавіші відмов лише для певних клавіш?


8

На своєму ноутбуці у мене виникає проблема, коли повторюються натискання клавіш на пробілі. Провівши ряд замін, а також спробувавши кілька операційних систем, я визнав, що проблема є апаратною, а не програмною.

На щастя, я дізнався, що Ubuntu має функцію, відому як ключі відмов, яка дозволить мені протидіяти проблемі, оскільки повторні натискання клавіш будуть фільтруватися.

Однак увімкнення рішення для всіх клавіш іноді фільтрує клавіші, які я не хочу фільтрувати. Наприклад, коли я типу привіт , я часто натиснути два л s в швидкій послідовності, проте іноді один з л s фільтрується, що може бути дуже дратує. Я знаю, що мені ніколи не доведеться двічі натискати пробіл у такій швидкій послідовності, і оскільки у мене виникають проблеми лише з пробілом, я хочу лише включити клавіші відмов на пробілі.

Отже, чи можна включити лише клавіші відмов на пробілі?


Повторювали скільки разів? Чи буває це щоразу?
— daltonfury42

Це трапляється не кожен раз, але достатньо, щоб бути дуже дратівливим. Я б сказав, що це відбувається приблизно три рази за абзацом. Це може бути дуже дратує, якщо вам доведеться повертатися назад і редагувати сторонні місця.
— Faiz Saleem

1
Простір зазвичай повторюється приблизно вдвічі. Якщо ви бачите джерело моєї оригінальної публікації, ви зможете легко бачити повторювані пробіли, як я навмисно їх залишив.
— Faiz Saleem

Я оновив свою відповідь, але перш ніж її прочитати, прочитайте її .
— daltonfury42

Дякую, спробую пізніше - я щойно був дуже зайнятий, тому не мав можливості.
— Faiz Saleem

Відповіді:


3

xset - утиліта переваг користувача для X

r - це контроль автоматичного повторення.

xset -r 10

вимкне автоматичне повторення для клавіші "1".

xset r 10

увімкне автоматичне повторення клавіші "1".

xset r [клавішний код]

у моєму випадку клавіатурний код для пробілу - 65 чеків для вашого з кодом: xev | grep -A2 --line-buffered '^KeyRelease' | sed -n '/keycode /s/^.*keycode \([0-9]*\).* (.*, \(.*\)).*$/\1 \2/p'

Тим не менш, якщо вам потрібно змінити швидкість клавіш, ви також можете використовувати параметр швидкості до неї.

А також додайте цю команду у файл сценарію запуску сеансу.


Ви можете отримати поточний список, з якими ключами увімкнено автоматичне повторення xset q. Це 256-бітний масив, скинутий у шістнадцятковий, і його досить важко читати.
— meuh

Я точно буду впевнений, що я спробую це зробити. Дякую!
— Faiz Saleem

1
Для мене добре працювали. Насолоджуйтесь +100 повторень!
— Faiz Saleem

4

Я знайшов рішення для вас, але воно не передбачає відмов ключів. Що я тут роблю - це деактивувати клавішу пробілу / клавіатуру на невеликий час кожного разу, коли натискається пробіл. Отже, це іде:

Ми використовуємо xbindkeysдля зйомки натискання на пробіл (у цьому випадку випуску) та xdotoolдля вставки пробілів. Встановіть їх, якщо у вас його немає у вашій системі:

sudo apt-get install xbindkeys xdotool

Конфігураційний файл xbindkeys повинен був з’явитися у вашій домашній папці під назвою .xbindkeysrcще створити такий:

xbindkeys -d > ~/.xbindkeysrc

Скопіюйте фрагмент і вставте його у файл .xbindkeysrc.

"xdotool key KP_Space; xinput set-int-prop <kbd-id> "Device Enabled" 8 0; sleep .05 ; xinput set-int-prop <kbd-id> "Device Enabled" 8 1"
     m:0x0 + c:65 + Release
    space

Ось <kbd-id>ідентифікатор клавіатури, який можна дізнатися xinputкомандою. Тепер ви хочете налаштувати xbindkeys для запуску кожного разу при запуску комп'ютера.

Відкрийте /etc/rc.localі додайте рядок xbindkeysраніше exit 0.

Ви закінчили. Відкрийте термінал і введіть xbindkeysйого для запуску наразі. Подивіться, чи це робить роботу. Якщо подвійні пробіли або символи не потрапили після відсутності пробілів, відповідно відрегулюйте delayкоманду in ~/.xbindkeysrcі перезавантажте її.

Список літератури:


У мене було кілька питань з цією відповіддю. Команда xinput, яку ви зв'язали , не відключає клавіатуру, вона вимикає сенсорний екран. Я намагався адаптувати команду, щоб відключити клавіатуру, але і це не спрацювало. Правильна команда: xinput float 13 ; sleep .1 ; xinput reattach 13 3, яка робить роботу. Однак саме рішення не працює. Коли я запускаю xbindkeys з цією командою, пробіл більше не входить у пробіл. Клавіатуру вона вимикає ненадовго, як слід, але пробіл не вводиться. Я щось роблю не так?
— Faiz Saleem

Я також просто знайшов спосіб відключити лише клавішу пробілу. Це залежить від xmodmap: xmodmap -e 'keycode 65=NoSymbol' ; sleep .1; xmodmap -e 'keycode 65=KP_Space
— Faiz Saleem

@FaizSaleem, вибачте за перший випуск, це була моя помилка. Я дав ідентифікатор клавіатури, який становить 10. Ви можете знайти свій, ввівши xinput. Але нам це не потрібно, ви знайшли спосіб відключити простір самостійно.
— daltonfury42

Щодо другого питання, я також перевіряв лише те, що клавіатура відключається. Я спробував вставити пробіл вручну, використовуючи xdotool getactivewindow key KP_Space, але це не працює.
— daltonfury42

xdotool key spaceтакож не працює, і кожен інший метод, який я намагався вставити пробіл, не вдався.
— Faiz Saleem
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.