Index: plugins/media-keys/gsd-media-keys-manager.c =================================================================== --- plugins/media-keys/gsd-media-keys-manager.c.orig +++ plugins/media-keys/gsd-media-keys-manager.c @@ -1082,6 +1082,7 @@ do_sound_action (GsdMediaKeysManager *ma { GvcMixerStream *stream; gboolean old_muted, new_muted; + gboolean toggle_mute; guint old_vol, new_vol, norm_vol_step; gboolean sound_changed; @@ -1103,7 +1104,11 @@ do_sound_action (GsdMediaKeysManager *ma switch (type) { case MUTE_KEY: - new_muted = !old_muted; + toggle_mute = g_settings_get_boolean (manager->priv->settings, "toggle-mute"); + if (toggle_mute) + new_muted = !old_muted; + else + new_muted = TRUE; break; case VOLUME_DOWN_KEY: if (old_vol <= norm_vol_step) { Index: data/gnome-settings-daemon.convert =================================================================== --- data/gnome-settings-daemon.convert.orig +++ data/gnome-settings-daemon.convert @@ -61,6 +61,7 @@ volume-down = /apps/gnome_settings_daemo volume-mute = /apps/gnome_settings_daemon/keybindings/volume_mute volume-up = /apps/gnome_settings_daemon/keybindings/volume_up www = /apps/gnome_settings_daemon/keybindings/www +toggle-mute = /apps/gnome_settings_daemon/toggle_mute [org.gnome.settings-daemon.plugins.mouse] active = /apps/gnome_settings_daemon/plugins/mouse/active Index: data/org.gnome.settings-daemon.plugins.media-keys.gschema.xml.in.in =================================================================== --- data/org.gnome.settings-daemon.plugins.media-keys.gschema.xml.in.in.orig +++ data/org.gnome.settings-daemon.plugins.media-keys.gschema.xml.in.in @@ -193,5 +193,10 @@ <_summary>Command <_description>Command to run when the binding is invoked + + true + <_summary>Toggle Mute + <_description>Toggle the sound mixer's mute status when then mute button is pressed. +