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

一周前,我把杯子里的东西洒到笔记本电脑键盘上。 一半的钥匙不再有效,除了一个! 字母Q经常非常活跃。

当我工作时,这非常令人不安。

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

是否可以使用xmodmap

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

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

这是一个演示:

 $ xinput列表
 ⎡虚拟核心指针id = 2 [主指针(3)]
 ⎜⎜虚拟核心XTEST指针id = 4 [从指针(2)]
 ⎜⎜SynPS/ 2 Synaptics TouchPad id = 11 [从指针(2)]
 ⎜⎜罗技USB-PS / 2光学鼠标id = 12 [从指针(2)]
 ⎜⎜罗技Unifying设备。 无线PID:4004 id = 13 [从指针(2)]
 ⎣虚拟核心键盘id = 3 [主键盘(2)]
     ↳虚拟核心XTEST键盘id = 5 [从键盘(3)]
     ↳电源按钮id = 6 [从属键盘(3)]
     ↳VideoBus id = 7 [slave keyboard(3)]
     ↳睡眠按钮id = 8 [从属键盘(3)]
     ↳AcerCrystalEye网络摄像头id = 9 [奴隶键盘(3)]
     ↳ATTranslated Set 2键盘id = 10 [从键盘( 3 )]
 $ xinput float 10
 $ xinput列表
 ⎡虚拟核心指针id = 2 [主指针(3)]
 ⎜⎜虚拟核心XTEST指针id = 4 [从指针(2)]
 ⎜⎜SynPS/ 2 Synaptics TouchPad id = 11 [从指针(2)]
 ⎜⎜罗技USB-PS / 2光学鼠标id = 12 [从指针(2)]
 ⎜⎜罗技Unifying设备。 无线PID:4004 id = 13 [从指针(2)]
 ⎣虚拟核心键盘id = 3 [主键盘(2)]
     ↳虚拟核心XTEST键盘id = 5 [从键盘(3)]
     ↳电源按钮id = 6 [从属键盘(3)]
     ↳VideoBus id = 7 [slave keyboard(3)]
     ↳睡眠按钮id = 8 [从属键盘(3)]
     ↳AcerCrystalEye网络摄像头id = 9 [奴隶键盘(3)]
 ~AT翻译套装2键盘id = 10 [浮动奴隶]
 $ xinput reattach 10 3
 $ xinput列表
 ⎡虚拟核心指针id = 2 [主指针(3)]
 ⎜⎜虚拟核心XTEST指针id = 4 [从指针(2)]
 ⎜⎜SynPS/ 2 Synaptics TouchPad id = 11 [从指针(2)]
 ⎜⎜罗技USB-PS / 2光学鼠标id = 12 [从指针(2)]
 ⎜⎜罗技Unifying设备。 无线PID:4004 id = 13 [从指针(2)]
 ⎣虚拟核心键盘id = 3 [主键盘(2)]
     ↳虚拟核心XTEST键盘id = 5 [从键盘(3)]
     ↳电源按钮id = 6 [从属键盘(3)]
     ↳VideoBus id = 7 [slave keyboard(3)]
     ↳睡眠按钮id = 8 [从属键盘(3)]
     ↳AcerCrystalEye网络摄像头id = 9 [奴隶键盘(3)]
     ↳ATTranslated Set 2键盘id = 10 [从键盘(3)]

这是一个小开关按钮,用于启用和禁用特定键盘。 首先,您必须使用xinputxinput-list找到您的键盘ID。

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启动器)

 [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 

结果:

发射器:

在此处输入图像描述

声明:

在此处输入图像描述 在此处输入图像描述

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

  1. 在xorg.conf中为笔记本电脑键盘设置错误的型号?

  2. 通过安装Lock-keyboard-for-Baby

`Lock-keyboard-for-Baby或简称lk4b,是一个小程序,它可以锁定你的键盘但让你的鼠标自由。 我写这篇文章是因为我的侄女每当看到我坐在它上面时都喜欢抨击我的键盘。 在键盘上键入的键可能会带来灾难性的后果,我不想一直使用屏幕保护程序锁定我的屏幕。

启动时,锁定键盘换婴儿会打开一个小窗口,可以抓取键入的键盘和回声键。 默认情况下,它会告诉您要退出的内容(“立即退出”)。

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

要求:

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

一种确定的禁用方法是拔掉信号线。 你需要弹出键盘。 有关如何执行此操作的信息,请查看HP Pavilion dv9000和dv9200 Notebook PC的“ 维护和服务指南” 。

现在有一种方法可以使用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

永久禁用笔记本电脑的内部键盘在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笔记本电脑。

根据接受的答案建议从xinput list接收的设备id有时会在重新启动时(至少在我的PC上)以某种方式更改,这导致禁用错误的设备。

这就是为什么我结束使用device name而不是id ,例如:

 xinput disable "AT Translated Set 2 keyboard" 

例如,临时禁用键盘进行清理:

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

t- 在几秒钟内 睡觉

id#master# 如上所述 (最重要的是) ,例如在我的笔记本上:

$ xinput float 11; sleep 5; xinput reattach 11 3

我刚刚添加了这个,因为我喜欢一直打扫键盘。 我必须重新启动,所以我发现了这个!

尝试运行xmodmap -e 'keycode 24='以仅禁用Q键。 如果可行,您可以将它添加到~/.bashrc或全局/etc/bash.bashrc文件中。 我从这里得到了这个想法,它显示了所有的键映射。

根据之前的答案和我自己的玩法,我创建了以下脚本,我将其称为toggle_keyboard.sh并放在我的~/bin路径中。 我有一个键盘快捷键,运行它设置为Ctrl Win K.

以前的答案和我的脚本的好处的一些问题:

  • 重新启动并且更改了ID号时,依赖带有xinput的ID号会失败。 运行xinput float 13时发生了这种情况。 我最终禁用了错误的硬件。
  • 如果您重新启动,依赖文件来保持启用/禁用状态将失败。 该文件将告诉您键盘已禁用(如果您使用脚本禁用了键盘),但重启后它将再次启用。 我的解决方案从解析的xinput命令获取启用/禁用信息。
  • 我的脚本将适用于键入xinput list --name-only时显示的任何xinput设备。 只需获取名称并编辑前四个变量即可。 我将它用于笔记本电脑键盘,网络摄像头,触摸屏显示器以及其他一些我偶尔使用过的东西。

 #!/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 

我遇到了卡住的问题,有一个命令你可以放到终端,它会在启动时自动禁用它,我不是程序员,我不记得我(我只是复制并粘贴到终端,我不知道你们怎么知道这些东西,或者你们怎么能想出不同的版本lol),把它放在薄荷17上,但我也知道有一个你甚至可以放入它所以它甚至在你之前禁用它登录,虽然我从来没有这样做,因为它涉及更多

但我所做的,是进入设置,键盘(薄荷18 xfce你点击后面的开始菜单,然后去系统然后键盘)你可以禁用重复键,它只是一个你取消选中你的盒子看到它,你仍然必须使用你的usb键盘,就好像你使用另一个键盘,它会重新键入每隔一个键的违规字母,但它完美地完成了这项工作

顺便说一下,感谢大家多年来帮助我使用计算机,无论你是谁,你摇滚,赢了8,我的电脑就像有笔记本电脑触摸屏的e eoneone elses一样无法处理它,并通过你在这里的讨论我一直走,你是英雄:)