Есть ли способ отключить внутреннюю клавиатуру ноутбука?

Неделю назад я пролил содержимое своей чашки на клавиатуру ноутбука. Половина клавиш больше не работает, кроме одной! Буква Q, которая очень активна регулярно.

Это очень беспокоит, когда я работаю.

Есть ли способ отключить внутреннюю клавиатуру ноутбука?

Возможно ли это с помощью xmodmap?

85
задан 25 February 2014 в 02:37

11 ответов

Вы можете использовать xinput для перемещения устройства ввода под X.

  1. Выполните команду xinput list для вывода списка ваших устройств ввода.
  2. Найдите AT Translated Set 2 keyboard и запомните его id номер; это будет использоваться для отключения клавиатуры. Также обратите внимание на число в конце, [slave keyboard (#)]; это идентификационный номер master, который будет использоваться для повторного включения вашей клавиатуры.
  3. Чтобы отключить клавиатуру, выполните команду xinput float <id#>, где <id#> - идентификатор вашей клавиатуры. Например, если id было 10, то команда будет xinput float 10.
  4. Чтобы снова включить клавиатуру, выполните команду 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)]
0
ответ дан 25 February 2014 в 02:37

Устройство id, полученное от xinput list, как предложено в принятом ответе , иногда каким-то образом изменяется при перезагрузке (по крайней мере, на моем ПК), что приводит к отключению неправильного устройства.

Вот почему я прекратил использовать device name вместо id, например :

xinput disable "AT Translated Set 2 keyboard"
0
ответ дан 25 February 2014 в 02:37

Для постоянного отключения внутренней клавиатуры ноутбука. В 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 вашего ноутбука.

0
ответ дан 25 February 2014 в 02:37

Одним из надежных способов его отключения является отключение сигнального кабеля. Вам нужно вспомнить клавиатуру для этого. Информацию о том, как это сделать, можно найти в Руководстве по обслуживанию и обслуживанию ноутбуков HP Pavilion dv9000 и dv9200 .

Теперь есть способ отключить клавиатуру с помощью xinput. Для этого просто нажмите Ctrl + Alt + T на клавиатуре, чтобы открыть терминал. Когда он откроется, выполните команды ниже.

Список устройств вашего X

xinput --list

Чтобы отключить клавиатуру:

xinput set-int-prop 2 "Device Enabled" 8 0

Чтобы снова включить клавиатуру:

xinput set-int-prop 2 "Device Enabled" 8 1

Если вы получаете ошибка о разрешениях, используйте команды выше с sudo.

0
ответ дан 25 February 2014 в 02:37

Я подумал о двух способах сделать это:

  1. Установив неверную модель клавиатуры вашего ноутбука в xorg.conf?

  2. [ 116] Установив Lock-клавиатура для ребенка

`Короче говоря, Lock-клавиатура для ребенка или lk4b, это небольшая программа, которая блокирует вашу клавиатуру но оставляет вашу мышь свободной. Я написал это, потому что моя племянница любит прятаться за клавиатуру всякий раз, когда видит, как я сижу за ней. Клавиши, набранные на клавиатуре, могут иметь катастрофические последствия, и я не хотел постоянно блокировать экран с помощью экранной заставки.

При запуске блокировки клавиатура для ребенка открывает небольшое окно, в котором находятся клавиатура и набранные клавиши. По умолчанию он говорит вам, что печатать, чтобы выйти («Выйти сейчас»).

В отличие от экранной заставки, ваш экран не заблокирован, а мышь все еще частично работает, поэтому вы все равно можете видеть, что находится на вашем экране - продолжайте смотреть ТВ / видео и / или читать документ, используя мышь для прокрутки. `

Требования:

· GTK> = 2.x · perl GTK2 привязки (perl-gtk2 или gtk2-perl в зависимости от вашей системы)

0
ответ дан 25 February 2014 в 02:37

Вот немного кнопки переключателя, чтобы включить и отключить определенную клавиатуру. Во-первых, необходимо найти идентификатор клавиатуры с xinput или xinput-list.

Сценарий Bash для позволения/запрещения клавиатуры

#!/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 как путь значка для отображения при отключении
  • Я использовал следующие значки: enter image description here enter image description here

  • 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

РЕЗУЛЬТАТ:

Средство запуска:

enter image description here

Уведомления:

enter image description here enter image description here

18
ответ дан 25 February 2014 в 02:37

Если мне нужно почистить клавиатуру, мне всегда приходится перезагружаться, и поэтому я обнаружил это
(для временного отключения клавиатуры):

$ xinput float id#;sleep t;xinput reattach id# master#

[ 113] t-время сна в секундах

id # и master # как упомянуто выше (начало страницы)

, например, в своей записной книжке я набрал:

$ xinput float 11;sleep 5;xinput reattach 11 3
0
ответ дан 25 February 2014 в 02:37

Попробуйте запустить xmodmap -e 'keycode 24=', чтобы отключить только клавишу Q. Если это сработает, вы можете добавить его в свой ~/.bashrc или глобальный /etc/bash.bashrc файл. Я получил эту идею из здесь , где показаны все сопоставления клавиш.

0
ответ дан 25 February 2014 в 02:37

xinput пускают в ход "В Переведенном Наборе 2 клавиатуры"

После пребывания в течение часов за годы с различными методами с различными дистрибутивами и выпусками. Вышеупомянутая терминальная команда - то, на что я полагаюсь после проблем..... Я использую это теперь с неоновой плазмой, и использовал его месяц назад в прямой человечности 18.04. (потребности, применяющиеся после перезапуска - могут быть помещены в запуск), * Мой созданный в клавиатуре на моем HP Laptop, который поврежден и начинает вводить, какие серьезные проблемы причин - я использую беспроводную клавиатуру и мышь - сенсорная панель включения - выключения как часть KDE topbar опции - неон/плазма 5). В параметрах настройки системы / автоматически запускают текстовый файл со следующей строкой кода, сохраняется как .sh файл и устанавливается как исполняемый файл (txt свойства файлов)
плавание xinput "В Переведенном Наборе 2 клавиатуры"

, текстовому файлу дают имя> keyboardoff> и поместил в автоматическом запуске (исполняемый файл), Когда Вы перезапускаете/начинаете систему> созданный в клавиатуре, выключен. (используйте список xinput для тестирования)

0
ответ дан 25 February 2014 в 02:37

Для чего бы это ни стоило, основываясь на предыдущих ответах и ​​моей собственной игре, я создал следующий сценарий, который я называю toggle_keyboard.sh и помещаю в мой путь ~/bin. У меня есть комбинация клавиш, которая запускает ее, установив значение Ctrl Win K .

Некоторые проблемы с предыдущими ответами и преимуществами моего сценария:

  • Полагаться на идентификатор с помощью xinput невозможно при перезагрузке и изменении номера идентификатора. Это случилось со мной во время бега xinput float 13. Я отключил не то оборудование.
  • Если вы перезагрузите компьютер, использование файла с включенным / отключенным состоянием не удастся. Файл сообщит вам, что клавиатура отключена (если вы отключили ее с помощью скрипта), но после перезагрузки она снова будет включена. Мое решение получает информацию о включении / отключении из проанализированной команды xinput.
  • Мой скрипт будет работать с любым устройством xinput, которое появляется при вводе 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
0
ответ дан 25 February 2014 в 02:37

Если вам нужен более динамичный способ отключения клавиатуры, я создал небольшой индикатор приложения, который позволяет включать и/или отключать ваши устройства. Как и с xinput, но без открытия терминала, ручного вывода списка, ввода команды и т. д.

A menu listing devices that can be disabled or enabled.

Он находится в репозитории-репозитории, так что вы можете установить его с помощью

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 (или как там он сейчас называется .)

Это довольно грубо, и многое можно было бы улучшить, но это очень полезно, когда это необходимо. Не совсем то, что хочет ОП (в этом случае клавиатуру включать не нужно), но я регистрирую ее здесь для всех, кто может найти ее полезной.

2
ответ дан 22 June 2020 в 20:41

Другие вопросы по тегам:

Похожие вопросы: