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"
description="Show the notification list"/>
<KeyListEntry name="toggle-quick-settings"
description="Open the quick settings menu"/>
<KeyListEntry name="focus-active-notification"
description="Focus the active notification"/>

View File

@ -183,6 +183,13 @@
Keybinding to toggle the visibility of the notification list.
</description>
</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">
<default>["&lt;Super&gt;n"]</default>
<summary>Keybinding to focus the active notification</summary>

View File

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

View File

@ -812,6 +812,13 @@ var WindowManager = class {
Shell.ActionMode.POPUP,
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',
new Gio.Settings({schema_id: SHELL_KEYBINDINGS_SCHEMA}),
Meta.KeyBindingFlags.IGNORE_AUTOREPEAT,
@ -1723,6 +1730,10 @@ var WindowManager = class {
Main.panel.toggleCalendar();
}
_toggleQuickSettings() {
Main.panel.toggleQuickSettings();
}
_showWorkspaceSwitcher(display, window, binding) {
let workspaceManager = display.get_workspace_manager();