我用bash编写了一个简单的脚本,用于在按CapsLock时亮起Fn,因为我的t450上的caps按钮没有自己的led。因此,我必须在按键时执行这个脚本,因此我尝试使用xbindkeys。在我的.xbindkeysrc文件中,我最初写道:
# Fn led button as Capslock led "sleep 0.1 && sudo bash ~/.scipts/Caps_to_Fn_led.sh" Caps_Lock,其中Caps_to_Fn_led.sh是:
#!/bin/bash
state=$(xset -q | grep Caps | cut -c20-24)
if [ $state = "off" ]
then
modprobe -r ec_sys
modprobe ec_sys write_support=1
echo -n -e "\x06" | sudo dd of="/sys/kernel/debug/ec/ec0/io" bs=1 seek=12 count=1 conv=notrunc 2> /dev/null
modprobe -r ec_sys
else
modprobe -r ec_sys
modprobe ec_sys write_support=1
echo -n -e "\x86" | sudo dd of="/sys/kernel/debug/ec/ec0/io" bs=1 seek=12 count=1 conv=notrunc 2> /dev/null
modprobe -r ec_sys
fi`
如果我使用其他按钮(Esc,返回),但不使用Caps_Loks,它就能工作。同样奇怪的是,当我按下Capslock时,xbindkeys -k什么也不做,所以问题可能从这里开始。我尝试了其他名称,如0x42、lock、0xffe 5和xmodmap,但是没有。我该怎么解决呢?
发布于 2019-10-05 11:38:59
我找到了为什么xbindkeys没有识别CapsLock密钥的原因。原因是我的i3 config:bindsym --release Caps_Lock exec --no-startup-id 上有一行,它不允许xbindkey正常工作。在xbindkeys -n向我展示之后,我得到了它:
*** Warning *** Please verify that there is not another program running which captures one of the keys captured by xbindkeys. It seems that there is a conflict, and xbindkeys can't grab all the keys defined in its configuration file.
因此,经过一番研究,我终于找到了i3系列。
现在钥匙被抓住了。
https://askubuntu.com/questions/1178492
复制相似问题