我刚刚在我的 XFCE 设备上重新安装了 Compiz,并映射了角落并单击屏幕顶部以用于窗口切换 Compiz 插件(如 Scale)。 90% 的情况下它都很棒,但当我玩游戏时它总是会被意外触发。问题是,当我玩游戏时,如何禁用 Compiz 热角和按钮点击绑定(我相信 compiz 术语是边缘和按钮绑定)。
答案1
笔记:这是我为自己使用而开发的系统,我只是想以问答方式与大家分享。如果有人提出了不同的系统,请务必发布您的答案。
除了所有 Compiz 的东西之外,您还需要xdo工具,有点像Linux的Autohotkey。它将允许您从 shell 脚本发送热键组合来启动 Compiz 插件。
如果您有兴趣让 Compiz 在缩放过程中显示最小化的窗口,请参阅我发布的这个问题和答案
策略
对于像 Scale 这样的插件,您只需映射按键组合,而不是在比例插件本身内映射热点(边缘和按钮映射)。然后,您可以制作通过 xdotools 发送这些组合键的 shell 脚本,并将这些 shell 脚本映射到命令部分中您想要的边缘和按钮绑定。然后,您可以创建一个脚本,当您不希望激活边缘和按钮绑定时,该脚本会将这些脚本重命名为其他名称,并在您想要恢复该功能时恢复原始名称。
优点
与在游戏过程中暂时将 Compiz 替换为 metacity 或 xfwm 来完全禁用 Compiz 之类的方法相比,使用此方法的优点在于,它为您提供了灵活性,可以简单、即时地禁用少数对游戏造成干扰的 Compiz 功能,同时保持其余功能完好无损。因此,在这种情况下,您可以禁用窗口切换的热角,但保留使用热键切换窗口的功能以及 Compiz 的所有其他功能,如桌面立方体、显示桌面或博览会。您也不会丢失所有的 compiz 键绑定,或者必须为每个窗口管理器制作两组。切换几个重命名脚本是即时且稳定的,而每次您想要启动游戏并退出游戏时切换窗口管理器将需要 5 到 10 秒,我个人必须在切换窗口管理器后注销并重新登录才能获得一点稳定性。
这是一个例子
当您将鼠标移到右上角和左上角时,您希望在比例插件中激活“启动窗口选择器”。当您左键单击屏幕顶部时,您还希望“为所有窗口启动窗口选择器”。您已将前者的热键设置为“Alt Tab”,将后者的热键设置为“Win Tab”。
第 1 步:制作 shell 脚本。将它们放在您的主目录中:
Initiate_Window_Picker_on.sh
xdotool keydown Alt key Tab keyup Alt
Initiate_Window_Picker_AllWindows_on.sh
xdotool keydown Super key Tab keyup Super
游戏模式切换.sh
~/./gamemode-on.sh
游戏模式-on.sh
mv -T ~/Initiate_Window_Picker_on.sh ~/Initiate_Window_Picker_off.sh
mv -T ~/Initiate_Window_Picker_AllWindows_on.sh ~/Initiate_Window_Picker_AllWindows_off.sh
echo ~/./gamemode-off > ~/gamemode-toggle.sh
chmod +x ~/gamemode-toggle.sh
游戏模式关闭.sh
mv -T ~/Initiate_Window_Picker_off.sh ~/Initiate_Window_Picker_on.sh
mv -T ~/Initiate_Window_Picker_AllWindows_off.sh ~/Initiate_Window_Picker_AllWindows_on.sh
echo ~/./gamemode-on > ~/gamemode-toggle.sh
chmod +x ~/gamemode-toggle.sh
在终端中,授予所有脚本执行权限:
chmod +x ~/*.sh
第 2 步:取消映射缩放插件本身内的任何边缘和按钮绑定,同时保持热键完好无损。
第 3 步:在 Compiz 设置管理器中,转到“命令”(如果尚未激活插件,请确保激活该插件)并将边缘和按钮绑定到 shell 脚本。您还可以映射 gamemode-toggle.sh 脚本的热键,甚至可以在游戏中切换边缘和按钮绑定。
例如。
在命令下(〜字符在这里不起作用)
命令行0:
/home/your_username/./Initiate_Window_Picker_on.sh
命令行1:
/home/your_username/./Initiate_Window_Picker_AllWindows_on.sh
命令行2:
/home/your_username/./gamemode-toggle.sh
在按键绑定下:
运行命令0:
运行命令1:
运行命令2:
<Super>F12
按钮绑定下
运行命令0:
运行命令1:
<TopEdge>Button1
运行命令2:
下边装订
运行命令0:
TopLeft|TopRight
运行命令1:
运行命令2: