A few more fix ups to the heads up extension

This does some code clean ups and fixes a little log spew noticed
during testing.

Related: #2006985
This commit is contained in:
Ray Strode 2021-09-28 14:37:41 -04:00
parent 86d7aac034
commit 513e562939

View File

@ -1,4 +1,4 @@
From 147d364d0c27c1ab76c6826f619381b0e9f9ed77 Mon Sep 17 00:00:00 2001 From 69f53c05798194c49ae897981c2fd37e0f15c489 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com> From: Ray Strode <rstrode@redhat.com>
Date: Tue, 24 Aug 2021 15:03:57 -0400 Date: Tue, 24 Aug 2021 15:03:57 -0400
Subject: [PATCH] heads-up-display: Add extension for showing persistent heads Subject: [PATCH] heads-up-display: Add extension for showing persistent heads
@ -6,14 +6,14 @@ Subject: [PATCH] heads-up-display: Add extension for showing persistent heads
--- ---
extensions/heads-up-display/extension.js | 436 ++++++++++++++++++ extensions/heads-up-display/extension.js | 436 ++++++++++++++++++
extensions/heads-up-display/headsUpMessage.js | 165 +++++++ extensions/heads-up-display/headsUpMessage.js | 170 +++++++
extensions/heads-up-display/meson.build | 8 + extensions/heads-up-display/meson.build | 8 +
extensions/heads-up-display/metadata.json.in | 11 + extensions/heads-up-display/metadata.json.in | 11 +
...ll.extensions.heads-up-display.gschema.xml | 54 +++ ...ll.extensions.heads-up-display.gschema.xml | 54 +++
extensions/heads-up-display/prefs.js | 194 ++++++++ extensions/heads-up-display/prefs.js | 194 ++++++++
extensions/heads-up-display/stylesheet.css | 32 ++ extensions/heads-up-display/stylesheet.css | 32 ++
meson.build | 1 + meson.build | 1 +
8 files changed, 901 insertions(+) 8 files changed, 906 insertions(+)
create mode 100644 extensions/heads-up-display/extension.js create mode 100644 extensions/heads-up-display/extension.js
create mode 100644 extensions/heads-up-display/headsUpMessage.js create mode 100644 extensions/heads-up-display/headsUpMessage.js
create mode 100644 extensions/heads-up-display/meson.build create mode 100644 extensions/heads-up-display/meson.build
@ -24,7 +24,7 @@ Subject: [PATCH] heads-up-display: Add extension for showing persistent heads
diff --git a/extensions/heads-up-display/extension.js b/extensions/heads-up-display/extension.js diff --git a/extensions/heads-up-display/extension.js b/extensions/heads-up-display/extension.js
new file mode 100644 new file mode 100644
index 0000000..574fb09 index 0000000..7cebfa9
--- /dev/null --- /dev/null
+++ b/extensions/heads-up-display/extension.js +++ b/extensions/heads-up-display/extension.js
@@ -0,0 +1,436 @@ @@ -0,0 +1,436 @@
@ -89,7 +89,7 @@ index 0000000..574fb09
+ if (actor.has_allocation()) + if (actor.has_allocation())
+ return; + return;
+ +
+ let workArea = Main.layoutManager.getWorkAreaForMonitor(Main.layoutManager.primaryIndex); + const workArea = Main.layoutManager.getWorkAreaForMonitor(Main.layoutManager.primaryIndex);
+ actorBox.init_rect(workArea.x, workArea.y + this.offset, workArea.width, workArea.height - this.offset); + actorBox.init_rect(workArea.x, workArea.y + this.offset, workArea.width, workArea.height - this.offset);
+ } + }
+}); +});
@ -167,8 +167,8 @@ index 0000000..574fb09
+ } + }
+ +
+ _onWindowMap(shellwm, actor) { + _onWindowMap(shellwm, actor) {
+ let windowObject = actor.meta_window; + const windowObject = actor.meta_window;
+ let windowType = windowObject.get_window_type(); + const windowType = windowObject.get_window_type();
+ +
+ if (windowType != Meta.WindowType.NORMAL) + if (windowType != Meta.WindowType.NORMAL)
+ return; + return;
@ -176,8 +176,8 @@ index 0000000..574fb09
+ if (!this._message || !this._message.visible) + if (!this._message || !this._message.visible)
+ return; + return;
+ +
+ let messageRect = new Meta.Rectangle({ x: this._message.x, y: this._message.y, width: this._message.width, height: this._message.height }); + const messageRect = new Meta.Rectangle({ x: this._message.x, y: this._message.y, width: this._message.width, height: this._message.height });
+ let windowRect = windowObject.get_frame_rect(); + const windowRect = windowObject.get_frame_rect();
+ +
+ if (windowRect.intersect(messageRect)) { + if (windowRect.intersect(messageRect)) {
+ windowObject.move_frame(false, windowRect.x, this._message.y + this._message.height); + windowObject.move_frame(false, windowRect.x, this._message.y + this._message.height);
@ -197,7 +197,7 @@ index 0000000..574fb09
+ if (!Main.sessionMode.hasWindows) + if (!Main.sessionMode.hasWindows)
+ this._messageInhibitedUntilIdle = false; + this._messageInhibitedUntilIdle = false;
+ +
+ let dialog = Main.screenShield._dialog; + const dialog = Main.screenShield._dialog;
+ if (!Main.sessionMode.isGreeter && dialog && !this._screenShieldVisibleId) { + if (!Main.sessionMode.isGreeter && dialog && !this._screenShieldVisibleId) {
+ this._screenShieldVisibleId = dialog._clock.connect('notify::visible', + this._screenShieldVisibleId = dialog._clock.connect('notify::visible',
+ this._updateMessage.bind(this)); + this._updateMessage.bind(this));
@ -234,7 +234,7 @@ index 0000000..574fb09
+ _watchForIdle() { + _watchForIdle() {
+ this._stopWatchingForIdle(); + this._stopWatchingForIdle();
+ +
+ let idleTimeout = this._settings.get_uint('idle-timeout'); + const idleTimeout = this._settings.get_uint('idle-timeout');
+ +
+ this._idleTimeoutChangedId = this._settings.connect('changed::idle-timeout', this._onIdleTimeoutChanged.bind(this)); + this._idleTimeoutChangedId = this._settings.connect('changed::idle-timeout', this._onIdleTimeoutChanged.bind(this));
+ this._idleWatchId = this._idleMonitor.add_idle_watch(idleTimeout * 1000, this._onUserIdle.bind(this)); + this._idleWatchId = this._idleMonitor.add_idle_watch(idleTimeout * 1000, this._onUserIdle.bind(this));
@ -278,7 +278,7 @@ index 0000000..574fb09
+ } + }
+ +
+ if (Main.sessionMode.currentMode === 'unlock-dialog') { + if (Main.sessionMode.currentMode === 'unlock-dialog') {
+ let dialog = Main.screenShield._dialog; + const dialog = Main.screenShield._dialog;
+ if (!this._settings.get_boolean('show-when-locked')) { + if (!this._settings.get_boolean('show-when-locked')) {
+ if (dialog._clock.visible) { + if (dialog._clock.visible) {
+ this._dismissMessage(); + this._dismissMessage();
@ -294,8 +294,8 @@ index 0000000..574fb09
+ } + }
+ } + }
+ +
+ let heading = this._settings.get_string('message-heading'); + const heading = this._settings.get_string('message-heading');
+ let body = this._settings.get_string('message-body'); + const body = this._settings.get_string('message-body');
+ +
+ if (!heading && !body) { + if (!heading && !body) {
+ this._dismissMessage(); + this._dismissMessage();
@ -380,8 +380,8 @@ index 0000000..574fb09
+ Main.messageTray.add_constraint(this._messageTrayConstraint); + Main.messageTray.add_constraint(this._messageTrayConstraint);
+ } + }
+ +
+ let panelBottom = Main.layoutManager.panelBox.y + Main.layoutManager.panelBox.height; + const panelBottom = Main.layoutManager.panelBox.y + Main.layoutManager.panelBox.height;
+ let messageBottom = this._message.y + this._message.height; + const messageBottom = this._message.y + this._message.height;
+ +
+ this._messageTrayConstraint.offset = messageBottom - panelBottom; + this._messageTrayConstraint.offset = messageBottom - panelBottom;
+ global.stage.disconnect(this._updateMessageTrayId); + global.stage.disconnect(this._updateMessageTrayId);
@ -396,7 +396,7 @@ index 0000000..574fb09
+ if (!Main.screenShield || !Main.screenShield._dialog) + if (!Main.screenShield || !Main.screenShield._dialog)
+ return; + return;
+ +
+ let dialog = Main.screenShield._dialog; + const dialog = Main.screenShield._dialog;
+ +
+ if (this._authPromptAllocatedId) { + if (this._authPromptAllocatedId) {
+ dialog.disconnect(this._authPromptAllocatedId); + dialog.disconnect(this._authPromptAllocatedId);
@ -426,7 +426,7 @@ index 0000000..574fb09
+ return; + return;
+ } + }
+ +
+ let dialog = Main.screenShield._dialog; + const dialog = Main.screenShield._dialog;
+ +
+ if (this._updateLoginDialogId) + if (this._updateLoginDialogId)
+ return; + return;
@ -454,7 +454,7 @@ index 0000000..574fb09
+ if (Main.sessionMode.isGreeter) { + if (Main.sessionMode.isGreeter) {
+ this._adaptLoginDialogForMessage(); + this._adaptLoginDialogForMessage();
+ if (!this._authPromptAllocatedId) { + if (!this._authPromptAllocatedId) {
+ let dialog = Main.screenShield._dialog; + const dialog = Main.screenShield._dialog;
+ this._authPromptAllocatedId = dialog._authPrompt.connect('notify::allocation', this._adaptLoginDialogForMessage.bind(this)); + this._authPromptAllocatedId = dialog._authPrompt.connect('notify::allocation', this._adaptLoginDialogForMessage.bind(this));
+ } + }
+ } + }
@ -466,10 +466,10 @@ index 0000000..574fb09
+} +}
diff --git a/extensions/heads-up-display/headsUpMessage.js b/extensions/heads-up-display/headsUpMessage.js diff --git a/extensions/heads-up-display/headsUpMessage.js b/extensions/heads-up-display/headsUpMessage.js
new file mode 100644 new file mode 100644
index 0000000..b1f3f65 index 0000000..87a8c8b
--- /dev/null --- /dev/null
+++ b/extensions/heads-up-display/headsUpMessage.js +++ b/extensions/heads-up-display/headsUpMessage.js
@@ -0,0 +1,165 @@ @@ -0,0 +1,170 @@
+const { Atk, Clutter, GLib, GObject, Pango, St } = imports.gi; +const { Atk, Clutter, GLib, GObject, Pango, St } = imports.gi;
+const Layout = imports.ui.layout; +const Layout = imports.ui.layout;
+const Main = imports.ui.main; +const Main = imports.ui.main;
@ -483,8 +483,7 @@ index 0000000..b1f3f65
+ this._widthCoverage = 0.75; + this._widthCoverage = 0.75;
+ this._heightCoverage = 0.25; + this._heightCoverage = 0.25;
+ +
+ this._workAreasChangedId = global.display.connect('workareas-changed', + this._workAreasChangedId = global.display.connect('workareas-changed', this._getWorkAreaAndMeasureLineHeight.bind(this));
+ this._getWorkAreaAndMeasureLineHeight.bind(this));
+ } + }
+ +
+ _getWorkAreaAndMeasureLineHeight() { + _getWorkAreaAndMeasureLineHeight() {
@ -507,7 +506,7 @@ index 0000000..b1f3f65
+ } + }
+ +
+ vfunc_get_preferred_width(forHeight) { + vfunc_get_preferred_width(forHeight) {
+ let maxWidth = this._widthCoverage * this._workArea.width + const maxWidth = this._widthCoverage * this._workArea.width
+ +
+ let [labelMinimumWidth, labelNaturalWidth] = super.vfunc_get_preferred_width(forHeight); + let [labelMinimumWidth, labelNaturalWidth] = super.vfunc_get_preferred_width(forHeight);
+ +
@ -518,11 +517,11 @@ index 0000000..b1f3f65
+ } + }
+ +
+ vfunc_get_preferred_height(forWidth) { + vfunc_get_preferred_height(forWidth) {
+ let labelHeightUpperBound = this._heightCoverage * this._workArea.height; + const labelHeightUpperBound = this._heightCoverage * this._workArea.height;
+ let numberOfLines = Math.floor(labelHeightUpperBound / this._lineHeight); + const numberOfLines = Math.floor(labelHeightUpperBound / this._lineHeight);
+ this._numberOfLines = Math.max(numberOfLines, 1); + this._numberOfLines = Math.max(numberOfLines, 1);
+ +
+ let maxHeight = this._lineHeight * this._numberOfLines; + const maxHeight = this._lineHeight * this._numberOfLines;
+ +
+ let [labelMinimumHeight, labelNaturalHeight] = super.vfunc_get_preferred_height(forWidth); + let [labelMinimumHeight, labelNaturalHeight] = super.vfunc_get_preferred_height(forWidth);
+ +
@ -533,8 +532,10 @@ index 0000000..b1f3f65
+ } + }
+ +
+ destroy() { + destroy() {
+ if (this._workAreasChangedId) + if (this._workAreasChangedId) {
+ global.display.disconnect(this._workAreasChangedId); + global.display.disconnect(this._workAreasChangedId);
+ this._workAreasChangedId = 0;
+ }
+ +
+ super.destroy(); + super.destroy();
+ } + }
@ -557,9 +558,9 @@ index 0000000..b1f3f65
+ this._panelAllocationId = Main.layoutManager.panelBox.connect('notify::allocation', this._alignWithPanel.bind(this)); + this._panelAllocationId = Main.layoutManager.panelBox.connect('notify::allocation', this._alignWithPanel.bind(this));
+ this.connect('notify::allocation', this._alignWithPanel.bind(this)); + this.connect('notify::allocation', this._alignWithPanel.bind(this));
+ +
+ let contentsBox = new St.BoxLayout({ style_class: 'heads-up-message-content', + const contentsBox = new St.BoxLayout({ style_class: 'heads-up-message-content',
+ vertical: true, + vertical: true,
+ x_align: Clutter.ActorAlign.CENTER }); + x_align: Clutter.ActorAlign.CENTER });
+ this.add_actor(contentsBox); + this.add_actor(contentsBox);
+ +
+ this.headingLabel = new St.Label({ style_class: 'heads-up-message-heading', + this.headingLabel = new St.Label({ style_class: 'heads-up-message-heading',
@ -575,7 +576,6 @@ index 0000000..b1f3f65
+ contentsBox.add_actor(this.bodyLabel); + contentsBox.add_actor(this.bodyLabel);
+ +
+ this.setBody(body); + this.setBody(body);
+ this.bodyLabel.clutter_text.label = this.bodyLabel;
+ } + }
+ +
+ vfunc_parent_set(oldParent) { + vfunc_parent_set(oldParent) {
@ -603,7 +603,7 @@ index 0000000..b1f3f65
+ +
+ setHeading(text) { + setHeading(text) {
+ if (text) { + if (text) {
+ let heading = text ? text.replace(/\n/g, ' ') : ''; + const heading = text ? text.replace(/\n/g, ' ') : '';
+ this.headingLabel.text = heading; + this.headingLabel.text = heading;
+ this.headingLabel.visible = true; + this.headingLabel.visible = true;
+ } else { + } else {
@ -632,6 +632,11 @@ index 0000000..b1f3f65
+ this._afterUpdateId = 0; + this._afterUpdateId = 0;
+ } + }
+ +
+ if (this.bodyLabel) {
+ this.bodyLabel.destroy();
+ this.bodyLabel = null;
+ }
+
+ super.destroy(); + super.destroy();
+ } + }
+}); +});
@ -728,7 +733,7 @@ index 0000000..ea1f377
+</schemalist> +</schemalist>
diff --git a/extensions/heads-up-display/prefs.js b/extensions/heads-up-display/prefs.js diff --git a/extensions/heads-up-display/prefs.js b/extensions/heads-up-display/prefs.js
new file mode 100644 new file mode 100644
index 0000000..42b0efe index 0000000..a7106e0
--- /dev/null --- /dev/null
+++ b/extensions/heads-up-display/prefs.js +++ b/extensions/heads-up-display/prefs.js
@@ -0,0 +1,194 @@ @@ -0,0 +1,194 @@
@ -788,17 +793,17 @@ index 0000000..42b0efe
+ +
+function init() { +function init() {
+ settings = ExtensionUtils.getSettings("org.gnome.shell.extensions.heads-up-display"); + settings = ExtensionUtils.getSettings("org.gnome.shell.extensions.heads-up-display");
+ let cssProvider = new Gtk.CssProvider(); + const cssProvider = new Gtk.CssProvider();
+ cssProvider.load_from_data(cssData); + cssProvider.load_from_data(cssData);
+ +
+ let display = Gdk.Display.get_default(); + const display = Gdk.Display.get_default();
+ Gtk.StyleContext.add_provider_for_display(display, cssProvider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION); + Gtk.StyleContext.add_provider_for_display(display, cssProvider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
+} +}
+ +
+function buildPrefsWidget() { +function buildPrefsWidget() {
+ ExtensionUtils.initTranslations(); + ExtensionUtils.initTranslations();
+ +
+ let contents = new Gtk.Box({ + const contents = new Gtk.Box({
+ orientation: Gtk.Orientation.VERTICAL, + orientation: Gtk.Orientation.VERTICAL,
+ spacing: 10, + spacing: 10,
+ visible: true, + visible: true,
@ -810,14 +815,14 @@ index 0000000..42b0efe
+ contents.append(buildSpinButton('idle-timeout', _("Seconds after user goes idle before reshowing message"))); + contents.append(buildSpinButton('idle-timeout', _("Seconds after user goes idle before reshowing message")));
+ contents.get_style_context().add_class("contents"); + contents.get_style_context().add_class("contents");
+ +
+ let outerMessageBox = new Gtk.Box({ + const outerMessageBox = new Gtk.Box({
+ orientation: Gtk.Orientation.VERTICAL, + orientation: Gtk.Orientation.VERTICAL,
+ spacing: 5, + spacing: 5,
+ visible: true, + visible: true,
+ }); + });
+ contents.append(outerMessageBox); + contents.append(outerMessageBox);
+ +
+ let messageLabel = new Gtk.Label({ + const messageLabel = new Gtk.Label({
+ label: 'Message', + label: 'Message',
+ halign: Gtk.Align.START, + halign: Gtk.Align.START,
+ visible: true, + visible: true,
@ -825,7 +830,7 @@ index 0000000..42b0efe
+ messageLabel.get_style_context().add_class("message-label"); + messageLabel.get_style_context().add_class("message-label");
+ outerMessageBox.append(messageLabel); + outerMessageBox.append(messageLabel);
+ +
+ let innerMessageBox = new Gtk.Box({ + const innerMessageBox = new Gtk.Box({
+ orientation: Gtk.Orientation.VERTICAL, + orientation: Gtk.Orientation.VERTICAL,
+ spacing: 0, + spacing: 0,
+ visible: true, + visible: true,
@ -839,7 +844,7 @@ index 0000000..42b0efe
+} +}
+ +
+function buildTextView(key, labelText) { +function buildTextView(key, labelText) {
+ let textView = new Gtk.TextView({ + const textView = new Gtk.TextView({
+ accepts_tab: false, + accepts_tab: false,
+ visible: true, + visible: true,
+ wrap_mode: Gtk.WrapMode.WORD, + wrap_mode: Gtk.WrapMode.WORD,
@ -847,23 +852,23 @@ index 0000000..42b0efe
+ +
+ settings.bind(key, textView.get_buffer(), 'text', Gio.SettingsBindFlags.DEFAULT); + settings.bind(key, textView.get_buffer(), 'text', Gio.SettingsBindFlags.DEFAULT);
+ +
+ let scrolledWindow = new Gtk.ScrolledWindow({ + const scrolledWindow = new Gtk.ScrolledWindow({
+ hexpand: true, + hexpand: true,
+ vexpand: true, + vexpand: true,
+ visible: true, + visible: true,
+ }); + });
+ let styleContext = scrolledWindow.get_style_context(); + const styleContext = scrolledWindow.get_style_context();
+ styleContext.add_class("margins"); + styleContext.add_class("margins");
+ +
+ scrolledWindow.set_child(textView); + scrolledWindow.set_child(textView);
+ return scrolledWindow; + return scrolledWindow;
+} +}
+function buildEntry(key, labelText) { +function buildEntry(key, labelText) {
+ let entry = new Gtk.Entry({ + const entry = new Gtk.Entry({
+ placeholder_text: labelText, + placeholder_text: labelText,
+ visible: true, + visible: true,
+ }); + });
+ let styleContext = entry.get_style_context(); + const styleContext = entry.get_style_context();
+ styleContext.add_class("no-border"); + styleContext.add_class("no-border");
+ settings.bind(key, entry, 'text', Gio.SettingsBindFlags.DEFAULT); + settings.bind(key, entry, 'text', Gio.SettingsBindFlags.DEFAULT);
+ +
@ -873,18 +878,18 @@ index 0000000..42b0efe
+} +}
+ +
+function buildSpinButton(key, labelText) { +function buildSpinButton(key, labelText) {
+ let hbox = new Gtk.Box({ + const hbox = new Gtk.Box({
+ orientation: Gtk.Orientation.HORIZONTAL, + orientation: Gtk.Orientation.HORIZONTAL,
+ spacing: 10, + spacing: 10,
+ visible: true, + visible: true,
+ }); + });
+ let label = new Gtk.Label({ + const label = new Gtk.Label({
+ hexpand: true, + hexpand: true,
+ label: labelText, + label: labelText,
+ visible: true, + visible: true,
+ xalign: 0, + xalign: 0,
+ }); + });
+ let adjustment = new Gtk.Adjustment({ + const adjustment = new Gtk.Adjustment({
+ value: 0, + value: 0,
+ lower: 0, + lower: 0,
+ upper: 2147483647, + upper: 2147483647,
@ -892,7 +897,7 @@ index 0000000..42b0efe
+ page_increment: 60, + page_increment: 60,
+ page_size: 60, + page_size: 60,
+ }); + });
+ let spinButton = new Gtk.SpinButton({ + const spinButton = new Gtk.SpinButton({
+ adjustment: adjustment, + adjustment: adjustment,
+ climb_rate: 1.0, + climb_rate: 1.0,
+ digits: 0, + digits: 0,
@ -907,18 +912,18 @@ index 0000000..42b0efe
+} +}
+ +
+function buildSwitch(key, labelText) { +function buildSwitch(key, labelText) {
+ let hbox = new Gtk.Box({ + const hbox = new Gtk.Box({
+ orientation: Gtk.Orientation.HORIZONTAL, + orientation: Gtk.Orientation.HORIZONTAL,
+ spacing: 10, + spacing: 10,
+ visible: true, + visible: true,
+ }); + });
+ let label = new Gtk.Label({ + const label = new Gtk.Label({
+ hexpand: true, + hexpand: true,
+ label: labelText, + label: labelText,
+ visible: true, + visible: true,
+ xalign: 0, + xalign: 0,
+ }); + });
+ let switcher = new Gtk.Switch({ + const switcher = new Gtk.Switch({
+ active: settings.get_boolean(key), + active: settings.get_boolean(key),
+ }); + });
+ settings.bind(key, switcher, 'active', Gio.SettingsBindFlags.DEFAULT); + settings.bind(key, switcher, 'active', Gio.SettingsBindFlags.DEFAULT);
@ -968,7 +973,34 @@ diff --git a/meson.build b/meson.build
index 78dee5b..ad5949b 100644 index 78dee5b..ad5949b 100644
--- a/meson.build --- a/meson.build
+++ b/meson.build +++ b/meson.build
@@ -38,6 +38,7 @@ classic_extensions = [ @@ -11,60 +11,61 @@ gnome = import('gnome')
i18n = import('i18n')
datadir = get_option('datadir')
shelldir = join_paths(datadir, 'gnome-shell')
extensiondir = join_paths(shelldir, 'extensions')
modedir = join_paths(shelldir, 'modes')
themedir = join_paths(shelldir, 'theme')
schemadir = join_paths(datadir, 'glib-2.0', 'schemas')
sessiondir = join_paths(datadir, 'gnome-session', 'sessions')
xsessiondir = join_paths(datadir, 'xsessions')
ver_arr = meson.project_version().split('.')
shell_version = ver_arr[0]
uuid_suffix = '@gnome-shell-extensions.gcampax.github.com'
classic_extensions = [
'apps-menu',
'desktop-icons',
'places-menu',
'launch-new-instance',
'top-icons',
'window-list'
]
default_extensions = classic_extensions default_extensions = classic_extensions
default_extensions += [ default_extensions += [
'drive-menu', 'drive-menu',
@ -976,6 +1008,33 @@ index 78dee5b..ad5949b 100644
'screenshot-window-sizer', 'screenshot-window-sizer',
'windowsNavigator', 'windowsNavigator',
'workspace-indicator' 'workspace-indicator'
-- ]
2.32.0
all_extensions = default_extensions
all_extensions += [
'auto-move-windows',
'dash-to-dock',
'native-window-placement',
'panel-favorites',
'systemMonitor',
'updates-dialog',
'user-theme'
]
enabled_extensions = get_option('enable_extensions')
if enabled_extensions.length() == 0
set = get_option('extension_set')
if set == 'classic'
enabled_extensions += classic_extensions
elif set == 'default'
enabled_extensions += default_extensions
elif set == 'all'
enabled_extensions += all_extensions
endif
endif
--
2.31.1