我正在尝试设置快捷键来输入常见的变音符号。我可以让 xdotool 在终端或从 icewm 命令栏(甚至从 gmrun)输入变音符号:
xdotool key Aacute
但是以下键映射(在 icewm 键文件中)不起作用:
key "Ctrl+Alt+a" xdotool key Aacute
key "Ctrl+Alt+a" xdotool --delay 1000 key Aacute
相反,当我键入快捷方式(如果在终端或文本编辑器中)时,我只看到光标闪烁一次,但没有其他任何反应。以下确实显示了一个弹出窗口,因此关键代码本身是正确的:
key "Ctrl+Alt+a" zenity --info --text="shortcut works"
有没有人有办法注册键绑定,以便在活动应用程序中实际键入变音符号?
使用
setxkbmap
orxmodmap
似乎是正确的做法,但是 FWIW 和 FTR 在我遇到这个问题后,我发现以下内容对我有用。我希望这可以帮助其他想要使用xdotool
.我有 xdotool 模拟这些键,因为我的键盘上没有它们。注意
&
在后台运行命令的使用,以便 IceWM 可以从处理热键返回并避免干扰 xdotool。200 毫秒是我可以使用的最短延迟,并且仍然可以可靠地工作。我不确定
--clearmodifiers
您的用例是否有意义。另请注意,按住这些键不会导致预期的重复行为(因为 IceWM 热键不是最好的选择)但这对我的目的来说很好。
我无法让我原来的解决方案工作,所以我改变了键盘映射。默认的 us 键盘映射没有我需要的变音符号,但国际版本有。尝试一下:
setxkbmap -layout 'us(intl)'
但是国际版本默认使用 compose 来处理某些键。例如,' 字符不再立即响应。因此,我选择基于美式键盘创建自己的键盘映射。
我创建了一个新文件:
/usr/share/X11/xkb/symbols/erik
让 xkb 接受更改:
sudo dpkg-reconfigure xkb-data
尝试键盘映射:
setxkbmap -layout erik
现在 alt_gr + [aeiou] 应该输入 [áéíóú]。
我通过使用 icewm 启动文件在启动时调用上述命令使更改永久化。我认为应该可以使用您的发行版键盘切换器选择布局,但我尚未对此进行测试。随意将文件命名为其他名称,除非您想给我以我的名字命名您的键盘映射的巨大荣誉。请务必避免使用 2 个字母代码,因为所有默认国家/地区映射都是如此命名的。
注意:
您可以查看符号目录中的其他映射文件以获取示例。
可以在此处找到了解文件格式的一些资源:
https ://www.x.org/wiki/XKB/