Неделю назад я пролил содержимое своей чашки на клавиатуру ноутбука. Половина клавиш больше не работает, кроме одной! Буква Q, которая очень активна регулярно.
Это очень беспокоит, когда я работаю.
Есть ли способ отключить внутреннюю клавиатуру ноутбука?
Возможно ли это с помощью xmodmap
?
Вы можете использовать xinput
для перемещения устройства ввода под X.
xinput list
для вывода списка ваших устройств ввода. AT Translated Set 2 keyboard
и запомните его id
номер; это будет использоваться для отключения клавиатуры. Также обратите внимание на число в конце, [slave keyboard (#)]
; это идентификационный номер master
, который будет использоваться для повторного включения вашей клавиатуры. xinput float <id#>
, где <id#>
- идентификатор вашей клавиатуры. Например, если id
было 10
, то команда будет xinput float 10
. xinput reattach <id#> <master#>
, где master
- это второе число, которое мы записали. Поэтому, если бы число было 3
, вы бы сделали xinput reattach 10 3
. Вот демонстрация:
$ xinput list ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ SynPS/2 Synaptics TouchPad id=11 [slave pointer (2)] ⎜ ↳ Logitech USB-PS/2 Optical Mouse id=12 [slave pointer (2)] ⎜ ↳ Logitech Unifying Device. Wireless PID:4004 id=13 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ Power Button id=6 [slave keyboard (3)] ↳ Video Bus id=7 [slave keyboard (3)] ↳ Sleep Button id=8 [slave keyboard (3)] ↳ Acer CrystalEye webcam id=9 [slave keyboard (3)] ↳ AT Translated Set 2 keyboard id=10 [slave keyboard (3)] $ xinput float 10 $ xinput list ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ SynPS/2 Synaptics TouchPad id=11 [slave pointer (2)] ⎜ ↳ Logitech USB-PS/2 Optical Mouse id=12 [slave pointer (2)] ⎜ ↳ Logitech Unifying Device. Wireless PID:4004 id=13 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ Power Button id=6 [slave keyboard (3)] ↳ Video Bus id=7 [slave keyboard (3)] ↳ Sleep Button id=8 [slave keyboard (3)] ↳ Acer CrystalEye webcam id=9 [slave keyboard (3)] ∼ AT Translated Set 2 keyboard id=10 [floating slave] $ xinput reattach 10 3 $ xinput list ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ SynPS/2 Synaptics TouchPad id=11 [slave pointer (2)] ⎜ ↳ Logitech USB-PS/2 Optical Mouse id=12 [slave pointer (2)] ⎜ ↳ Logitech Unifying Device. Wireless PID:4004 id=13 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ Power Button id=6 [slave keyboard (3)] ↳ Video Bus id=7 [slave keyboard (3)] ↳ Sleep Button id=8 [slave keyboard (3)] ↳ Acer CrystalEye webcam id=9 [slave keyboard (3)] ↳ AT Translated Set 2 keyboard id=10 [slave keyboard (3)]
Устройство id
, полученное от xinput list
, как предложено в принятом ответе , иногда каким-то образом изменяется при перезагрузке (по крайней мере, на моем ПК), что приводит к отключению неправильного устройства.
Вот почему я прекратил использовать device name
вместо id
, например :
xinput disable "AT Translated Set 2 keyboard"
Для постоянного отключения внутренней клавиатуры ноутбука. В Ubuntu нужно передать это i8042.nokbd
параметры ядра, чтобы не проверять / не создавать порт клавиатуры
i8042.nokbd [HW] Don't check/create keyboard port
Открыть терминал и выполнить следующую команду
$sudo gedit /etc/default/grub
Попробуйте найти следующую строку
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
Добавьте параметр i8042.nokbd
, приведенная выше строка должна выглядеть следующим образом
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i8042.nokbd"
Обновить grub как Следующая команда
$sudo update-grub
Затем reboot
вашего ноутбука.
Одним из надежных способов его отключения является отключение сигнального кабеля. Вам нужно вспомнить клавиатуру для этого. Информацию о том, как это сделать, можно найти в Руководстве по обслуживанию и обслуживанию ноутбуков HP Pavilion dv9000 и dv9200 .
Теперь есть способ отключить клавиатуру с помощью xinput
. Для этого просто нажмите Ctrl kbd> + Alt kbd> + T kbd> на клавиатуре, чтобы открыть терминал. Когда он откроется, выполните команды ниже.
Список устройств вашего X
xinput --list
Чтобы отключить клавиатуру:
xinput set-int-prop 2 "Device Enabled" 8 0
Чтобы снова включить клавиатуру:
xinput set-int-prop 2 "Device Enabled" 8 1
Если вы получаете ошибка о разрешениях, используйте команды выше с sudo
.
Я подумал о двух способах сделать это:
Установив неверную модель клавиатуры вашего ноутбука в xorg.conf?
`Короче говоря, Lock-клавиатура для ребенка или lk4b, это небольшая программа, которая блокирует вашу клавиатуру но оставляет вашу мышь свободной. Я написал это, потому что моя племянница любит прятаться за клавиатуру всякий раз, когда видит, как я сижу за ней. Клавиши, набранные на клавиатуре, могут иметь катастрофические последствия, и я не хотел постоянно блокировать экран с помощью экранной заставки.
При запуске блокировки клавиатура для ребенка открывает небольшое окно, в котором находятся клавиатура и набранные клавиши. По умолчанию он говорит вам, что печатать, чтобы выйти («Выйти сейчас»).
В отличие от экранной заставки, ваш экран не заблокирован, а мышь все еще частично работает, поэтому вы все равно можете видеть, что находится на вашем экране - продолжайте смотреть ТВ / видео и / или читать документ, используя мышь для прокрутки. `
Требования:
· GTK> = 2.x · perl GTK2 привязки (perl-gtk2 или gtk2-perl в зависимости от вашей системы)
Вот немного кнопки переключателя, чтобы включить и отключить определенную клавиатуру. Во-первых, необходимо найти идентификатор клавиатуры с xinput
или xinput-list
.
#!/bin/bash
Icon="/PATH/TO/ICON_ON"
Icoff="/PATH_TO_ICON_OFF"
fconfig=".keyboard"
id=12
if [ ! -f $fconfig ];
then
echo "Creating config file"
echo "enabled" > $fconfig
var="enabled"
else
read -r var< $fconfig
echo "keyboard is : $var"
fi
if [ $var = "disabled" ];
then
notify-send -i $Icon "Enabling keyboard..." \ "ON - Keyboard connected !";
echo "enable keyboard..."
xinput enable $id
echo "enabled" > $fconfig
elif [ $var = "enabled" ]; then
notify-send -i $Icoff "Disabling Keyboard" \ "OFF - Keyboard disconnected";
echo "disable keyboard"
xinput disable $id
echo 'disabled' > $fconfig
fi
Icon
как путь значка для отображения при включении (например, /home/user/path/icon.png
)Icoff
как путь значка для отображения при отключенииid
как идентификатор клавиатуры (нашел его с xinput
)
fconfig
соедините каналом к файлу конфигурации. Изменение, если Вы хотите создать конфигурационный файл в другом каталогеНе пытайтесь запустить скрипт, если Вы не можете выполнить его снова без использования Вашей клавиатуры (если Вы не получили другую клавиатуру, конечно). Создайте следующее средство запуска (в home/user/.local/share/applications
) и добавьте его к единице:
[Desktop Entry]
Version=1.0
Type=Application
Name=Clavier ON-OFF
Icon=PATH/TO/YOUR/ICON
Exec=bash NAME_OF_YOUR_SCRIPT.sh
Path=PATH/TO/YOUR/SCRIPT
NoDisplay=false
Categories=Utility;
StartupNotify=false
Terminal=false
РЕЗУЛЬТАТ:
Средство запуска:
Уведомления:
Если мне нужно почистить клавиатуру, мне всегда приходится перезагружаться, и поэтому я обнаружил это
(для временного отключения клавиатуры):
$ xinput float id#;sleep t;xinput reattach id# master#
[ 113] t-время сна в секундах
id # и master # как упомянуто выше (начало страницы)
blockquote>, например, в своей записной книжке я набрал:
$ xinput float 11;sleep 5;xinput reattach 11 3
Попробуйте запустить xmodmap -e 'keycode 24='
, чтобы отключить только клавишу Q. Если это сработает, вы можете добавить его в свой ~/.bashrc
или глобальный /etc/bash.bashrc
файл. Я получил эту идею из здесь , где показаны все сопоставления клавиш.
xinput пускают в ход "В Переведенном Наборе 2 клавиатуры"
После пребывания в течение часов за годы с различными методами с различными дистрибутивами и выпусками. Вышеупомянутая терминальная команда - то, на что я полагаюсь после проблем..... Я использую это теперь с неоновой плазмой, и использовал его месяц назад в прямой человечности 18.04. (потребности, применяющиеся после перезапуска - могут быть помещены в запуск), * Мой созданный в клавиатуре на моем HP Laptop, который поврежден и начинает вводить, какие серьезные проблемы причин - я использую беспроводную клавиатуру и мышь - сенсорная панель включения - выключения как часть KDE topbar опции - неон/плазма 5). В параметрах настройки системы / автоматически запускают текстовый файл со следующей строкой кода, сохраняется как .sh файл и устанавливается как исполняемый файл (txt свойства файлов)
плавание xinput "В Переведенном Наборе 2 клавиатуры"
, текстовому файлу дают имя> keyboardoff> и поместил в автоматическом запуске (исполняемый файл), Когда Вы перезапускаете/начинаете систему> созданный в клавиатуре, выключен. (используйте список xinput для тестирования)
Для чего бы это ни стоило, основываясь на предыдущих ответах и моей собственной игре, я создал следующий сценарий, который я называю toggle_keyboard.sh
и помещаю в мой путь ~/bin
. У меня есть комбинация клавиш, которая запускает ее, установив значение Ctrl kbd> Win kbd> K kbd>.
Некоторые проблемы с предыдущими ответами и преимуществами моего сценария:
xinput float 13
. Я отключил не то оборудование. xinput list --name-only
. Просто получите имя и отредактируйте четыре верхние переменные. Я использую его для клавиатуры ноутбука, веб-камеры, монитора с сенсорным экраном и некоторых других вещей, которые я использую только время от времени. #!/bin/bash
# Toggle the laptop keyboard either on or off and notify the user about it
# Device name can be found by typing this command: xinput list --name-only
DEVICE_NAME="AT Translated Set 2 keyboard"
# The display name of the device in the notify-send popup
DEVICE_DISPLAY_NAME="Laptop Keyboard"
# Set these to the icons you want to use.
# If they are not found, the notification will still work.
ICON_ENABLE="$HOME/.icons/keyboard.png"
ICON_DISABLE="$HOME/.icons/keyboard_disabled.png"
function xinput_set_prop() {
xinput set-prop "$DEVICE_NAME" "Device Enabled" $1
}
function notify_change() {
if [ -f "$1" ]; then
notify-send --urgency=low --icon="$1" "$2"
else
notify-send --urgency=low "$2"
fi
}
# Returns 1 if device is enabled, 0 if disabled
is_enabled=$(xinput list-props "$DEVICE_NAME" | grep "Device Enabled" | awk '{ print $4 }' | sed 's/[^0-9]*//g')
if [ $is_enabled -eq 1 ]; then
# device is enabled, so disable it
xinput_set_prop 0
notify_change "$ICON_DISABLE" "$DEVICE_DISPLAY_NAME Disabled"
else
# device is disabled, so enable it
xinput_set_prop 1
notify_change "$ICON_ENABLE" "$DEVICE_DISPLAY_NAME Enabled"
fi
Если вам нужен более динамичный способ отключения клавиатуры, я создал небольшой индикатор приложения, который позволяет включать и/или отключать ваши устройства. Как и с xinput
, но без открытия терминала, ручного вывода списка, ввода команды и т. д.
Он находится в репозитории-репозитории, так что вы можете установить его с помощью
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 03BBACDA765F39D9A14EEDE4425F3F9343B40373
sudo add-apt-repository ppa:brandizzi/ppa
sudo apt install input-device-indicator
Чтобы вызвать его, вам просто нужно выполнить input-device-indicator
(который можно добавить в программы запуска сеанса) или найти «Индикатор устройства ввода» через HUD (или как там он сейчас называется .)
Это довольно грубо, и многое можно было бы улучшить, но это очень полезно, когда это необходимо. Не совсем то, что хочет ОП (в этом случае клавиатуру включать не нужно), но я регистрирую ее здесь для всех, кто может найти ее полезной.