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

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

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

键盘快捷方式似乎不会列出某些特定的compiz快捷方式。

谢谢

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

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 

更新
以上版本现在从所有活动插件获取所有非空/禁用键绑定(键,鼠标,键+鼠标)。

但是,/ usr / share / applications / compiz.desktop中的密钥X-GNOME-WMSettingsModule的值使Metacity覆盖多个Compiz密钥。 你会注意到ccsm的斜体标签 – 当值来自Metacity而不是Compiz时。

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

您不需要链接2个sed脚本,它们可以是一个,用’;’分隔。 但更简单的是管道到tr。 对于没有韧性的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 = F4 ,但我把它关了。 作为狂热的Emacs用户,除了之外,我不会让窗口管理器接近任何东西,但这并不显示!

所以问题仍然存在:compiz真正在做什么?