Iva*_*van 12 gnome xorg automation numlock
在使用全尺寸外部键盘(有小键盘)时,启用 NumLock 很方便,而在使用笔记本电脑的内置键盘(除非按下 Fn 否则将数字而不是字母放在键盘的右侧)时非常不方便。
因此,每次连接外部键盘(或连接时启动)时,我都必须打开 NumLock,每次卸下外置键盘(或卸下时启动)时都必须关闭 NumLock。我经常这样做是因为我更喜欢使用全尺寸外置键盘,但没有足够的(只有 3 个)USB 端口将其与鼠标、3G 调制解调器和外置硬盘/闪存驱动器一起插入。
我可以自动化吗?似乎是一个非常正式、逻辑上简单的任务:如果连接了 USB 键盘(/dev 中的某些设备存在?) - NumLock 已打开,否则 - NumLock 已关闭。我的笔记本电脑的内置键盘是 PS/2 连接的,外部是 USB。
也许我应该自己编写代码,但在这种情况下应该把它放在哪里?
我使用 Ubuntu 10.10。
Ham*_*ner 14
首先,安装 numlockx(单击此处安装 numlockx)。基本上,这允许您编写脚本来设置 Num Lock 的状态 -有关详细信息,请参阅numlockx 手册页。
接下来我们需要开始钻研udev规则的乐趣。首先我们需要找出键盘是如何识别的。你可以这样做
ls /dev/input/by-id/
Run Code Online (Sandbox Code Playgroud)
这应该为您提供一些人类可读的文件名(这些文件名是指向不是特别易读的真实名称的软链接)。我的键盘是
/dev/input/by-id/usb-KINESIS_FREESTYLE_KB700_KB700_Kinesis_Freestyle-event-kbd
Run Code Online (Sandbox Code Playgroud)
那么我们需要找出有关键盘的所有信息。我做了
udevadm info -a -p $(udevadm info -q path -n /dev/input/by-id/usb-KINESIS_FREESTYLE_KB700_KB700_Kinesis_Freestyle-event-kbd)
Run Code Online (Sandbox Code Playgroud)
但是当然要在那里插入你自己的路径。您将获得大量信息,但您想查看第一个为键盘命名并带有SUBSYSTEMS=="usb"
. (而不是 USB 控制器或其他任何东西)。就我而言,那是:
looking at parent device '/devices/pci0000:00/0000:00:1a.0/usb3/3-2/3-2.3':
KERNELS=="3-2.3"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{configuration}==""
ATTRS{bNumInterfaces}==" 2"
ATTRS{bConfigurationValue}=="1"
ATTRS{bmAttributes}=="a0"
ATTRS{bMaxPower}==" 50mA"
ATTRS{urbnum}=="6284"
ATTRS{idVendor}=="058f"
ATTRS{idProduct}=="9410"
ATTRS{bcdDevice}=="0122"
ATTRS{bDeviceClass}=="00"
ATTRS{bDeviceSubClass}=="00"
ATTRS{bDeviceProtocol}=="00"
ATTRS{bNumConfigurations}=="1"
ATTRS{bMaxPacketSize0}=="8"
ATTRS{speed}=="1.5"
ATTRS{busnum}=="3"
ATTRS{devnum}=="3"
ATTRS{devpath}=="2.3"
ATTRS{version}==" 1.10"
ATTRS{maxchild}=="0"
ATTRS{quirks}=="0x0"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{authorized}=="1"
ATTRS{manufacturer}=="KINESIS FREESTYLE KB700"
ATTRS{product}=="KB700 Kinesis Freestyle"
Run Code Online (Sandbox Code Playgroud)
所以现在我们有足够的信息来编写一些规则。使用您最喜欢的编辑器来创建/etc/udev/rules.d/10-local.rules
和输入:
BUS=="usb",ATTRS{product}=="KB700 Kinesis Freestyle",ACTION=="add",RUN+="/usr/bin/numlockx on"
BUS=="usb",ATTRS{product}=="KB700 Kinesis Freestyle",ACTION=="remove",RUN+="/usr/bin/numlockx off"
Run Code Online (Sandbox Code Playgroud)
再次,在这里输入您的键盘名称,如果不同则输入 ATTRS。然后它应该工作:)
请注意,我一直无法对此进行测试,尽管我已经运行了所有命令,直到创建规则文件为止。如果您需要进行更多调查,来源是:
归档时间: |
|
查看次数: |
3935 次 |
最近记录: |