diff --git a/extensions/horizontal-workspaces/extension.js b/extensions/horizontal-workspaces/extension.js new file mode 100644 index 00000000..b5f04355 --- /dev/null +++ b/extensions/horizontal-workspaces/extension.js @@ -0,0 +1,38 @@ +/* exported init */ +const { Meta } = imports.gi; + +const { ThumbnailsBox } = imports.ui.workspaceThumbnail; + +class Extension { + constructor() { + this._origUpdateSwitcherVisibility = + ThumbnailsBox.prototype._updateSwitcherVisibility; + } + + enable() { + global.workspace_manager.override_workspace_layout( + Meta.DisplayCorner.TOPLEFT, + false, + 1, + -1); + + ThumbnailsBox.prototype._updateSwitcherVisibility = function() { + this.hide(); + }; + } + + disable() { + global.workspace_manager.override_workspace_layout( + Meta.DisplayCorner.TOPLEFT, + false, + -1, + 1); + + ThumbnailsBox.prototype._updateSwitcherVisibility = + this._origUpdateSwitcherVisibility; + } +} + +function init() { + return new Extension(); +} diff --git a/extensions/horizontal-workspaces/meson.build b/extensions/horizontal-workspaces/meson.build new file mode 100644 index 00000000..48504f63 --- /dev/null +++ b/extensions/horizontal-workspaces/meson.build @@ -0,0 +1,5 @@ +extension_data += configure_file( + input: metadata_name + '.in', + output: metadata_name, + configuration: metadata_conf +) diff --git a/extensions/horizontal-workspaces/metadata.json.in b/extensions/horizontal-workspaces/metadata.json.in new file mode 100644 index 00000000..f109e068 --- /dev/null +++ b/extensions/horizontal-workspaces/metadata.json.in @@ -0,0 +1,10 @@ +{ +"extension-id": "@extension_id@", +"uuid": "@uuid@", +"settings-schema": "@gschemaname@", +"gettext-domain": "@gettext_domain@", +"name": "Horizontal workspaces", +"description": "Use a horizontal workspace layout", +"shell-version": [ "@shell_current@" ], +"url": "@url@" +} diff --git a/extensions/horizontal-workspaces/stylesheet.css b/extensions/horizontal-workspaces/stylesheet.css new file mode 100644 index 00000000..25134b65 --- /dev/null +++ b/extensions/horizontal-workspaces/stylesheet.css @@ -0,0 +1 @@ +/* This extensions requires no special styling */ diff --git a/meson.build b/meson.build index 1756face..16a48cf3 100644 --- a/meson.build +++ b/meson.build @@ -33,6 +33,7 @@ uuid_suffix = '@gnome-shell-extensions.gcampax.github.com' classic_extensions = [ 'apps-menu', + 'horizontal-workspaces', 'places-menu', 'launch-new-instance', 'window-list'