+const St = imports.gi.St;
+const Main = imports.ui.main;
+const Views = imports.ui.appDisplay.Views;
+
+let signalId = null;
+
+function init() {
+}
+
+function enable() {
+ signalId = global.stage.connect('key-press-event', onStageKeyPress);
+}
+
+function disable() {
+ if (signalId) {
+ global.stage.disconnect('key-press-event');
+ signalId = null;
+ }
+}
+
+function onStageKeyPress() {
+ if (!hasVisibleWindows() && !Main.overview.visible) {
+ Main.overview.viewSelector.showApps();
+ Main.overview.viewSelector.appDisplay._showView(Views.FREQUENT);
+ Main.overview.viewSelector._activePage.navigate_focus(null, St.DirectionType.TAB_FORWARD, false);
+ }
+}
+
+function hasVisibleWindows() {
+ return global.display.get_tab_list(0, null).find((w) => !w.is_hidden());
+}
+