私のt450のcapsボタンには独自のledがないため、CapsLockが押されたときにFn ledを点灯するための単純なスクリプトをbashで記述しました。したがって、キーを押すだけでこのスクリプトを実行する必要があります。このため、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、Return)を使用すると機能しますが、Caps_Loksでは機能しません。 Capslockを押してもxbindkeys -k
が何もしないことも奇妙なので、問題はここから始まるかもしれません。0x42
、lock
、xmodmap
の0xffe5などの他の名前を試しましたが、何もしませんでした。どうすれば解決できますか?
xbindkeys
がCapsLock
キーを認識しない理由を見つけました。その理由は、この行がi3 config
:bindsym --release Caps_Lock exec --no-startup-id <command>
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ラインを見つけました。
これで鍵が取得されました。