如何列出正在使用的 Compiz 键绑定?

如何列出正在使用的 Compiz 键绑定?

除了查看每个活动插件并手动搜索 compiz 使用的键绑定/键盘快捷键之外,是否有“简单”的方法来收集这些信息?

即显示所有当前正在使用的活动键绑定(由 compiz 使用)的面板,或执行相同操作的某些终端命令。

键盘快捷键似乎没有列出某些特定的 compiz 快捷键。

谢谢

答案1

这是一个(非常长的)单行代码,它返回所有活动插件的所有快捷方式:

for i in $(gconftool-2 --get /apps/compiz-1/general/screen0/options/active_plugins|sed "s/\[\|\]//g"|sed "s/,/ /g"); do echo "# $i:"; gconftool-2 -a /apps/compiz-1/plugins/"$i"/screen0/options | grep "_key\|_button\|trigger_\|initiate\ \|panel_first_menu\|keyboard_focus\|execute_command\|show_launcher" | grep -v "Disabled\|=[[:space:]]*$" | sort; done; echo -e "\n# metacity overrides:"; gconftool-2 -a /apps/metacity/global_keybindings | grep -v "disabled\|cycle\|switch_panels" | sort; gconftool-2 -a /apps/metacity/window_keybindings | grep -v "disabled" | sort

更新
以上版本现在获得全部所有活动插件的非空/禁用的键绑定(键、鼠标、键+鼠标)。

然而,关键的价值X-GNOME-WMSettings模块/usr/share/applications/compiz.desktop使 Metacity 覆盖多个 Compiz 键。您会注意到斜体标签ccsm- 这是因为值来自 Metacity 而不是 Compiz。

由于我发现没有简单的方法来解决这个问题,我只是将所有 Metacity 快捷方式添加到输出的末尾。

答案2

您不需要链接 2 个 sed 脚本,它们可以是一个,用“;”分隔。但更简单的方法是通过管道传输到 tr。对于没有 metacity 的 12.04,这应该是:

for i in $(gconftool-2 --get /apps/compiz-1/general/screen0/options/active_plugins|tr '[],' ' '); do echo "# $i:"; gconftool-2 -a /apps/compiz-1/plugins/"$i"/screen0/options | grep "_key\|_button\|trigger_\|initiate\ \|panel_first_menu\|keyboard_focus\|execute_command\|show_launcher" | grep -v "Disabled\|=[[:space:]]*$" | sort; done

但是,正如 Jay_11 已经指出的那样,整个构造似乎只显示了 compiz 的一部分内容,而不是结果。例如,我得到了close_window_key = <Alt>F4,但我将其关闭了。作为一名狂热的 Emacs 用户,我不会让窗口管理器接近 以外的任何东西<Super>,但这并没有显示!

因此问题仍然存在: compiz 到底在做什么?

答案3

相关内容