nor*_*ake 7 ubuntu keyboard xmodmap
在 Ubuntu 18.04 中,我使用以下自动启动脚本:
[Desktop Entry]
Type=Application
Exec=/home/user/.xinitrc
Version=1.0
X-GNOME-Autostart-enabled=true
Name=xmodmap
Comment=xmodmap script
Run Code Online (Sandbox Code Playgroud)
这只是xmodmap /path/.Xmodmap &
。
当系统启动时,它就工作了。当系统从睡眠中醒来时,重新映射不再起作用。我怎样才能解决这个问题?
编辑:(回复评论)这也不能解决问题:
$ cat /etc/systemd/system/xmodmapbindings.service
[Unit]
Description=xmodmap bindings
Before=sleep.target
StopWhenUnneeded=yes
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStop=-/home/norake/.xinitrc
[Install]
WantedBy=sleep.target
$ cat ~/.xinitrc
#!/bin/bash
if [ "$USER" != norake ]; then
su norake -c 'sleep 5; /usr/bin/xmodmap /home/norake/.Xmodmap' &
# without su, without sleep, without fork (&): doesn't work either
else
(sleep 5; /usr/bin/xmodmap /home/norake/.Xmodmap) &
fi
Run Code Online (Sandbox Code Playgroud)
sleep 30
也不行。当然,手动运行脚本是有效的。
当您拔下并重新插入键盘时,您修改的设置也会“丢失”,这就是这里发生的情况:挂起会生成热插拔事件,因为键盘在进入挂起时被禁用并在退出时重新启用。
从 X 服务器的角度来看,从挂起返回后连接的键盘是一个新键盘,因此它是使用标准绑定启动的,就像第二个键盘一样。
这是 USB 键盘驱动程序的一个已知缺点,并且很难在内核中修复(因为 USB 在恢复时会重新枚举,因此我们需要一种方法来保持设备的身份,即使它被分配了一个新号码),并且很难在 X 服务器中修复(因为它需要保留设备的历史记录)。
您能做的最好的事情可能是运行该命令作为会话启动的一部分和键盘热插拔处理的一部分,但我在这里想不出一个完全干净的解决方案。
归档时间: |
|
查看次数: |
2245 次 |
最近记录: |