我有点问题。我想从以前的系统中重新映射一些我惯用的热键,但无法使其正常使用xbindkeys
。
xbindkeys
可以识别组合,但是某种程度上命令不会触发。
如果我使用命令
xdotool key braceleft
它{
在控制台中向我输出正确的符号。但是,如果我在xbindkeys中使用相同的命令,则不会发生任何事情。如果我用firefox
它替换命令,它可以正常工作并打开Firefox,所以我猜是xbindkeys
可行的。
我要实现以下目标:
我想{
使用Alt_R+ 7或Alt_Left+ Ctrl+ 在活动窗口中键入字符,
7因此可以同时使用两者。我知道Alt_R(AltGr)是正确的方法,但是在德语键盘上,用AltGr(Alt_R)键键入左大括号很难,所以我不得不改用Alt_L+ Control+ 7(就像我以前的系统一样)。我以某种方式使它在12.04中可以正常工作,但是我无法在14.04中使其工作。
有什么建议么?我尝试了几个命令。它们全部都在控制台中工作,但是当由xbindkeys执行时它们都不工作
xdotool type '{'
xdotool key braceleft
xdotool key ISO_Level3_Shift+7
xvkbd -xsendevent -text '{'
xvkbd -xsendevent -text '\[Alt_R]+7'
这是我的配置,不起作用
"xdotool key braceleft"
Control+Alt + 7
但是,这可行:
"firefox"
Control+Alt + 7
解决方案
当我尝试其他几件事时,我注意到xdotool似乎触发得太早了。我这样修改了配置:
"sleep 1 && xdotool type --delay 15 '{'"
Control+Alt + 7
现在,它将正确的{符号发送到活动窗口。现在剩下的唯一事情就是减少睡眠和延迟到一个可行的值,因为1秒似乎太长了:)
**添加信息**好吧,现在我设法找到合适的值。但是,这仅在您释放钥匙直到睡眠持续时间结束时才有效。如果您太慢,将无法正常工作。
这是所有不方便的德语AltGr角色的当前配置
"sleep 0.2 && xdotool type --delay 15 '{'"
Control+Alt + 7
"sleep 0.2 && xdotool key --delay 15 at"
Control+Alt + q
"sleep 0.2 && xdotool type --delay 15 '€'"
Control+Alt + e
"sleep 0.2 && xdotool type --delay 15 '['"
Control+Alt + 8
"sleep 0.2 && xdotool type --delay 15 ']'"
Control+Alt + 9
"sleep 0.2 && xdotool type --delay 15 '}'"
Control+Alt + 0
"sleep 0.2 && xdotool type --delay 15 '~'"
Control+Alt + plus
但是,如果要键入多个@符号(例如),则必须按预期按Ctrl + Alt + Q,但是释放所有键,然后再次按。但是,这比没有Control + Alt代替AltGr的选项要好得多,但是它并不像我以前使用的那样有效。也许我也会为此找到解决方案。
xdotool
在按住时如何重复按键?
xdotool getactivewindow key Home