2013-01-17 44 views
3

您好
我需要設置一個熱鍵在Ubuntu 12.10中,我使用Gsettigs和dconf設置熱鍵

gsettings(dconf)

~$ gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2/ binding '<Primary><Alt>s' 
~$ gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2/ binding '<Primary><Alt>s' 
~$ gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2/ command 'gnome-terminal' 

但是當我看這個模式我剛纔看到

~$ gsettings get org.gnome.settings-daemon.plugins.media-keys custom-keybindings 
~$ @as [] 

但是當我使用dconf看到這個模式

~$ dconf list /org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2/ 
binding 
command 

我做錯了什麼? 謝謝。

回答

2

您忘記設置父類型的值:custom-keybindings,該類型的類型爲@as[]。首先檢查是否是空的有:

gsettings get org.gnome.settings-daemon.plugins.media-keys custom-keybindings 

如果它是空的:[],運行:

gsettings set org.gnome.settings-daemon.plugins.media-keys custom-keybindings "['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2/']" 

如果不爲空,你將不得不對現有值添加到上面的命令(值必須被包圍由單引號和逗號+空格隔開,如['val1', 'val2', 'val3'])。然後運行:

gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/custom2/ binding '<Primary><Alt>s' 
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/custom2/ command 'gnome-terminal'