overviewControls: Add shortcut for shifting through overview
This is the same as the vertical swipe gesture, but for keyboard junkies: Analoguous to the <super><alt>left/right shortcuts for switching between workspaces, add <super><alt>up/down to shift between session, window picker and app grid. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1695>
This commit is contained in:
parent
ac6337848f
commit
f4b88aac04
@ -135,6 +135,20 @@
|
|||||||
Keybinding to open the application menu.
|
Keybinding to open the application menu.
|
||||||
</description>
|
</description>
|
||||||
</key>
|
</key>
|
||||||
|
<key name="shift-overview-up" type="as">
|
||||||
|
<default>["<Super><Alt>Up"]</default>
|
||||||
|
<summary>Keybinding to shift between overview states</summary>
|
||||||
|
<description>
|
||||||
|
Keybinding to shift between session, window picker and app grid
|
||||||
|
</description>
|
||||||
|
</key>
|
||||||
|
<key name="shift-overview-down" type="as">
|
||||||
|
<default>["<Super><Alt>Down"]</default>
|
||||||
|
<summary>Keybinding to shift between overview states</summary>
|
||||||
|
<description>
|
||||||
|
Keybinding to shift between app grid, window picker and session
|
||||||
|
</description>
|
||||||
|
</key>
|
||||||
<key name="toggle-application-view" type="as">
|
<key name="toggle-application-view" type="as">
|
||||||
<default>["<Super>a"]</default>
|
<default>["<Super>a"]</default>
|
||||||
<summary>Keybinding to open the “Show Applications” view</summary>
|
<summary>Keybinding to open the “Show Applications” view</summary>
|
||||||
|
@ -358,6 +358,18 @@ class ControlsManager extends St.Widget {
|
|||||||
Shell.ActionMode.NORMAL | Shell.ActionMode.OVERVIEW,
|
Shell.ActionMode.NORMAL | Shell.ActionMode.OVERVIEW,
|
||||||
this._toggleAppsPage.bind(this));
|
this._toggleAppsPage.bind(this));
|
||||||
|
|
||||||
|
Main.wm.addKeybinding('shift-overview-up',
|
||||||
|
new Gio.Settings({ schema_id: WindowManager.SHELL_KEYBINDINGS_SCHEMA }),
|
||||||
|
Meta.KeyBindingFlags.IGNORE_AUTOREPEAT,
|
||||||
|
Shell.ActionMode.NORMAL | Shell.ActionMode.OVERVIEW,
|
||||||
|
() => this._shiftState(Meta.MotionDirection.UP));
|
||||||
|
|
||||||
|
Main.wm.addKeybinding('shift-overview-down',
|
||||||
|
new Gio.Settings({ schema_id: WindowManager.SHELL_KEYBINDINGS_SCHEMA }),
|
||||||
|
Meta.KeyBindingFlags.IGNORE_AUTOREPEAT,
|
||||||
|
Shell.ActionMode.NORMAL | Shell.ActionMode.OVERVIEW,
|
||||||
|
() => this._shiftState(Meta.MotionDirection.DOWN));
|
||||||
|
|
||||||
this.connect('destroy', this._onDestroy.bind(this));
|
this.connect('destroy', this._onDestroy.bind(this));
|
||||||
|
|
||||||
this._update();
|
this._update();
|
||||||
@ -513,6 +525,34 @@ class ControlsManager extends St.Widget {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_shiftState(direction) {
|
||||||
|
let { currentState, finalState } = this._stateAdjustment.getStateTransitionParams();
|
||||||
|
|
||||||
|
if (direction === Meta.MotionDirection.DOWN)
|
||||||
|
finalState = Math.max(finalState - 1, ControlsState.HIDDEN);
|
||||||
|
else if (direction === Meta.MotionDirection.UP)
|
||||||
|
finalState = Math.min(finalState + 1, ControlsState.APP_GRID);
|
||||||
|
|
||||||
|
if (finalState === currentState)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (currentState === ControlsState.HIDDEN &&
|
||||||
|
finalState === ControlsState.WINDOW_PICKER) {
|
||||||
|
Main.overview.show();
|
||||||
|
} else if (finalState === ControlsState.HIDDEN) {
|
||||||
|
Main.overview.hide();
|
||||||
|
} else {
|
||||||
|
this._stateAdjustment.ease(finalState, {
|
||||||
|
duration: SIDE_CONTROLS_ANIMATION_TIME,
|
||||||
|
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
|
||||||
|
onComplete: () => {
|
||||||
|
this.dash.showAppsButton.checked =
|
||||||
|
finalState === ControlsState.APP_GRID;
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
_onDestroy() {
|
_onDestroy() {
|
||||||
global.workspace_manager.disconnect(this._nWorkspacesNotifyId);
|
global.workspace_manager.disconnect(this._nWorkspacesNotifyId);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user