xinput 来禁用/启用输入设备。我经常用 synclient 来关掉我的触摸板, 或者用 xinput 来关闭我的笔记本键盘。
第一步我们需要先拿到设备的名字或者ID:
$ xinput list
⎡ Virtual core pointer id=2[master pointer (3)]
⎜ ↳ Virtual core XTEST pointerid=4[slave pointer (2)]
⎜ ↳ USB Optical Mouse id=8[slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPadid=7[slave pointer (2)]
⎣ Virtual core keyboard id=3[master keyboard (2)]
↳ Virtual core XTEST keyboard id=5[slave keyboard (3)]
↳ Sleep Button id=9[slave keyboard (3)]
↳ Power Button id=10 [slave keyboard (3)]
↳ Video Bus id=11 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=6[slave keyboard (3)]
在这里触摸板的名字是 'SynPS/2 Synaptics TouchPad' ID是 7
键盘的名字是 'AT Translated Set 2 keyboard' ID是 6.
下一步我们要知道设备都有什么属性:
$ xinput list-props 'AT Translated Set 2 keyboard'
Device 'AT Translated Set 2 keyboard':
Device Enabled (127): 1
键盘只有一个属性 'Device Enabled' 他的值是 1,意思就是说键盘是打开状态的。
我们来尝试关掉它:
sleep 0.1 xinput set-prop 'AT Translated Set 2 keyboard' 'Device Enabled' 0 sleep 5 xinput set-prop 'AT Translated Set 2 keyboard' 'Device Enabled' 1
开头 sleep 0.1 的目的是要留出时间让你执行当前命令时所敲的回车的按键(keypress)事件能够完成, 我猜测当你按下回车时命令就会执行并把键盘禁用,但是按键d起(keyup)还没有被发送,所以X会以为你一直按这回车键。
另一个更简单的用法是用ID来进行 *** 作,这样你就不需要输入一大长串的名字了:
sleep 0.1 xinput set-prop 8 127 0 sleep 5 xinput set-prop 8 127 1
键盘的ID是8, 属性 'Device Enabled' 的ID是127。 当你用 list-props 列出设备属性时, 在属性名后面的数字就是属性的ID。 像 'Device Enabled' 的ID总是 127,但是设备的ID就不一样,它跟设备的连接时间有关,一般越先连接的设备ID越小,之后会越来越大。
PS:设置设备属性不需要root权限。
我用一台旧笔记本PC,安装了Linux,发现笔记本自带的键盘有的不灵,接了外接键盘之后发现,有几个键开始自动触发,所以需要想个办法屏蔽笔记本自带的键盘。
参考: http://forum.ubuntu.org.cn/viewtopic.php?f=126&t=366246
我自己的Linux版本是CentOS 7.0, /boot/grub/grub.conf 是不存在的,xinput也没有安装
grub是Linux系统启动的引导工具(boot loader),系统加载什么硬件由其决定,而新版的 CentOS 7.x 已经将沿用多年的 grub 换成了 grub2,所以设置grub的conf是没有用的,设置grub2的即可。当然也可以安装xinput工具,一切简化。
网上的帖子千篇一律的copy-paste,还是要懂原理才能解决问题啊
linux系统中鼠标键盘失灵linux系统中鼠标键盘失灵,电脑键盘失灵的原因以及解决技巧
臧竹萌
转载
关注
0点赞·5041人阅读
电脑键盘失灵的原因以及解决技巧
发布时间:2012-12-20 11:20:38 作者:佚名
我要评论
电脑使用中键盘突然失灵了.是一件很悲催的事.所以平时要注意保养啊
电脑键盘失灵了怎么办呢?那就让小编来帮你解决疑问。
1、如果按键所有都矢量的话,首先对键盘上的每个键进行盘查,有可能是一个键盘被按下去的缘故导致按其他键都没反应的情况。如果键盘损坏了,可能是键盘老化或者是键盘内部的线路板有污垢都会造成键盘接触不良而失灵的情况,这种情况建议更换一个新的键盘。反正现在键盘也不是很贵的。
2、查看是否是键盘接口方面松动了,接触不良的情况,如果用户懂的用万用表的话,可以使用万用表来检测电脑键盘是否损坏了。
3、键盘正常的话,那说明是电脑系统问题,我们常说进入到安装模式修复下系统。首先开机按住F8不动在松手,选择“最近一次的正确配置”按回车键修复。
然后在退出安全模式,然后重启电脑自动修复了。当然如果键盘还是失灵的话我们可以将系统还原到没有出现键盘故障的时候。
4、如果故障依旧的话,尝试打开命令提示符(amd)命令,然后在上面输入SFC /SCANNOW命令回车,然后在插入原装系统修复系统,来自动修复系统。
5、尝试进入到bios设置光驱为第一启动,插入光驱在修复安装系统。
6、当然也有可能是软驱的故障,驱动程序未安装的情况,解决方法就是使用驱动精灵来自动检测驱动是否正常即可。
7、注册表被破坏,需要修复。解决方法就是单击“开始”菜单,点“运行”,输入“regedit”,打开注册表,进入“HKEY_LOCAL_MACHINE\ SYSTEM\ControlSet001\Control\Keyboard Layouts”,里面有很多子项,通过观察我发现,以“0804”结尾的都是简体中文输入法。打开“E00E0804”,马上看到右侧子项里有“Layout File”子项,双击打开该项,将“数值数据”中的“kbdus.dll”改为“kbdjpn.dll”,“确定”即可。依此类推,我们可以将所有的以“0804”结尾的子项中“Layout File”全部改为“kbdjpn.dll”,具体就根据自己常用的输入法进行选择了。最后重启电脑即可。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)