有没有办法禁用笔记本电脑的内置键盘?

有没有办法禁用笔记本电脑的内置键盘?

一周前,我把杯子里的饮料洒在了笔记本电脑键盘上。一半的键都不能用了,只有一个键除外!字母 Q 经常被激活。

这对我的工作来说非常令人不安。

有没有办法禁用笔记本电脑的内置键盘?

有可能吗xmodmap

答案1

您可以使用xinput将输入设备浮动在 X 之下。

  1. 执行命令xinput list列出您的输入设备。
  2. 找到AT Translated Set 2 keyboard并记下它的id编号;这将用于禁用键盘。另外,记下末尾的数字[slave keyboard (#)];这是的 ID 号master,将用于重新启用键盘。
  3. 要禁用键盘,请执行命令xinput float <id#>,其中<id#>是键盘的 ID 号。例如,如果 是id10则命令为xinput float 10
  4. 要重新启用键盘,请执行命令xinput reattach <id#> <master#>master其中我们记下的第二个数字在哪里。因此,如果数字是3,则您需要执行xinput reattach 10 3

以下是一个演示:

$ xinput 列表
⎡ 虚拟核心指针id=2[主指针(3)]
⎜ ↳ 虚拟核心 XTEST 指针 id=4 [从属指针 (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=11 [从属指针 (2)]
⎜ ↳ Logitech USB-PS/2 光电鼠标 id=12 [从属指针 (2)]
⎜ ↳ Logitech Unifying 设备。无线 PID:4004 id=13 [从属指针 (2)]
⎣ 虚拟核心键盘id=3[主键盘(2)]
    ↳ 虚拟核心 XTEST 键盘 id=5 [从属键盘 (3)]
    ↳ 电源按钮 id=6 [从属键盘 (3)]
    ↳ 视频总线 id=7 [从属键盘 (3)]
    ↳ 睡眠按钮 id=8 [从属键盘 (3)]
    ↳ Acer CrystalEye 网络摄像头 id=9 [从属键盘 (3)]
    ↳ AT 翻译设置 2 键盘 id=10   [从属键盘 (3)]
$ xinput 浮点数 10
$ xinput 列表
⎡ 虚拟核心指针id=2[主指针(3)]
⎜ ↳ 虚拟核心 XTEST 指针 id=4 [从属指针 (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=11 [从属指针 (2)]
⎜ ↳ Logitech USB-PS/2 光电鼠标 id=12 [从属指针 (2)]
⎜ ↳ Logitech Unifying 设备。无线 PID:4004 id=13 [从属指针 (2)]
⎣ 虚拟核心键盘id=3[主键盘(2)]
    ↳ 虚拟核心 XTEST 键盘 id=5 [从属键盘 (3)]
    ↳ 电源按钮 id=6 [从属键盘 (3)]
    ↳ 视频总线 id=7 [从属键盘 (3)]
    ↳ 睡眠按钮 id=8 [从属键盘 (3)]
    ↳ Acer CrystalEye 网络摄像头 id=9 [从属键盘 (3)]
∼ AT 翻译设置 2 键盘 id=10 [浮动从属]
$ xinput 重新连接 10 3
$ xinput 列表
⎡ 虚拟核心指针id=2[主指针(3)]
⎜ ↳ 虚拟核心 XTEST 指针 id=4 [从属指针 (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=11 [从属指针 (2)]
⎜ ↳ Logitech USB-PS/2 光电鼠标 id=12 [从属指针 (2)]
⎜ ↳ Logitech Unifying 设备。无线 PID:4004 id=13 [从属指针 (2)]
⎣ 虚拟核心键盘id=3[主键盘(2)]
    ↳ 虚拟核心 XTEST 键盘 id=5 [从属键盘 (3)]
    ↳ 电源按钮 id=6 [从属键盘 (3)]
    ↳ 视频总线 id=7 [从属键盘 (3)]
    ↳ 睡眠按钮 id=8 [从属键盘 (3)]
    ↳ Acer CrystalEye 网络摄像头 id=9 [从属键盘 (3)]
    ↳ AT 翻译设置 2 键盘 id=10 [从属键盘 (3)]

答案2

这是一个用于启用和禁用特定键盘的小开关按钮。

首先,您必须使用xinput或找到您的键盘 ID 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作为禁用时显示的图标的路径

  • 我使用了以下图标:

    截屏 截屏

  • id作为键盘 ID(使用 找到它xinput

  • fconfig配置文件路径。如果要在另一个目录中创建配置文件,请更改

如果不使用键盘就无法再次运行该脚本,请不要尝试运行该脚本(当然,除非您有另一个键盘)。创建以下启动器(在home/user/.local/share/applications)并将其添加到 unity 中:

桌面入口(Unity启动器,Ubuntu 17.10及以下版本)

[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

结果

启动器:

[截图3

通知:

[ 截图4 [截图5

答案3

设备id已从中收到xinput list建议接受的答案有时会在重启时发生某种变化(至少在我的 PC 上),导致禁用错误的设备。

这就是为什么我最终使用device name而不是的原因id,例如:

xinput disable "AT Translated Set 2 keyboard"

答案4

我想到了两种方法可以做到这一点:

  1. 通过在 xorg.conf 中为您的笔记本电脑键盘设置了错误的模型?

  2. 通过安装婴儿锁键盘

`Lock-keyboard-for-Baby 或简称 lk4b,是一个可以锁定键盘但鼠标可以自由使用的小程序。我编写这个程序是因为我的侄女每次看到我坐在键盘前,就喜欢猛击我的键盘。在键盘上输入的键可能会造成灾难性的后果,我不想一直用屏幕保护程序锁定屏幕。

启动后,lock-keyboard-for-baby 会打开一个小窗口,该窗口会抓取键盘并回显键入的键。默认情况下,它会告诉您要键入什么才能退出(“立即退出”)。

与屏幕保护程序不同,您的屏幕不会被阻挡并且鼠标仍可部分工作,因此您仍然可以看到屏幕上的内容 - 继续观看电视/视频和/或使用鼠标滚动阅读文档。`

要求:

· GTK >= 2.x · perl GTK2 绑定(perl-gtk2 或 gtk2-perl 取决于您的系统)

相关内容