一周前,我将杯子里的东西洒到了笔记本电脑键盘上。一半的钥匙不再起作用,只有一把!字母Q经常很活跃。
当我工作时,这非常令人不安。
有没有办法禁用笔记本电脑的内部键盘?
有可能xmodmap
吗?
HP pavilion dv9000
一周前,我将杯子里的东西洒到了笔记本电脑键盘上。一半的钥匙不再起作用,只有一把!字母Q经常很活跃。
当我工作时,这非常令人不安。
有没有办法禁用笔记本电脑的内部键盘?
有可能xmodmap
吗?
HP pavilion dv9000
Answers:
您可以使用xinput
浮动输入设备到X下。
xinput list
以列出您的输入设备。AT Translated Set 2 keyboard
并记下其id
编号;这将用于禁用键盘。另外,请注意末尾的数字[slave keyboard (#)]
;这是的ID号,master
用于重新启用键盘。xinput float <id#>
,其中<id#>
是您的键盘ID号。例如,如果id
was为10
,则命令为xinput float 10
。xinput reattach <id#> <master#>
,这master
是我们记下的第二个数字。所以如果有这个数字3
,你会的xinput reattach 10 3
。这是一个示范:
$ x输入列表 ⎡虚拟核心指针id = 2 [主指针(3)] 虚拟核心XTEST指针id = 4 [从指针(2)] SynPS / 2 Synaptics触摸板id = 11 [从指针(2)] Logitech USB-PS / 2光电鼠标id = 12 [从机指针(2)] 罗技统一设备。无线PID:4004 id = 13 [从站指针(2)] ⎣虚拟核心键盘id = 3 [主键盘(2)] ↳虚拟核心XTEST键盘id = 5 [从键盘(3)] ↳电源按钮id = 6 [从属键盘(3)] ↳Video Bus id = 7 [从属键盘(3)] ↳睡眠按钮id = 8 [从属键盘(3)] ↳Acer CrystalEye网络摄像头id = 9 [从属键盘(3)] ↳AT翻译集2键盘id = 10 [从键盘(3)] $ xinput float 10 $ xinput list ⎡虚拟核心指针id = 2 [主指针(3)] 虚拟核心XTEST指针id = 4 [从指针(2)] SynPS / 2 Synaptics触摸板id = 11 [从指针(2)] Logitech USB-PS / 2光电鼠标id = 12 [从机指针(2)] 罗技统一设备。无线PID:4004 id = 13 [从站指针(2)] ⎣虚拟核心键盘id = 3 [主键盘(2)] ↳虚拟核心XTEST键盘id = 5 [从键盘(3)] ↳电源按钮id = 6 [从属键盘(3)] ↳Video Bus id = 7 [从属键盘(3)] ↳睡眠按钮id = 8 [从属键盘(3)] ↳Acer CrystalEye网络摄像头id = 9 [从属键盘(3)] 〜AT Translated Set 2键盘id = 10 [floating slave] $ xinput重新连接10 3 $ xinput列表 ⎡虚拟核心指针id = 2 [主指针(3)] 虚拟核心XTEST指针id = 4 [从指针(2)] SynPS / 2 Synaptics触摸板id = 11 [从指针(2)] Logitech USB-PS / 2光电鼠标id = 12 [从机指针(2)] 罗技统一设备。无线PID:4004 id = 13 [从站指针(2)] ⎣虚拟核心键盘id = 3 [主键盘(2)] ↳虚拟核心XTEST键盘id = 5 [从键盘(3)] ↳电源按钮id = 6 [从属键盘(3)] ↳Video Bus id = 7 [从属键盘(3)] ↳睡眠按钮id = 8 [从属键盘(3)] ↳Acer CrystalEye网络摄像头id = 9 [从属键盘(3)] ↳AT翻译集2键盘id = 10 [从键盘(3)]
xinput float 14
该查询是可逆的?此后如何启用键盘?
reattach
参数重新附加它。xinput reattach 14 3
这是一个小的开关按钮,用于启用和禁用特定的键盘。首先,您必须使用xinput
或查找键盘ID 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
作为键盘ID(通过找到xinput
)
fconfig
配置文件的路径。更改是否要在另一个目录中创建配置文件如果您在不使用键盘的情况下无法再次运行该脚本,请不要尝试运行该脚本(除非您当然拥有另一个键盘)。创建以下启动器(在中home/user/.local/share/applications
)并将其添加到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
结果:
启动器:
通知:
function is-disabled() { xinput --list --long | grep -A 1 "id=$1" | grep -q disabled }
。这样,即使键盘被另一个程序启用/禁用,一切也可以正常工作。
fconfig=".keyboard" if [ ! -f $fconfig ];
这是.keyboard
什么 而无论是fconfig
和$fconfig
是一样的吗?还有什么! -f $fconfig
意思呢?我是bash脚本的新手。谢谢:)
我想到了两种方法可以做到这一点:
通过在xorg.conf中为笔记本电脑键盘设置错误的模型?
通过安装婴儿用锁键盘
`Baby Lock-keyboard-for-Baby或lk4b是一个小程序,它可以锁定键盘,但使鼠标空闲。我之所以写这封信,是因为外女喜欢看到我坐下来时就对着键盘ash着。键盘上的按键可能会造成灾难性的后果,我不想一直用屏幕保护程序锁定屏幕。
启动时,婴儿锁键盘会打开一个小窗口,该窗口可抓住键盘并回显键入的键。默认情况下,它告诉您要退出的内容(“立即退出”)。
与屏幕保护程序不同,屏幕不会被阻塞,鼠标仍然可以部分起作用,因此您仍然可以看到屏幕上的内容-继续观看电视/视频和/或使用鼠标滚动来阅读文档。
要求:
·GTK> = 2.x·perl GTK2绑定(perl-gtk2或gtk2-perl,取决于您的系统)
禁用它的一种可靠方法是拔下信号电缆。您需要为此弹出键盘。有关如何执行此操作的信息,请参阅《 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
。
要在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
您的笔记本电脑。
基于之前的答案和我自己的玩法,我创建了以下脚本,作为其价值,我将该脚本toggle_keyboard.sh
放在~/bin
路径中。我有一个将其运行为的键盘快捷键CtrlWinK。
先前答案的一些问题和我的脚本的好处:
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 float“ AT Translated Set 2键盘”
经过数年的时间使用不同发行和发行的不同方法。上面的终端命令是我在遇到问题后所依赖的.....我现在将其与霓虹灯等离子一起使用,并且一个月前在纯Ubuntu 18.04中使用了它。(重新启动后需要应用-可以放置在启动中)*我的HP笔记本电脑上的内置键盘损坏并开始打字,这会导致严重问题-我使用了无线键盘和鼠标-KDE topbar的触摸板处于打开/关闭状态选项-霓虹灯/等离子5)。在系统设置/自动启动中,带有以下代码行的文本文件另存为.sh文件,并设置为可执行文件(txt文件属性)
xinput float“ AT Translated Set 2 keyboard”
文本文件被命名为> keyboardoff>并置于自动启动(可执行)中。当您重新启动/启动系统时,内置键盘已关闭。(使用xinput列表进行测试)