将所有按键绑定到应用程序

将所有按键绑定到应用程序

我在一台旧服务器上运行 16.04 和 LXDE。图形效果显然不是很好(8MB 板载图形),所以我用它x2go来转发我的 xsession 超过 10 100 1000。问题是按键(例如alt+ tabctrl+ alt+right等)没有绑定到应用程序,因此不是切换应用程序之内x2go,它从 x2go 应用程序切换到客户端机器上的下一个打开的程序。

我如何才能将所有击键(甚至更好,排除一个击键)绑定到单个应用程序?

客户端计算机运行的是 Unity。主机(我通过 x2go 发送会话的计算机)运行的是 LXDE。

答案1

禁用 Unity 快捷方式

  1. 安装ccsm

     sudo apt-get install compizconfig-settings-manager
    
  2. 进入桌面类别 → Ubuntu Unity 插件 → 切换器选项卡

    单击每个快捷方式,取消选中“启用”,然后单击“确定”

  3. 转至桌面类别 → 桌面墙 → 绑定选项卡

    同样的方法,禁用您想要的快捷方式。

  4. 关闭ccsm,关闭后立即生效。

ccsm快捷方式优先于系统设置中的自定义快捷方式。您可以使用它dconf来查看使用 GUI 执行上述步骤时更改的底层设置。

$ dconf watch /
/org/compiz/profiles/unity/plugins/unityshell/alt-tab-prev
  'Disabled'

/org/compiz/profiles/unity/plugins/unityshell/alt-tab-prev
  'Disabled'

/org/compiz/profiles/unity/plugins/unityshell/alt-tab-forward
  unset

/org/compiz/profiles/unity/plugins/unityshell/alt-tab-forward
  unset

因此最好制作一个包装脚本来禁用 unity 切换器快捷方式,启动 x2goclient,然后在关闭 x2goclient 后重新启用它们。

dconf write /org/compiz/profiles/unity/plugins/unityshell/alt-tab-prev "'Disabled'"
dconf write /org/compiz/profiles/unity/plugins/unityshell/alt-tab-forward "'Disabled'"
...
x2goclient
dconf reset /org/compiz/profiles/unity/plugins/unityshell/alt-tab-prev
dconf reset /org/compiz/profiles/unity/plugins/unityshell/alt-tab-forward
...

禁用 LXDE 快捷方式

对某些人来说可能有用的旧答案。

您提到的快捷方式属于 OpenBox。它是使用 Lubuntu 的预定义设置启动的。(至少对于 Lubuntu 14.04 来说是这样)。

~$ pgrep -a openbox
4772 openbox --config-file /home/lubuntu/.config/openbox/lubuntu-rc.xml

我们应该将它们与 OpenBox 或任何已经绑定它们的工具解除绑定。

  1. 打开其配置文件进行编辑

     leafpad ~/.config/openbox/lubuntu-rc.xml
    
  2. 然后使用 XML 注释标签注释掉您想要的快捷方式<!-- --> 或者删除它们。


新的自定义快捷方式转发至 x2goclient

之后使用wmctrl&设置全局快捷方式以将快捷方式转发到 x2goclient 窗口xvkbd

  1. 系统设置 → 键盘 → 快捷键选项卡

  2. 使用命令添加新的自定义快捷方式

     bash -c 'wid=$(wmctrl -l | awk "/X2Go Client/ {print $1; exit}"); echo $wid; if [ "$wid" ] ; then xvkbd -window $wid -xsentevent -text "\A\t"; fi'
    

    为了AltTab

相关内容