我有一个usb键盘,我插入到我的桌面在工作。在使用它时,倾向于手动设置以下setxkbmap选项:
setxkbmap -option compose:ralt
setxkbmap -option ctrl:swap_rwin_rctl
setxkbmap -option ctrl:swap_lwin_lctl因为我经常这样做,所以我想通过使用udev规则来自动化这个过程。当我插入键盘时,以下规则与事件匹配:
ACTION=="add", SUBSYSTEM=="usb", DRIVER=="usb", ATTRS{idVendor}=="046a", ATTRS{idProduct}=="0023", RUN+="/home/cutuchiqueno/.local/bin/kbd_udev", OWNER="cutuchiqueno"运行的脚本包含问题开头的三行:
#!/bin/bash
setxkbmap -option compose:ralt
setxkbmap -option ctrl:swap_rwin_rctl
setxkbmap -option ctrl:swap_lwin_lctl
echo `date +%T` >> /home/cutuchiqueno/udevtest(我只为调试目的添加了最后一行)。不幸的是,这些选项没有链接起来。我可以想象这与环境参数有关,尽管我并不真正知道如何处理这个问题。
发布于 2016-02-12 11:32:09
有两项修改使这一特定情况得以实施:
kbd脚本需要添加一个DISPLAY:0.0
udev规则对一件太早的事件作出反应。我将子系统更改为input。
一切都很顺利。
https://unix.stackexchange.com/questions/261453
复制相似问题