diff --git a/data/50-gnome-shell-system.xml.in b/data/50-gnome-shell-system.xml.in index cb468f934..92858c59d 100644 --- a/data/50-gnome-shell-system.xml.in +++ b/data/50-gnome-shell-system.xml.in @@ -8,6 +8,9 @@ + + diff --git a/data/org.gnome.shell.gschema.xml.in.in b/data/org.gnome.shell.gschema.xml.in.in index e18685e9c..eaeb01aae 100644 --- a/data/org.gnome.shell.gschema.xml.in.in +++ b/data/org.gnome.shell.gschema.xml.in.in @@ -106,6 +106,13 @@ value here is from the GsmPresenceStatus enumeration. Keybinding to toggle the visibility of the message tray. + + ["<Super>n"] + <_summary>Keybinding to focus the active notification + <_description> + Keybinding to focus the active notification. + + r']]]> <_summary>Keybinding to toggle the screen recorder diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js index 2bbdfe8b6..2f714b0b4 100644 --- a/js/ui/messageTray.js +++ b/js/ui/messageTray.js @@ -1519,6 +1519,10 @@ const MessageTray = new Lang.Class({ new Gio.Settings({ schema: SHELL_KEYBINDINGS_SCHEMA }), Meta.KeyBindingFlags.NONE, Lang.bind(this, this.toggleAndNavigate)); + global.display.add_keybinding('focus-active-notification', + new Gio.Settings({ schema: SHELL_KEYBINDINGS_SCHEMA }), + Meta.KeyBindingFlags.NONE, + Lang.bind(this, this._expandActiveNotification)); this._summaryItems = []; this._chatSummaryItemsCount = 0; @@ -2338,6 +2342,13 @@ const MessageTray = new Lang.Class({ notification.destroy(NotificationDestroyedReason.EXPIRED); }, + _expandActiveNotification: function() { + if (!this._notification) + return; + + this._expandNotification(false); + }, + _expandNotification: function(autoExpanding) { // Don't grab focus in notifications that are auto-expanded. if (!autoExpanding)