Моя клавиатура повреждена, клавиша [é] на клавиатуре всегда нажата, и это мешает мне работать. В Windows я нашел программное обеспечение SharpKey, чтобы отключить кнопку [é], но в Ubuntu я не могу найти решение. На многих форумах говорят о Xmodmap, но я не могу работать на терминале, так как кнопка [é] часто НАЖАТА. Пожалуйста, не могли бы вы дать мне решение этой проблемы. Спасибо
решение1
Что бы я попробовал:
Подключите туда USB-клавиатуру или войдите в систему с помощью ssh.
Откройте терминал и запустите
xev -event keyboard
. Он покажет что-то на экране. Если вы опустите аргументы, вы заметите, что он покажет что-то еще, если вы также подвигаете мышью.Затем нажмите комбинацию клавиш, которую вы хотите отключить [é]. Информация на экране изменится, и вам придется искать значение
keycode
.Выполните что-то вроде этого, изменив
<value>
значение на то, которое вы получилиkeycode
на последнем шаге:xmodmap -e 'keycode <value>='
Например, если я хочу отключить клавишу
~
(Shift + `), мне придется выполнить:xmodmap -e 'keycode 49='
Я пробовал это только с большим количествомстандартныйключи, какCaps Lock... но я думаю, что это должно сработать и с этим. Надеюсь, это поможет!
решение2
Простой bash-скрипт для моего личного использования был загружен по адресуhttps://github.com/anitaggu/ikbdop.
Чтобы отключить внутреннюю клавиатуру ноутбука,
./ikbdop.sh detach
Чтобы снова включить клавиатуру
./ikbdop.sh attach
Краткое руководство также размещено на сайтеYouTube
решение3
Ни один из вышеперечисленных методов не работает на Wayland. Я не уверен насчет других сред рабочего стола, но самый простой способ отключить определенную клавишу на определенной клавиатуре на sway-wm — использовать keyd. Однако для этого требуется терминал, и я бы посоветовал вам использовать USB-клавиатуру после извлечения физической клавиатуры, пока это не будет сделано.
- Клонируйте keyd с GitHub, соберите его и запустите демон.
git clone https://github.com/rvaiya/keyd
cd keyd
make && sudo make install
sudo systemctl enable keyd && sudo systemctl start keyd
- Найдите название проблемной клавиши и клавиатуры. Запустите,
sudo keyd monitor
чтобы получить что-то вроде этого:
device added: 0fac:0ade keyd virtual keyboard (/dev/input/event20)
device added: 03f0:5341 PIXART HP Wireless Keyboard and Mouse Consumer Control (/dev/input/event18)
device added: 03f0:5341 PIXART HP Wireless Keyboard and Mouse (/dev/input/event17)
device added: 03f0:5341 PIXART HP Wireless Keyboard and Mouse (/dev/input/event7)
device added: 06cb:7f13 Synaptics TM3253-001 (/dev/input/event5)
device added: 0001:0001 AT Translated Set 2 keyboard (/dev/input/event0)
keyd virtual keyboard 0fac:0ade enter up
keyd virtual keyboard 0fac:0ade kp5 down
У меня подключены две клавиатуры. Одна PIXART HP Wireless
с 03f0:5341
, а другая AT Translated Set 2 keyboard
с 0001:0001
. Эти коды — то, что keyd использует для распознавания ваших клавиатур. Так что запишите код и название клавиши для следующего шага. В последнем столбце указаны названия клавиш. Здесь я оставил enter
и нажал kp5
.
- Отредактируйте файл
/etc/keyd/default.conf
следующим образом:
[ids]
0001:0001 #code of attached keyboard from earlier
[main]
kp5 = noop #Ignore the key 'kp5'
- Окончательно,
sudo keyd reload
Чтобы отключить определенную клавишу на всех клавиатурах. Отредактируйте default.conf
указанное выше как
[ids]
*
[main]
kp5 = noop
решение4
1) Определите код клавиши на клавиатуре, которую вы хотите отключить:
Метод А:
Этот метод работает только в том случае, если вы пытаетесь отключить обычные клавиши, а не F1, F2, F3 и т. д.
Пока вы читаете этот ответ, щелкните правой кнопкой мыши в любом месте моего ответа -> щелкнитеОсмотреть элементилиОсмотреть, вставьте этот код вконсольвкладку и нажмите Enter:
window.addEventListener('keypress', (e) => console.log(e.keyCode) )
Щелкните еще раз по моему ответу левой кнопкой мыши и нажмите клавишу, которую вы хотите отключить. Вы увидите, что в строке отображается число.консольбраузера.
скопируйте этот номер и следуйте следующему шагу.
Метод Б:
этот метод должен работать с любой клавишей на вашей клавиатуре
ОткройТерминали используйте xev
утилиту следующим образом:
$ xev -event keyboard
откроется небольшое окно, нажмите клавишу на клавиатуре, которую вы хотите отключить, и закройте небольшое окно, вы увидите вывод на своем терминале, среди этих выводов вы увидите что-то вроде keycode 93
. скопируйте код клавиши для этой клавиши клавиатуры и следуйте следующему шагу.
2) Отключить клавишу:
ОткройТерминали используйте xmodmap
утилиту следующим образом:
xmodmap -e 'keycode <value>='
- вместо вышесказанного
<value>
замените его наключевой кодвы получили из шага 1 метод A или B.