前言
在 Ubuntu 下我们经常会使用 Wine 或者 Crossover 运行 Windows 应用程序. 当应用程序切换到后台时, 是无法响应预设的全局快捷键的. 比如”打开微信”的快捷键 ctrl
+ alt
+ w
在这种情况下就无法响应.
我们可以借助一个小工具 xdotool 来解决这个问题.
注:
- 此方法在 Ubuntu 17, 18, 19 全系列测试通过, 其他平台未作测试, 理论通用;
- 本文以 “打开微信” 快捷键为例, 其他应用以此类推;
方法
1. 安装 xdotool
直接在命令行运行以下命令即可:
1 | sudo apt install --no-install-recommends xdotool |
2. 编写 xdotool 脚本
思路: Wine 应用在后台无法接收到快捷键状态, 此时借助 xdotool 向 Wine 应用发送模拟按键信息即可.
在合适的位置新建一个脚本文件 “open_wechat.sh”, 写入以下内容:
1 | !/bin/sh |
赋予脚本可执行权限:
1 | chmod +x open_wechat.sh |
如果此时你的微信正好运行在后台, 执行这个脚本就可以把它召唤到前台. 如果没有, 请检查脚本是否有错误.
3. 设置快捷键
图形界面依次打开 “设置” -> “设备” -> “键盘”, 点击列表最底部的 “+” 号添加自定义快捷键.
- 名称随便, 填写 “打开微信” 即可;
- 命令填写刚才编写的脚本的全路径;
- 快捷键设置自己想用的快捷键即可, 建议于应用内部快捷键相同;
- 最后点击”添加”即可.
4. 验证
到这里已经设置成功了, 打开微信, 切换到后台, 然后按下刚才设置的快捷键就能召唤应用至前台. 如果不能, 请检查自己前面的设置是否有误.
后记
其他应用以此类推, 还是那句话, 之后的事情对于敢玩 Ubuntu 的你只能是小菜一碟了, 加油!
Q&A
致谢
这个方法是一个 QQ 交流群中名为 “简单” 得大佬教给我的, 略加整理, 发布至此. 感谢大佬的贡献.