Hub*_*bro 20 xorg shortcut-keys xte xbindkeys
xte当我在终端中运行此命令时,会触发 Expo 模式:
xte 'keydown Super_L' 'key S' 'keyup Super_L'
Run Code Online (Sandbox Code Playgroud)
但是,当我把它放在我的 .xbindkeysrc 文件中时:
"xte 'keydown Super_L' 'key S' 'keyup Super_L'"
b:11
Run Code Online (Sandbox Code Playgroud)
当我单击按钮时没有任何反应。当我按下按钮 11 时,以下绑定使字母 X 出现在我的控制台中:
"xte 'key X'"
b:11
Run Code Online (Sandbox Code Playgroud)
这是xbindkeys -n -v单击按钮 11 时的详细输出:
按钮按下!
e.xbutton.button=11
e.xbutton.state=16
"xte 'keydown Super_L' 'key W' 'keyup Super_L'"
m:0x0 + b:11(鼠标)
窗口 2bb 的屏幕为 0
使用 fork+exec 调用启动程序
按钮释放!
e.xbutton.button=11
e.xbutton.state=16
什么也没有发生。这与xbindkeys执行命令的方式有什么关系吗?(fork+exec 调用)
博览会.sh:
#!/usr/bin/env bash
export DISPLAY=:0
xte 'keydown Super_L' 'key S' 'keyup Super_L'
Run Code Online (Sandbox Code Playgroud)
从命令行执行此脚本会激活 Expo。在 xbindkeys 中绑定它:
"sh ~/expo.sh"
b:11
Run Code Online (Sandbox Code Playgroud)
单击鼠标按钮 11:
按钮按下!
e.xbutton.button=11
e.xbutton.state=16
“sh ~/expo.sh”
m:0x0 + b:11(鼠标)
窗口 2bb 的屏幕为 0
使用 fork+exec 调用启动程序
没发生什么事!
小智 19
另一个更简单的解决方案:不要在 xbindkeys 定义中只使用“b:11”,而是使用“b:11 + release”。它将等到您松开按钮以触发命令。
例子:
"sh ~/expo.sh"
b:11 + release
Run Code Online (Sandbox Code Playgroud)
这很奇怪。事实证明,如果在Super+W模拟击键时我的鼠标按钮仍被按下(尚未释放),则不会发生任何事情。我不知道该怪谁(也许是 Cinnamon?)。不过,我已经解决了这个问题,在xte命令中添加了一个短暂的延迟:
xte 'usleep 100000' 'keydown Super_L' 'key S' 'keyup Super_L'
Run Code Online (Sandbox Code Playgroud)
它现在等待 0.1 秒才能模拟Super+S. 如果我按住鼠标按钮,更小于0.1秒,没有任何反应。
这是一个解决方法的答案。我更喜欢正确的答案。
| 归档时间: |
|
| 查看次数: |
14671 次 |
| 最近记录: |