windowManager: Add shortcut for toggling quick settings

Ever since the various status menus were combined into a single
aggregate menu, the menu has been an important entry point. Alas,
we never got around to adding a shortcut for it, not least because
there never was a good candidate.

We just freed super+s which works as either "system" or
"(quick) settings", so use that.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5670

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2716>
This commit is contained in:
Florian Müllner 2023-03-21 17:07:19 +01:00
parent e9cabd00fb
commit ace8676ad0
4 changed files with 25 additions and 0 deletions

View File

@ -8,6 +8,9 @@
<KeyListEntry name="toggle-message-tray" <KeyListEntry name="toggle-message-tray"
description="Show the notification list"/> description="Show the notification list"/>
<KeyListEntry name="toggle-quick-settings"
description="Open the quick settings menu"/>
<KeyListEntry name="focus-active-notification" <KeyListEntry name="focus-active-notification"
description="Focus the active notification"/> description="Focus the active notification"/>

View File

@ -183,6 +183,13 @@
Keybinding to toggle the visibility of the notification list. Keybinding to toggle the visibility of the notification list.
</description> </description>
</key> </key>
<key name="toggle-quick-settings" type="as">
<default>["&lt;Super&gt;s"]</default>
<summary>Keybinding to toggle the quick settings menu</summary>
<description>
Keybinding to toggle the quick settings menu.
</description>
</key>
<key name="focus-active-notification" type="as"> <key name="focus-active-notification" type="as">
<default>["&lt;Super&gt;n"]</default> <default>["&lt;Super&gt;n"]</default>
<summary>Keybinding to focus the active notification</summary> <summary>Keybinding to focus the active notification</summary>

View File

@ -640,6 +640,10 @@ class Panel extends St.Widget {
this._toggleMenu(this.statusArea.dateMenu); this._toggleMenu(this.statusArea.dateMenu);
} }
toggleQuickSettings() {
this._toggleMenu(this.statusArea.quickSettings);
}
closeCalendar() { closeCalendar() {
this._closeMenu(this.statusArea.dateMenu); this._closeMenu(this.statusArea.dateMenu);
} }

View File

@ -812,6 +812,13 @@ var WindowManager = class {
Shell.ActionMode.POPUP, Shell.ActionMode.POPUP,
this._toggleCalendar.bind(this)); this._toggleCalendar.bind(this));
this.addKeybinding('toggle-quick-settings',
new Gio.Settings({schema_id: SHELL_KEYBINDINGS_SCHEMA}),
Meta.KeyBindingFlags.IGNORE_AUTOREPEAT,
Shell.ActionMode.NORMAL | Shell.ActionMode.OVERVIEW |
Shell.ActionMode.POPUP,
this._toggleQuickSettings.bind(this));
this.addKeybinding('switch-to-application-1', this.addKeybinding('switch-to-application-1',
new Gio.Settings({schema_id: SHELL_KEYBINDINGS_SCHEMA}), new Gio.Settings({schema_id: SHELL_KEYBINDINGS_SCHEMA}),
Meta.KeyBindingFlags.IGNORE_AUTOREPEAT, Meta.KeyBindingFlags.IGNORE_AUTOREPEAT,
@ -1723,6 +1730,10 @@ var WindowManager = class {
Main.panel.toggleCalendar(); Main.panel.toggleCalendar();
} }
_toggleQuickSettings() {
Main.panel.toggleQuickSettings();
}
_showWorkspaceSwitcher(display, window, binding) { _showWorkspaceSwitcher(display, window, binding) {
let workspaceManager = display.get_workspace_manager(); let workspaceManager = display.get_workspace_manager();