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


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.