Answers:
这是一个(很长的)单行代码,它返回所有活动插件的所有快捷方式:
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键。您会注意到其中的斜体标签-这是值来自Metacity而非Compiz的情况。ccsm
由于没有找到解决此问题的简便方法,因此我仅将所有Metacity快捷方式添加到输出的末尾。
No value set for /apps/compiz-1/general/screen0/options/active_plugins
您不需要链接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到底在做什么?