作業中にデスクトップに接続するUSBキーボードがあります。次の内容は使用時に手動で設定されることが多いxkbmapの設定オプション:
setxkbmap -option compose:ralt
setxkbmap -option ctrl:swap_rwin_rctl
setxkbmap -option ctrl:swap_lwin_lctl
これを頻繁に行うので、次のようにプロセスを自動化したいと思います。ウデブルール。キーボードを挿入すると、次のルールがイベントと一致します。
ACTION=="add", SUBSYSTEM=="usb", DRIVER=="usb", ATTRS{idVendor}=="046a", ATTRS{idProduct}=="0023", RUN+="/home/cutuchiqueno/.local/bin/kbd_udev", OWNER="cutuchiqueno"
RUNスクリプトには、この質問の冒頭に3行が含まれています。
#!/bin/bash
setxkbmap -option compose:ralt
setxkbmap -option ctrl:swap_rwin_rctl
setxkbmap -option ctrl:swap_lwin_lctl
echo `date +%T` >> /home/cutuchiqueno/udevtest
(デバッグ目的で最後の行を追加しました。)残念ながら、オプションはリンクされていません。私はこれが環境パラメータに関連していると想像できますが、実際にこの問題を解決する方法はわかりません。
答え1
2つの修正でこの特別なケースが機能します。
スクリプトを追加するkbd
必要がありますDISPLAY:0.0
udevルールは早期イベントに反応します。サブシステムをinput
。
すべてが順調に進んでいます。