From 9c6747174b32ce52ddb7b1e4b50f87f9c737547c Mon Sep 17 00:00:00 2001 From: Michael Webster Date: Mon, 20 Jan 2025 12:28:50 -0500 Subject: [PATCH 01/25] cinnamon-calendar-server.py: Refresh remote calendars when the event list is opened. The applet relies on evolution-data-server being aware of changes and keeping up-to-date. Unfortunately, online accounts aren't polled often unless a real client is launched (like gnome-calendar). Enable client refreshing in the cinnamon-calendar-server process and trigger it when the applet is opened. This should refresh the applet event view with any recent updates, even from remote sources. Fixes #12652. --- calendar-server/cinnamon-calendar-server.py | 31 +++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/calendar-server/cinnamon-calendar-server.py b/calendar-server/cinnamon-calendar-server.py index 1aa8cac794..9145f6e207 100755 --- a/calendar-server/cinnamon-calendar-server.py +++ b/calendar-server/cinnamon-calendar-server.py @@ -36,10 +36,20 @@ def __init__(self, source, client): self.source = source self.client = client + self.syncing = False + self.extension = source.get_extension(EDataServer.SOURCE_EXTENSION_CALENDAR) self.color = self.extension.get_color() self.color_prop_listener_id = self.extension.connect("notify::color", self.ext_color_prop_changed) + # This process generally won't stay running for more than 30 seconds or so, + # but enabling refresh lets us force a timeout and re-poll. + if self.client.check_capability(ECal.STATIC_CAPABILITY_REFRESH_SUPPORTED): + self.refresh = self.source.get_extension(EDataServer.SOURCE_EXTENSION_REFRESH) + self.refresh.set_enabled(True) + self.refresh.set_interval_minutes(1) + self.source.refresh_add_timeout(None, self.on_refresh_timeout) + self.start = None self.end = None @@ -47,6 +57,24 @@ def __init__(self, source, client): self.view_cancellable = None self.events = [] + def try_sync(self): + if self.syncing: + return + + if self.client.check_capability(ECal.STATIC_CAPABILITY_REFRESH_SUPPORTED): + self.source.refresh_force_timeout() + + def on_refresh_timeout(self, source, data=None): + self.client.refresh(None, self.on_sync_complete) + + def on_sync_complete(self, client, result, data=None): + try: + self.client.refresh_finish(result) + except GLib.Error as e: + print(f"Error refreshing calendar '{self.source.get_display_name()}':", e.message) + + self.syncing = False + def destroy(self): self.extension.disconnect(self.color_prop_listener_id) self.extension = None @@ -223,6 +251,9 @@ def handle_set_time_range(self, iface, inv, time_since, time_until, force_reload self.interface.complete_set_time_range(inv) return True + for calendar in self.calendars.values(): + calendar.try_sync() + self.current_month_start = time_since self.current_month_end = time_until From 913dba3d1483c68add5b506082df6b3af102f717 Mon Sep 17 00:00:00 2001 From: Michael Webster Date: Fri, 24 Jan 2025 13:00:17 -0500 Subject: [PATCH 02/25] windowManager.js: Fix cleanup of WorkspaceOsd instances. The monitor index is being passed, but can't be assumed to be the array index also. Track by key/values instead. ref: https://bugzilla.redhat.com/show_bug.cgi?id=2341980 --- js/ui/windowManager.js | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/js/ui/windowManager.js b/js/ui/windowManager.js index 77c4cb424e..bd851533a4 100644 --- a/js/ui/windowManager.js +++ b/js/ui/windowManager.js @@ -339,7 +339,7 @@ var WindowManager = class WindowManager { this._dimmedWindows = []; this._animationBlockCount = 0; this._switchData = null; - this._workspaceOsds = []; + this._workspaceOsds = {}; this._cinnamonwm.connect('kill-window-effects', (cinnamonwm, actor) => { this._unminimizeWindowDone(cinnamonwm, actor); @@ -1322,12 +1322,11 @@ var WindowManager = class WindowManager { } _showWorkspaceOSDForMonitor(index, currentWorkspaceIndex) { - if (this._workspaceOsds[index] == null) { + if (this._workspaceOsds[index] === undefined) { let osd = new WorkspaceOsd.WorkspaceOsd(index); - this._workspaceOsds.push(osd); + this._workspaceOsds[index] = osd; osd.connect('destroy', () => { - this._workspaceOsds[index] = null; - this._workspaceOsds.splice(index, 1); + this._workspaceOsds[index] = undefined; }); } From 627a419c724210dc103ba6e0c55d6ce381b9b07b Mon Sep 17 00:00:00 2001 From: Michael Webster Date: Thu, 6 Feb 2025 10:04:36 -0500 Subject: [PATCH 03/25] st-entry.c: Fix argument order for _st_paint_shadow_with_opacity(). Fixes #12712. --- src/st/st-entry.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/st/st-entry.c b/src/st/st-entry.c index 2cb7171f23..3b4b59b5aa 100644 --- a/src/st/st-entry.c +++ b/src/st/st-entry.c @@ -963,8 +963,8 @@ st_entry_paint (ClutterActor *actor, clutter_paint_context_get_framebuffer (paint_context); _st_paint_shadow_with_opacity (shadow_spec, - framebuffer, priv->text_shadow_material, + framebuffer, &allocation, clutter_actor_get_paint_opacity (priv->entry)); } From ccb036f5919a9fff1dbd9aa8d9616865451c9e13 Mon Sep 17 00:00:00 2001 From: Ilham Ifham <127387559+ilhamifham@users.noreply.github.com> Date: Thu, 6 Feb 2025 21:25:54 +0530 Subject: [PATCH 04/25] Fixed issue with grouped-window-list-thumbnail-menu hover (#12666) --- data/theme/cinnamon-sass/widgets/_windowlist.scss | 2 ++ 1 file changed, 2 insertions(+) diff --git a/data/theme/cinnamon-sass/widgets/_windowlist.scss b/data/theme/cinnamon-sass/widgets/_windowlist.scss index 9461f3897c..a23da85c5c 100644 --- a/data/theme/cinnamon-sass/widgets/_windowlist.scss +++ b/data/theme/cinnamon-sass/widgets/_windowlist.scss @@ -72,6 +72,8 @@ &:selected { background-color: $light_bg_color; + &:only-child, + &:first-child:last-child { border-radius: $base_border_radius; } &:first-child { border-radius: $base_border_radius 0 0 $base_border_radius; } &:last-child { border-radius: 0 $base_border_radius $base_border_radius 0; } } From f5b87e696e88cec7fad1aff99aa8a1d3677f28bb Mon Sep 17 00:00:00 2001 From: Clement Lefebvre Date: Fri, 7 Feb 2025 18:35:31 +0000 Subject: [PATCH 05/25] 6.4.7 --- debian/changelog | 12 ++++++++++++ meson.build | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 9e8b89c6ba..561ccb6b2e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,15 @@ +cinnamon (6.4.7) xia; urgency=medium + + [ Michael Webster ] + * cinnamon-calendar-server.py: Refresh remote calendars when the event list is opened. + * windowManager.js: Fix cleanup of WorkspaceOsd instances. + * st-entry.c: Fix argument order for _st_paint_shadow_with_opacity(). + + [ Ilham Ifham ] + * Fixed issue with grouped-window-list-thumbnail-menu hover (#12666) + + -- Clement Lefebvre Fri, 07 Feb 2025 18:35:20 +0000 + cinnamon (6.4.6) xia; urgency=medium * theme: Give the endSessionDialog a min-width diff --git a/meson.build b/meson.build index cdd521dd52..c15367dfd1 100644 --- a/meson.build +++ b/meson.build @@ -1,4 +1,4 @@ -project('Cinnamon', 'c', version : '6.4.6', meson_version : '>=0.56.0') +project('Cinnamon', 'c', version : '6.4.7', meson_version : '>=0.56.0') gnome = import('gnome') i18n = import('i18n') From 667afb5ed4f0aa9059a6b9b144004ca63d838893 Mon Sep 17 00:00:00 2001 From: JosephMcc Date: Mon, 10 Feb 2025 11:32:25 -0800 Subject: [PATCH 06/25] gestures: Show the OSD when using gestures to change volume (#12731) This was missed during the port to the new OSD. Using gestures to change the volume was also always using the max amplified volume. Fix this to respect the users setting while we are at it. Closes: https://github.com/linuxmint/cinnamon/issues/12646 --- js/ui/gestures/actions.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/js/ui/gestures/actions.js b/js/ui/gestures/actions.js index 51c8d31785..93bf6bacb9 100644 --- a/js/ui/gestures/actions.js +++ b/js/ui/gestures/actions.js @@ -312,7 +312,13 @@ var VolumeAction = class extends BaseAction { this.ignoring = true; - this.max_volume = mixer.get_vol_max_amplified(); + const soundSettings = new Gio.Settings({ schema_id: "org.cinnamon.desktop.sound" }); + + if(soundSettings.get_boolean("allow-amplified-volume")) + this.max_volume = mixer.get_vol_max_amplified(); + else + this.max_volume = mixer.get_vol_max_norm(); + this.pct_step = Math.ceil(this.max_volume / 100); } @@ -350,7 +356,7 @@ var VolumeAction = class extends BaseAction { sink.change_is_muted(false); } - Main.osdWindowManager.show(-1, this._get_volume_icon(int_pct, false), int_pct, false); + Main.osdWindowManager.show(-1, this._get_volume_icon(int_pct, false), null, int_pct, false); } _toggle_muted() { @@ -364,7 +370,7 @@ var VolumeAction = class extends BaseAction { sink.change_is_muted(!is_muted); const percent = !is_muted ? 0 : (sink.volume / this.pct_step).clamp(0, 100); - Main.osdWindowManager.show(-1, this._get_volume_icon(percent), percent, false); + Main.osdWindowManager.show(-1, this._get_volume_icon(percent), null, percent, false); } _get_volume_icon(volume_pct) { From 351366229df52729ef47109fcb357364f6d5f6fc Mon Sep 17 00:00:00 2001 From: Timothy Feierabend Date: Mon, 17 Feb 2025 12:10:01 -0600 Subject: [PATCH 07/25] Bugfix for Cinnamon issue 12707 (#12734) --- files/usr/share/cinnamon/cinnamon-settings/modules/cs_info.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/files/usr/share/cinnamon/cinnamon-settings/modules/cs_info.py b/files/usr/share/cinnamon/cinnamon-settings/modules/cs_info.py index 5b7625c7ed..ccc46e04d7 100755 --- a/files/usr/share/cinnamon/cinnamon-settings/modules/cs_info.py +++ b/files/usr/share/cinnamon/cinnamon-settings/modules/cs_info.py @@ -42,7 +42,7 @@ def getGraphicsInfos(): envpath = os.environ["PATH"] os.environ["PATH"] = envpath + ":/usr/local/sbin:/usr/sbin:/sbin" for card in getProcessOut("lspci"): - for prefix in ["VGA compatible controller:", "3D controller:"]: + for prefix in ["VGA compatible controller:", "3D controller:", "Display controller:"]: if prefix in card: cardName = card.split(prefix)[1].split("(rev")[0].strip() cards[count] = cardName From 256430a6b63aa9114557c709bd757c3cd2d08ce0 Mon Sep 17 00:00:00 2001 From: Clement Lefebvre Date: Mon, 24 Feb 2025 15:24:54 +0000 Subject: [PATCH 08/25] 6.4.8 --- debian/changelog | 10 ++++++++++ meson.build | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 561ccb6b2e..39ec960486 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,13 @@ +cinnamon (6.4.8) xia; urgency=medium + + [ JosephMcc ] + * gestures: Show the OSD when using gestures to change volume (#12731) + + [ Timothy Feierabend ] + * Bugfix for Cinnamon issue 12707 (#12734) + + -- Clement Lefebvre Mon, 24 Feb 2025 15:24:47 +0000 + cinnamon (6.4.7) xia; urgency=medium [ Michael Webster ] diff --git a/meson.build b/meson.build index c15367dfd1..f8fbda5543 100644 --- a/meson.build +++ b/meson.build @@ -1,4 +1,4 @@ -project('Cinnamon', 'c', version : '6.4.7', meson_version : '>=0.56.0') +project('Cinnamon', 'c', version : '6.4.8', meson_version : '>=0.56.0') gnome = import('gnome') i18n = import('i18n') From 8e4145a6f3e2bb7ff1143a0be8f49b769dce7df2 Mon Sep 17 00:00:00 2001 From: Michael Webster <262776+mtwebster@users.noreply.github.com> Date: Fri, 23 Jan 2026 12:00:07 -0500 Subject: [PATCH 09/25] placesManager.js: Go back to having isRemovable() call can_unmount(). (#13464) There isn't enough consistency between various removable device types and filesystems to be able to rely on can_eject() here. ref: https://github.com/linuxmint/cinnamon/issues/13370 --- js/ui/placesManager.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/ui/placesManager.js b/js/ui/placesManager.js index 0b8b271240..8e232d8ed3 100644 --- a/js/ui/placesManager.js +++ b/js/ui/placesManager.js @@ -105,7 +105,7 @@ PlaceDeviceInfo.prototype = { }, isRemovable: function() { - return this._mount.can_eject(); + return this._mount.can_unmount(); }, remove: function() { From 45747176c2d4f526a8d2ef8095d2082bfe088e6c Mon Sep 17 00:00:00 2001 From: fredcw Date: Fri, 23 Jan 2026 17:03:09 +0000 Subject: [PATCH 10/25] menu applet: remove 'force show panel' toggle as ... (#13394) ... option was removed in https://github.com/linuxmint/cinnamon/pull/11779/changes --- .../share/cinnamon/applets/menu@cinnamon.org/applet.js | 4 ---- .../applets/menu@cinnamon.org/settings-schema.json | 8 +------- 2 files changed, 1 insertion(+), 11 deletions(-) diff --git a/files/usr/share/cinnamon/applets/menu@cinnamon.org/applet.js b/files/usr/share/cinnamon/applets/menu@cinnamon.org/applet.js index e2d290d0d9..85a7e77b3b 100644 --- a/files/usr/share/cinnamon/applets/menu@cinnamon.org/applet.js +++ b/files/usr/share/cinnamon/applets/menu@cinnamon.org/applet.js @@ -1247,7 +1247,6 @@ class CinnamonMenuApplet extends Applet.TextIconApplet { this._pathCompleter.set_dirs_only(false); this.contextMenu = null; this.lastSelectedCategory = null; - this.settings.bind("force-show-panel", "forceShowPanel"); this.orderDirty = false; @@ -1280,9 +1279,6 @@ class CinnamonMenuApplet extends Applet.TextIconApplet { _updateKeybinding() { Main.keybindingManager.addXletHotKey(this, "overlay-key", this.overlayKey, () => { if (!Main.overview.visible && !Main.expo.visible) { - if (this.forceShowPanel && !this.isOpen) { - this.panel.peekPanel(); - } this.menu.toggle_with_options(this.enableAnimation); } }); diff --git a/files/usr/share/cinnamon/applets/menu@cinnamon.org/settings-schema.json b/files/usr/share/cinnamon/applets/menu@cinnamon.org/settings-schema.json index 7de182792d..c9fa8c290e 100644 --- a/files/usr/share/cinnamon/applets/menu@cinnamon.org/settings-schema.json +++ b/files/usr/share/cinnamon/applets/menu@cinnamon.org/settings-schema.json @@ -25,7 +25,7 @@ "behavior-panel" : { "type" : "section", "title" : "Panel", - "keys" : ["overlay-key", "activate-on-hover", "hover-delay", "force-show-panel", "enable-animation"] + "keys" : ["overlay-key", "activate-on-hover", "hover-delay", "enable-animation"] }, "appearance-menu" : { "type" : "section", @@ -217,12 +217,6 @@ "default" : true, "description": "Enable autoscrolling in application list" }, - "force-show-panel" : { - "type" : "switch", - "default" : true, - "description": "Force the panel to be visible when opening the menu", - "tooltip": "Opening the menu will also show the main panel (which may be auto-hidden)." - }, "activate-on-hover" : { "type" : "switch", "default" : false, From 118bd4481e7892bfac842d4ccbcf66e2860988b1 Mon Sep 17 00:00:00 2001 From: fredcw Date: Fri, 23 Jan 2026 17:15:27 +0000 Subject: [PATCH 11/25] menu applet: fix sidebar separator showing inconsistently (#13438) --- .../usr/share/cinnamon/applets/menu@cinnamon.org/applet.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/files/usr/share/cinnamon/applets/menu@cinnamon.org/applet.js b/files/usr/share/cinnamon/applets/menu@cinnamon.org/applet.js index 85a7e77b3b..41c5afb474 100644 --- a/files/usr/share/cinnamon/applets/menu@cinnamon.org/applet.js +++ b/files/usr/share/cinnamon/applets/menu@cinnamon.org/applet.js @@ -1215,7 +1215,6 @@ class CinnamonMenuApplet extends Applet.TextIconApplet { }); this._searchIconClickedId = 0; this._applicationsButtons = []; - this._favoriteAppButtons = []; this._placesButtons = []; this._transientButtons = []; this.recentButton = null; @@ -2178,20 +2177,20 @@ class CinnamonMenuApplet extends Applet.TextIconApplet { // FAV APPS this.favoriteAppsBox.destroy_all_children(); - this._favoriteAppButtons = []; + let showingSomeFavorites = false; let launchers = global.settings.get_strv('favorite-apps'); for (let launcher of launchers) { let app = appsys.lookup_app(launcher); if (app) { let button = new FavoritesButton(this, app); - this._favoriteAppButtons[app] = button; + showingSomeFavorites = true; this.favoriteAppsBox.add(button.actor, { y_align: St.Align.END, y_fill: false }); } } this.favoriteAppsBox.queue_relayout(); // Separator between favs and places - if (this._placesButtons.length > 0 && this._favoriteDocButtons.length > 0) + if (this._placesButtons.length > 0 && showingSomeFavorites) this.placesSeparator.show(); else this.placesSeparator.hide(); From bc5c48924cfa13b584fa897bb02157f5fd7d40b2 Mon Sep 17 00:00:00 2001 From: Clement Lefebvre Date: Fri, 23 Jan 2026 13:04:15 +0000 Subject: [PATCH 12/25] printer applet: Switch to XSI icons --- .../cinnamon/applets/printers@cinnamon.org/applet.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/files/usr/share/cinnamon/applets/printers@cinnamon.org/applet.js b/files/usr/share/cinnamon/applets/printers@cinnamon.org/applet.js index a4048a45d1..83f94f501a 100644 --- a/files/usr/share/cinnamon/applets/printers@cinnamon.org/applet.js +++ b/files/usr/share/cinnamon/applets/printers@cinnamon.org/applet.js @@ -39,7 +39,7 @@ class CinnamonPrintersApplet extends Applet.TextIconApplet { this.updating = false; this.showLater = false; this.printers = []; - this.set_applet_icon_symbolic_name('printer'); + this.set_applet_icon_symbolic_name('xsi-printer'); this.update(); } @@ -129,7 +129,7 @@ class CinnamonPrintersApplet extends Applet.TextIconApplet { this.jobsCount = 0; this.printersCount = 0; this.menu.removeAll(); - let printers = new PopupMenu.PopupIconMenuItem(_("Printers"), 'printer', St.IconType.SYMBOLIC); + let printers = new PopupMenu.PopupIconMenuItem(_("Printers"), 'xsi-printer', St.IconType.SYMBOLIC); printers.connect('activate', Lang.bind(this, this.onShowPrintersClicked)); this.menu.addMenuItem(printers); this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem); @@ -203,7 +203,7 @@ class CinnamonPrintersApplet extends Applet.TextIconApplet { jobItem.connect('activate', Lang.bind(jobItem, this.onCancelJobClicked)); this.cancelSubMenu.addMenuItem(jobItem); if(out2[out2.indexOf(job) - 2] != 'active' && out2[out2.indexOf(job) - 2] != '1st') { - sendJobs.push(new PopupMenu.PopupIconMenuItem(text, 'go-up', St.IconType.SYMBOLIC)); + sendJobs.push(new PopupMenu.PopupIconMenuItem(text, 'xsi-go-up', St.IconType.SYMBOLIC)); sendJobs[sendJobs.length - 1].job = job; sendJobs[sendJobs.length - 1].connect('activate', Lang.bind(sendJobs[sendJobs.length - 1], this.onSendToFrontClicked)); } @@ -246,11 +246,11 @@ class CinnamonPrintersApplet extends Applet.TextIconApplet { this.set_applet_tooltip(_("Printers")); } if(this.printWarning) { - this.set_applet_icon_symbolic_name('printer-warning'); + this.set_applet_icon_symbolic_name('xsi-printer-warning'); } else if(this.jobsCount > 0) { - this.set_applet_icon_symbolic_name('printer-printing'); + this.set_applet_icon_symbolic_name('xsi-printer-printing'); } else { - this.set_applet_icon_symbolic_name('printer'); + this.set_applet_icon_symbolic_name('xsi-printer'); } })); })) From 0ceeab9a6c2971d2bbd5fc3bc949d242386fcf34 Mon Sep 17 00:00:00 2001 From: Clement Lefebvre Date: Fri, 23 Jan 2026 14:50:07 +0000 Subject: [PATCH 13/25] network applet: Switch to XSI icons --- .../cinnamon/applets/network@cinnamon.org/applet.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/files/usr/share/cinnamon/applets/network@cinnamon.org/applet.js b/files/usr/share/cinnamon/applets/network@cinnamon.org/applet.js index 85d1e579b2..9f67e1133b 100644 --- a/files/usr/share/cinnamon/applets/network@cinnamon.org/applet.js +++ b/files/usr/share/cinnamon/applets/network@cinnamon.org/applet.js @@ -150,12 +150,12 @@ NMNetworkMenuItem.prototype = { _getIcon: function() { if (this.bestAP.mode == NM80211Mode.ADHOC) - return 'network-workgroup'; + return 'xsi-network-workgroup'; else if (this.bestAP._secType != NMAccessPointSecurity.UNKNOWN && this.bestAP._secType != NMAccessPointSecurity.NONE) - return 'network-wireless-signal-' + signalToIcon(this.bestAP.strength) + '-secure'; + return 'xsi-network-wireless-signal-' + signalToIcon(this.bestAP.strength) + '-secure'; else - return 'network-wireless-signal-' + signalToIcon(this.bestAP.strength); + return 'xsi-network-wireless-signal-' + signalToIcon(this.bestAP.strength); }, updateAccessPoints: function(accessPoints) { @@ -882,7 +882,7 @@ NMDeviceModem.prototype = { }, _getSignalIcon: function() { - return 'network-cellular-signal-' + signalToIcon(this.mobileDevice.signal_quality); + return 'xsi-network-cellular-signal-' + signalToIcon(this.mobileDevice.signal_quality); }, _createSection: function() { @@ -1653,7 +1653,7 @@ NMDeviceWireless.prototype = { if (this._activeNetwork) this._activeConnectionItem = new NMNetworkMenuItem(this._activeNetwork.accessPoints, undefined, { reactive: false }); else - this._activeConnectionItem = new PopupMenu.PopupImageMenuItem(this._activeConnection.connection._name, 'network-wireless-connected', { reactive: false }); + this._activeConnectionItem = new PopupMenu.PopupImageMenuItem(this._activeConnection.connection._name, 'xsi-network-wireless-connected', { reactive: false }); } else { // We cannot read the connection (due to ACL, or API incompatibility), but we still show signal if we have it if (this._activeNetwork) @@ -1661,7 +1661,7 @@ NMDeviceWireless.prototype = { { reactive: false }); else this._activeConnectionItem = new PopupMenu.PopupImageMenuItem(_("Connected (private)"), - 'network-wireless-connected', + 'xsi-network-wireless-connected', { reactive: false }); } this._activeConnectionItem.setShowDot(true); From 9a58dfb2ee8a64ed9dd5ac89b99225648df56ea3 Mon Sep 17 00:00:00 2001 From: Clement Lefebvre Date: Fri, 23 Jan 2026 14:50:56 +0000 Subject: [PATCH 14/25] Switch to XSI icons --- .../applets/nightlight@cinnamon.org/applet.js | 4 ++-- .../panel-launchers@cinnamon.org/applet.js | 14 ++++++------- .../applets/slideshow@cinnamon.org/applet.js | 8 ++++---- .../applets/trash@cinnamon.org/applet.js | 10 +++++----- .../applets/user@cinnamon.org/applet.js | 14 ++++++------- .../window-list@cinnamon.org/applet.js | 20 +++++++++---------- .../workspace-switcher@cinnamon.org/applet.js | 2 +- .../applets/xrandr@cinnamon.org/applet.js | 2 +- 8 files changed, 37 insertions(+), 37 deletions(-) diff --git a/files/usr/share/cinnamon/applets/nightlight@cinnamon.org/applet.js b/files/usr/share/cinnamon/applets/nightlight@cinnamon.org/applet.js index d285255079..7ce1d6df1e 100644 --- a/files/usr/share/cinnamon/applets/nightlight@cinnamon.org/applet.js +++ b/files/usr/share/cinnamon/applets/nightlight@cinnamon.org/applet.js @@ -35,9 +35,9 @@ class NightLightSwitch extends Applet.IconApplet { set_icon() { this.nightLightEnabled = this.gsettings.get_boolean("night-light-enabled"); if (this.nightLightEnabled) { - this.set_applet_icon_symbolic_name("nightlight-symbolic"); + this.set_applet_icon_symbolic_name("xsi-night-light-symbolic"); } else { - this.set_applet_icon_symbolic_name("nightlight-disabled-symbolic"); + this.set_applet_icon_symbolic_name("xsi-night-light-disabled-symbolic"); } } diff --git a/files/usr/share/cinnamon/applets/panel-launchers@cinnamon.org/applet.js b/files/usr/share/cinnamon/applets/panel-launchers@cinnamon.org/applet.js index 4cdb669893..322f813769 100644 --- a/files/usr/share/cinnamon/applets/panel-launchers@cinnamon.org/applet.js +++ b/files/usr/share/cinnamon/applets/panel-launchers@cinnamon.org/applet.js @@ -41,25 +41,25 @@ class PanelAppLauncherMenu extends Applet.AppletPopupMenu { this.addMenuItem(new PopupMenu.PopupSeparatorMenuItem()); } - let item = new PopupMenu.PopupIconMenuItem(_("Launch"), "media-playback-start", St.IconType.SYMBOLIC); + let item = new PopupMenu.PopupIconMenuItem(_("Launch"), "xsi-media-playback-start", St.IconType.SYMBOLIC); this._signals.connect(item, 'activate', Lang.bind(this, this._onLaunchActivate)); this.addMenuItem(item); if (Main.gpu_offload_supported) { - let item = new PopupMenu.PopupIconMenuItem(_("Run with dedicated GPU"), "cpu", St.IconType.SYMBOLIC); + let item = new PopupMenu.PopupIconMenuItem(_("Run with dedicated GPU"), "xsi-cpu", St.IconType.SYMBOLIC); this._signals.connect(item, 'activate', Lang.bind(this, this._onLaunchOffloadedActivate)); this.addMenuItem(item); } - item = new PopupMenu.PopupIconMenuItem(_("Add"), "list-add", St.IconType.SYMBOLIC); + item = new PopupMenu.PopupIconMenuItem(_("Add"), "xsi-list-add", St.IconType.SYMBOLIC); this._signals.connect(item, 'activate', Lang.bind(this, this._onAddActivate)); this.addMenuItem(item); - item = new PopupMenu.PopupIconMenuItem(_("Edit"), "document-properties", St.IconType.SYMBOLIC); + item = new PopupMenu.PopupIconMenuItem(_("Edit"), "xsi-edit", St.IconType.SYMBOLIC); this._signals.connect(item, 'activate', Lang.bind(this, this._onEditActivate)); this.addMenuItem(item); - item = new PopupMenu.PopupIconMenuItem(_("Remove"), "window-close", St.IconType.SYMBOLIC); + item = new PopupMenu.PopupIconMenuItem(_("Remove"), "xsi-list-remove", St.IconType.SYMBOLIC); this._signals.connect(item, 'activate', Lang.bind(this, this._onRemoveActivate)); this.addMenuItem(item); @@ -68,7 +68,7 @@ class PanelAppLauncherMenu extends Applet.AppletPopupMenu { let subMenu = new PopupMenu.PopupSubMenuMenuItem(_("Applet preferences")); this.addMenuItem(subMenu); - item = new PopupMenu.PopupIconMenuItem(_("About..."), "dialog-question", St.IconType.SYMBOLIC); + item = new PopupMenu.PopupIconMenuItem(_("About..."), "xsi-dialog-question", St.IconType.SYMBOLIC); this._signals.connect(item, 'activate', Lang.bind(this._launcher.launchersBox, this._launcher.launchersBox.openAbout)); subMenu.menu.addMenuItem(item); @@ -76,7 +76,7 @@ class PanelAppLauncherMenu extends Applet.AppletPopupMenu { this._signals.connect(item, 'activate', () => this._launcher.launchersBox.configureApplet()); subMenu.menu.addMenuItem(item); - this.remove_item = new PopupMenu.PopupIconMenuItem(_("Remove '%s'").format(_("Panel launchers")), "edit-delete", St.IconType.SYMBOLIC); + this.remove_item = new PopupMenu.PopupIconMenuItem(_("Remove '%s'").format(_("Panel launchers")), "xsi-edit-delete", St.IconType.SYMBOLIC); subMenu.menu.addMenuItem(this.remove_item); } diff --git a/files/usr/share/cinnamon/applets/slideshow@cinnamon.org/applet.js b/files/usr/share/cinnamon/applets/slideshow@cinnamon.org/applet.js index f947787488..9ccacfa1d3 100644 --- a/files/usr/share/cinnamon/applets/slideshow@cinnamon.org/applet.js +++ b/files/usr/share/cinnamon/applets/slideshow@cinnamon.org/applet.js @@ -38,11 +38,11 @@ class CinnamonSlideshowApplet extends Applet.IconApplet { this._current_background_menu = new PopupMenu.PopupMenuItem(""); this._applet_context_menu.addMenuItem(this._current_background_menu); this._update_background_name(); - + this._applet_context_menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem()); this.next_image_context_menu_item = new PopupMenu.PopupIconMenuItem(_("Next Background"), - "media-seek-forward", + "xsi-media-seek-forward", St.IconType.SYMBOLIC); this.next_image_context_menu_item.connect('activate', Lang.bind(this, this.get_next_image)); this._applet_context_menu.addMenuItem(this.next_image_context_menu_item); @@ -50,13 +50,13 @@ class CinnamonSlideshowApplet extends Applet.IconApplet { this._applet_context_menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem()); this.open_settings_context_menu_item = new PopupMenu.PopupIconMenuItem(_("Background Settings"), - "preferences-desktop-wallpaper", + "xsi-wallpaper", St.IconType.SYMBOLIC); this.open_settings_context_menu_item.connect('activate', Lang.bind(this, function() { Util.spawnCommandLine("cinnamon-settings backgrounds"); })); this._applet_context_menu.addMenuItem(this.open_settings_context_menu_item); - + this._applet_context_menu.connect('open-state-changed', () => this._update_background_name()); } diff --git a/files/usr/share/cinnamon/applets/trash@cinnamon.org/applet.js b/files/usr/share/cinnamon/applets/trash@cinnamon.org/applet.js index 13e3deb992..fdbc2e36a4 100644 --- a/files/usr/share/cinnamon/applets/trash@cinnamon.org/applet.js +++ b/files/usr/share/cinnamon/applets/trash@cinnamon.org/applet.js @@ -14,7 +14,7 @@ class CinnamonTrashApplet extends Applet.IconApplet { constructor(orientation, panel_height, instance_id) { super(orientation, panel_height, instance_id); - this.set_applet_icon_symbolic_name("user-trash"); + this.set_applet_icon_symbolic_name("xsi-user-trash"); this.set_applet_tooltip(_("Trash")); this.trash_changed_timeout = 0; @@ -35,13 +35,13 @@ class CinnamonTrashApplet extends Applet.IconApplet { _initContextMenu() { this.empty_item = new PopupMenu.PopupIconMenuItem(_("Empty Trash"), - "list-remove", + "xsi-list-remove", St.IconType.SYMBOLIC); this.empty_item.connect('activate', Lang.bind(this, this._emptyTrash)); this._applet_context_menu.addMenuItem(this.empty_item); this.open_item = new PopupMenu.PopupIconMenuItem(_("Open Trash"), - "document-open", + "xsi-document-open", St.IconType.SYMBOLIC); this.open_item.connect('activate', Lang.bind(this, this._openTrash)); this._applet_context_menu.addMenuItem(this.open_item); @@ -109,9 +109,9 @@ class CinnamonTrashApplet extends Applet.IconApplet { (enumerator, res) => { file = enumerator.next_files_finish(res); if (file.length > 0) { - this.set_applet_icon_symbolic_name("user-trash-full"); + this.set_applet_icon_symbolic_name("xsi-user-trash-full"); } else { - this.set_applet_icon_symbolic_name("user-trash"); + this.set_applet_icon_symbolic_name("xsi-user-trash"); } } ); diff --git a/files/usr/share/cinnamon/applets/user@cinnamon.org/applet.js b/files/usr/share/cinnamon/applets/user@cinnamon.org/applet.js index 08c9d23e5a..ef4fe9f558 100644 --- a/files/usr/share/cinnamon/applets/user@cinnamon.org/applet.js +++ b/files/usr/share/cinnamon/applets/user@cinnamon.org/applet.js @@ -69,7 +69,7 @@ class CinnamonUserApplet extends Applet.TextApplet { this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem()); - let item = new PopupMenu.PopupIconMenuItem(_("System Settings"), "preferences-system", St.IconType.SYMBOLIC); + let item = new PopupMenu.PopupIconMenuItem(_("System Settings"), "xsi-preferences", St.IconType.SYMBOLIC); item.connect('activate', Lang.bind(this, function() { Util.spawnCommandLine("cinnamon-settings"); })); @@ -77,7 +77,7 @@ class CinnamonUserApplet extends Applet.TextApplet { this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem()); - item = new PopupMenu.PopupIconMenuItem(_("Lock Screen"), "system-lock-screen", St.IconType.SYMBOLIC); + item = new PopupMenu.PopupIconMenuItem(_("Lock Screen"), "xsi-lock-screen", St.IconType.SYMBOLIC); item.connect('activate', Lang.bind(this, function() { let screensaver_settings = new Gio.Settings({ schema_id: "org.cinnamon.desktop.screensaver" }); let screensaver_dialog = Gio.file_new_for_path("/usr/bin/cinnamon-screensaver-command"); @@ -99,7 +99,7 @@ class CinnamonUserApplet extends Applet.TextApplet { if (!lockdown_settings.get_boolean('disable-user-switching')) { if (GLib.getenv("XDG_SEAT_PATH")) { // LightDM - item = new PopupMenu.PopupIconMenuItem(_("Switch User"), "system-switch-user", St.IconType.SYMBOLIC); + item = new PopupMenu.PopupIconMenuItem(_("Switch User"), "xsi-switch-user", St.IconType.SYMBOLIC); item.connect('activate', Lang.bind(this, function() { Util.spawnCommandLine("cinnamon-screensaver-command --lock"); Util.spawnCommandLine("dm-tool switch-to-greeter"); @@ -108,7 +108,7 @@ class CinnamonUserApplet extends Applet.TextApplet { } else if (GLib.file_test("/usr/bin/mdmflexiserver", GLib.FileTest.EXISTS)) { // MDM - item = new PopupMenu.PopupIconMenuItem(_("Switch User"), "system-switch-user", St.IconType.SYMBOLIC); + item = new PopupMenu.PopupIconMenuItem(_("Switch User"), "xsi-switch-user", St.IconType.SYMBOLIC); item.connect('activate', Lang.bind(this, function() { Util.spawnCommandLine("mdmflexiserver"); })); @@ -116,7 +116,7 @@ class CinnamonUserApplet extends Applet.TextApplet { } else if (GLib.file_test("/usr/bin/gdmflexiserver", GLib.FileTest.EXISTS)) { // GDM - item = new PopupMenu.PopupIconMenuItem(_("Switch User"), "system-switch-user", St.IconType.SYMBOLIC); + item = new PopupMenu.PopupIconMenuItem(_("Switch User"), "xsi-switch-user", St.IconType.SYMBOLIC); item.connect('activate', Lang.bind(this, function() { Util.spawnCommandLine("cinnamon-screensaver-command --lock"); Util.spawnCommandLine("gdmflexiserver"); @@ -125,7 +125,7 @@ class CinnamonUserApplet extends Applet.TextApplet { } } - item = new PopupMenu.PopupIconMenuItem(_("Log Out..."), "logout", St.IconType.SYMBOLIC); + item = new PopupMenu.PopupIconMenuItem(_("Log Out..."), "xsi-log-out", St.IconType.SYMBOLIC); item.connect('activate', Lang.bind(this, function() { this._session.LogoutRemote(0); })); @@ -133,7 +133,7 @@ class CinnamonUserApplet extends Applet.TextApplet { this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem()); - item = new PopupMenu.PopupIconMenuItem(_("Power Off..."), "system-shutdown", St.IconType.SYMBOLIC); + item = new PopupMenu.PopupIconMenuItem(_("Power Off..."), "xsi-shutdown", St.IconType.SYMBOLIC); item.connect('activate', Lang.bind(this, function() { this._session.ShutdownRemote(); })); diff --git a/files/usr/share/cinnamon/applets/window-list@cinnamon.org/applet.js b/files/usr/share/cinnamon/applets/window-list@cinnamon.org/applet.js index 9d4c4ceca7..e341861300 100644 --- a/files/usr/share/cinnamon/applets/window-list@cinnamon.org/applet.js +++ b/files/usr/share/cinnamon/applets/window-list@cinnamon.org/applet.js @@ -956,7 +956,7 @@ class AppMenuButtonRightClickMenu extends Applet.AppletPopupMenu { let subMenu = new PopupMenu.PopupSubMenuMenuItem(_("Applet preferences")); this.addMenuItem(subMenu); - item = new PopupMenu.PopupIconMenuItem(_("About..."), "dialog-question", St.IconType.SYMBOLIC); + item = new PopupMenu.PopupIconMenuItem(_("About..."), "xsi-dialog-question", St.IconType.SYMBOLIC); this._signals.connect(item, 'activate', Lang.bind(this._launcher._applet, this._launcher._applet.openAbout)); subMenu.menu.addMenuItem(item); @@ -964,14 +964,14 @@ class AppMenuButtonRightClickMenu extends Applet.AppletPopupMenu { this._signals.connect(item, 'activate', () => this._launcher._applet.configureApplet()); subMenu.menu.addMenuItem(item); - item = new PopupMenu.PopupIconMenuItem(_("Remove 'Window list'"), "edit-delete", St.IconType.SYMBOLIC); + item = new PopupMenu.PopupIconMenuItem(_("Remove 'Window list'"), "xsi-edit-delete", St.IconType.SYMBOLIC); this._signals.connect(item, 'activate', (actor, event) => this._launcher._applet.confirmRemoveApplet(event)); subMenu.menu.addMenuItem(item); this.addMenuItem(new PopupMenu.PopupSeparatorMenuItem()); // Close all/others - item = new PopupMenu.PopupIconMenuItem(_("Close all"), "application-exit", St.IconType.SYMBOLIC); + item = new PopupMenu.PopupIconMenuItem(_("Close all"), "xsi-exit", St.IconType.SYMBOLIC); this._signals.connect(item, 'activate', Lang.bind(this, function() { for (let window of this._windows) if (window.actor.visible && @@ -980,7 +980,7 @@ class AppMenuButtonRightClickMenu extends Applet.AppletPopupMenu { })); this.addMenuItem(item); - item = new PopupMenu.PopupIconMenuItem(_("Close others"), "window-close", St.IconType.SYMBOLIC); + item = new PopupMenu.PopupIconMenuItem(_("Close others"), "xsi-window-close", St.IconType.SYMBOLIC); this._signals.connect(item, 'activate', Lang.bind(this, function() { for (let window of this._windows) if (window.actor.visible && @@ -1002,12 +1002,12 @@ class AppMenuButtonRightClickMenu extends Applet.AppletPopupMenu { } if (mw.minimized) { - item = new PopupMenu.PopupIconMenuItem(_("Restore"), "view-sort-descending", St.IconType.SYMBOLIC); + item = new PopupMenu.PopupIconMenuItem(_("Restore"), "xsi-view-sort-descending", St.IconType.SYMBOLIC); this._signals.connect(item, 'activate', function() { Main.activateWindow(mw, global.get_current_time()); }); } else { - item = new PopupMenu.PopupIconMenuItem(_("Minimize"), "view-sort-ascending", St.IconType.SYMBOLIC); + item = new PopupMenu.PopupIconMenuItem(_("Minimize"), "xsi-view-sort-ascending", St.IconType.SYMBOLIC); this._signals.connect(item, 'activate', function() { mw.minimize(); }); @@ -1015,12 +1015,12 @@ class AppMenuButtonRightClickMenu extends Applet.AppletPopupMenu { this.addMenuItem(item); if (mw.get_maximized()) { - item = new PopupMenu.PopupIconMenuItem(_("Unmaximize"), "view-restore", St.IconType.SYMBOLIC); + item = new PopupMenu.PopupIconMenuItem(_("Unmaximize"), "xsi-view-restore", St.IconType.SYMBOLIC); this._signals.connect(item, 'activate', function() { mw.unmaximize(Meta.MaximizeFlags.HORIZONTAL | Meta.MaximizeFlags.VERTICAL); }); } else { - item = new PopupMenu.PopupIconMenuItem(_("Maximize"), "view-fullscreen", St.IconType.SYMBOLIC); + item = new PopupMenu.PopupIconMenuItem(_("Maximize"), "xsi-view-fullscreen", St.IconType.SYMBOLIC); this._signals.connect(item, 'activate', function() { mw.maximize(Meta.MaximizeFlags.HORIZONTAL | Meta.MaximizeFlags.VERTICAL); }); @@ -1028,7 +1028,7 @@ class AppMenuButtonRightClickMenu extends Applet.AppletPopupMenu { this.addMenuItem(item); item.setSensitive(mw.can_maximize()) - item = new PopupMenu.PopupIconMenuItem(_("Close"), "edit-delete", St.IconType.SYMBOLIC); + item = new PopupMenu.PopupIconMenuItem(_("Close"), "xsi-edit-delete", St.IconType.SYMBOLIC); this._signals.connect(item, 'activate', function() { mw.delete(global.get_current_time()); }); @@ -1323,7 +1323,7 @@ class CinnamonWindowListApplet extends Applet.Applet { window.setDisplayTitle(); } } - + _updateLabels() { for (let window of this._windows) window.updateLabelVisible(); diff --git a/files/usr/share/cinnamon/applets/workspace-switcher@cinnamon.org/applet.js b/files/usr/share/cinnamon/applets/workspace-switcher@cinnamon.org/applet.js index 3a19d5e76c..384f38ad1a 100644 --- a/files/usr/share/cinnamon/applets/workspace-switcher@cinnamon.org/applet.js +++ b/files/usr/share/cinnamon/applets/workspace-switcher@cinnamon.org/applet.js @@ -526,7 +526,7 @@ class CinnamonWorkspaceSwitcher extends Applet.Applet { })); this._applet_context_menu.addMenuItem(addWorkspaceMenuItem); - this.removeWorkspaceMenuItem = new PopupMenu.PopupIconMenuItem (_("Remove the current workspace"), "list-remove", St.IconType.SYMBOLIC); + this.removeWorkspaceMenuItem = new PopupMenu.PopupIconMenuItem (_("Remove the current workspace"), "xsi-list-remove", St.IconType.SYMBOLIC); this.removeWorkspaceMenuItem.connect('activate', this.removeCurrentWorkspace.bind(this)); this._applet_context_menu.addMenuItem(this.removeWorkspaceMenuItem); this.removeWorkspaceMenuItem.setSensitive(global.workspace_manager.n_workspaces > 1); diff --git a/files/usr/share/cinnamon/applets/xrandr@cinnamon.org/applet.js b/files/usr/share/cinnamon/applets/xrandr@cinnamon.org/applet.js index 6fd696d66d..df85aa4dd7 100644 --- a/files/usr/share/cinnamon/applets/xrandr@cinnamon.org/applet.js +++ b/files/usr/share/cinnamon/applets/xrandr@cinnamon.org/applet.js @@ -22,7 +22,7 @@ class CinnamonXrandrApplet extends Applet.IconApplet { constructor(orientation, panel_height, instance_id) { super(orientation, panel_height, instance_id); - this.set_applet_icon_symbolic_name("preferences-desktop-display"); + this.set_applet_icon_symbolic_name("xsi-display"); this.set_applet_tooltip(_("Display")); this.menuManager = new PopupMenu.PopupMenuManager(this); From a7e64f6bc61f0e0122d88ee1fa2b38a7153fa846 Mon Sep 17 00:00:00 2001 From: Michael Webster Date: Fri, 23 Jan 2026 11:23:22 -0500 Subject: [PATCH 15/25] misc/util.js: Use xsi-symbolics for desktop-file actions. --- js/misc/util.js | 60 ++++++++++++++++++++++++------------------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/js/misc/util.js b/js/misc/util.js index 9e5fa38383..25aee2ffcd 100644 --- a/js/misc/util.js +++ b/js/misc/util.js @@ -647,46 +647,46 @@ function version_exceeds(version, min_version) { const DESKTOP_ACTION_ICON_NAMES = { area_shot: 'screenshot-area', base: 'x-office-database', - big_picture: 'view-fullscreen', - calc: 'x-office-spreadsheet', - community: 'system-users', - compose: 'text-editor', - contacts: 'x-office-address-book', - document: 'document-new', - draw: 'x-office-drawing', - friends: 'user-available', - fullscreen: 'view-fullscreen', - impress: 'x-office-presentation', - library: 'accessories-dictionary', + big_picture: 'xsi-view-fullscreen-symbolic', + calc: 'xsi-x-office-spreadsheet-symbolic', + community: 'xsi-users-symbolic', + compose: 'xsi-text-editor-symbolic', + contacts: 'xsi-x-office-address-book-symbolic', + document: 'xsi-document-new-symbolic', + draw: 'xsi-x-office-drawing-symbolic', + friends: 'xsi-user-available-symbolic', + fullscreen: 'xsi-view-fullscreen-symbolic', + impress: 'xsi-x-office-presentation-symbolic', + library: 'xsi-dictionary-symbolic', math: 'x-office-math', - mute: 'audio-volume-muted', - new_document: 'document-new', + mute: 'xsi-audio-volume-muted-symbolic', + new_document: 'xsi-document-new-symbolic', new_private_window: 'view-private', - new_root_window: 'dialog-password', + new_root_window: 'xsi-dialog-password-symbolic', news: 'news', new_session: 'xsi-tab-new-symbolic', - new_window: 'window-new', - next: 'media-skip-forward', - open_computer: 'computer', - open_home: 'user-home', - open_trash: 'user-trash', - play: 'media-playback-start', - play_pause: 'media-playback-start', - preferences: 'preferences-other', - prefs: 'preferences-other', - previous: 'media-skip-backward', + new_window: 'xsi-window-new-symbolic', + next: 'xsi-media-skip-forward-symbolic', + open_computer: 'xsi-computer-symbolic', + open_home: 'xsi-user-home-symbolic', + open_trash: 'xsi-user-trash-symbolic', + play: 'xsi-media-playback-start-symbolic', + play_pause: 'xsi-media-playback-start-symbolic', + preferences: 'xsi-preferences-symbolic', + prefs: 'xsi-preferences-symbolic', + previous: 'xsi-media-skip-backward-symbolic', screen_shot: 'screenshot-fullscreen', - screenshots: 'applets-screenshooter', - servers: 'network-server', - settings: 'preferences-other', + screenshots: 'xsi-screenshooter-symbolic', + servers: 'xsi-network-server-symbolic', + settings: 'xsi-preferences-symbolic', ssa: 'screenshot-area', ssf: 'screenshot-fullscreen', ssw: 'screenshot-window', - stop_quit: 'media-playback-stop', + stop_quit: 'xsi-media-playback-stop-symbolic', store: 'store', - window: 'window-new', + window: 'xsi-window-new-symbolic', window_shot: 'screenshot-window', - writer: 'x-office-document', + writer: 'xsi-x-office-document-symbolic', }; /** From e9df446a4165e0c40258b61b9b7c380c094ce3fe Mon Sep 17 00:00:00 2001 From: Clement Lefebvre Date: Sun, 25 Jan 2026 13:24:00 +0000 Subject: [PATCH 16/25] 6.6.6 --- debian/changelog | 19 +++++++++++++++++++ meson.build | 2 +- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 5e5667ad0a..1ecb048057 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,22 @@ +cinnamon (6.6.6) zena; urgency=medium + + [ Michael Webster ] + * placesManager.js: Go back to having isRemovable() call can_unmount(). (#13464) + + [ fredcw ] + * menu applet: remove 'force show panel' toggle as ... (#13394) + * menu applet: fix sidebar separator showing inconsistently (#13438) + + [ Clement Lefebvre ] + * printer applet: Switch to XSI icons + * network applet: Switch to XSI icons + * Switch to XSI icons + + [ Michael Webster ] + * misc/util.js: Use xsi-symbolics for desktop-file actions. + + -- Clement Lefebvre Sun, 25 Jan 2026 13:23:52 +0000 + cinnamon (6.6.5) zena; urgency=medium [ Clement Lefebvre ] diff --git a/meson.build b/meson.build index aa30fc4a1b..87d2411767 100644 --- a/meson.build +++ b/meson.build @@ -1,4 +1,4 @@ -project('Cinnamon', 'c', version : '6.6.5', meson_version : '>=0.56.0') +project('Cinnamon', 'c', version : '6.6.6', meson_version : '>=0.56.0') gnome = import('gnome') i18n = import('i18n') From 6f98f8331e9dccf6c2704c9c7c7b6c4b3b4d0248 Mon Sep 17 00:00:00 2001 From: fredcw Date: Tue, 27 Jan 2026 17:57:46 +0000 Subject: [PATCH 17/25] menu@cinnamon.org: Avoid using absolute path as this doesn't work on NixOS (#13500) --- files/usr/share/cinnamon/applets/menu@cinnamon.org/applet.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/files/usr/share/cinnamon/applets/menu@cinnamon.org/applet.js b/files/usr/share/cinnamon/applets/menu@cinnamon.org/applet.js index 41c5afb474..896470c305 100644 --- a/files/usr/share/cinnamon/applets/menu@cinnamon.org/applet.js +++ b/files/usr/share/cinnamon/applets/menu@cinnamon.org/applet.js @@ -2384,8 +2384,8 @@ class CinnamonMenuApplet extends Applet.TextIconApplet { this.menu.close(); let screensaver_settings = new Gio.Settings({ schema_id: "org.cinnamon.desktop.screensaver" }); - let screensaver_dialog = Gio.file_new_for_path("/usr/bin/cinnamon-screensaver-command"); - if (screensaver_dialog.query_exists(null)) { + let screensaver_dialog = GLib.find_program_in_path("cinnamon-screensaver-command"); + if (screensaver_dialog) { if (screensaver_settings.get_boolean("ask-for-away-message")) { Util.spawnCommandLine("cinnamon-screensaver-lock-dialog"); } From 14e57e59bdc163b006e173ace9eb5006c3f1a3f3 Mon Sep 17 00:00:00 2001 From: carsten_eu Date: Tue, 27 Jan 2026 23:05:53 +0100 Subject: [PATCH 18/25] cinnamon-settings: Fix util module import to prevent name collisions (#13492) Use explicit 'from bin import util' instead of bare 'import util' to prevent conflicts with local util.py files in the user's working directory or Python path. Fixes #13490 --- .../share/cinnamon/cinnamon-settings/bin/KeybindingWidgets.py | 2 +- .../usr/share/cinnamon/cinnamon-settings/bin/SettingsWidgets.py | 2 +- files/usr/share/cinnamon/cinnamon-settings/bin/XkbSettings.py | 2 +- files/usr/share/cinnamon/cinnamon-settings/modules/cs_sound.py | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/files/usr/share/cinnamon/cinnamon-settings/bin/KeybindingWidgets.py b/files/usr/share/cinnamon/cinnamon-settings/bin/KeybindingWidgets.py index dd5a71bbfb..abb67994f1 100755 --- a/files/usr/share/cinnamon/cinnamon-settings/bin/KeybindingWidgets.py +++ b/files/usr/share/cinnamon/cinnamon-settings/bin/KeybindingWidgets.py @@ -1,7 +1,7 @@ #!/usr/bin/python3 from gi.repository import Gtk, Gdk, GObject -import util +from bin import util print("KeybindingWidgets session type: %s" % util.get_session_type()) diff --git a/files/usr/share/cinnamon/cinnamon-settings/bin/SettingsWidgets.py b/files/usr/share/cinnamon/cinnamon-settings/bin/SettingsWidgets.py index 5271abf5c1..47fadb7e5d 100755 --- a/files/usr/share/cinnamon/cinnamon-settings/bin/SettingsWidgets.py +++ b/files/usr/share/cinnamon/cinnamon-settings/bin/SettingsWidgets.py @@ -11,7 +11,7 @@ from xapp.GSettingsWidgets import PXGSettingsBackend from ChooserButtonWidgets import DateChooserButton, TimeChooserButton from KeybindingWidgets import ButtonKeybinding -import util +from bin import util import KeybindingTable diff --git a/files/usr/share/cinnamon/cinnamon-settings/bin/XkbSettings.py b/files/usr/share/cinnamon/cinnamon-settings/bin/XkbSettings.py index 5328a9d7d2..22dcc4f21f 100644 --- a/files/usr/share/cinnamon/cinnamon-settings/bin/XkbSettings.py +++ b/files/usr/share/cinnamon/cinnamon-settings/bin/XkbSettings.py @@ -3,7 +3,7 @@ from gi.repository import Gio, Gtk, CinnamonDesktop, Pango, GLib from xapp.SettingsWidgets import SettingsSection -import util +from bin import util import subprocess class XkbSettingsEditor(SettingsSection): diff --git a/files/usr/share/cinnamon/cinnamon-settings/modules/cs_sound.py b/files/usr/share/cinnamon/cinnamon-settings/modules/cs_sound.py index 1cf7911094..0c5da57336 100755 --- a/files/usr/share/cinnamon/cinnamon-settings/modules/cs_sound.py +++ b/files/usr/share/cinnamon/cinnamon-settings/modules/cs_sound.py @@ -6,7 +6,7 @@ from gi.repository import Gtk, Cvc, Gdk, GdkPixbuf, Gio, Pango from SettingsWidgets import SidePage, GSettingsSoundFileChooser from xapp.GSettingsWidgets import * -import util +from bin import util CINNAMON_SOUNDS = "org.cinnamon.sounds" CINNAMON_DESKTOP_SOUNDS = "org.cinnamon.desktop.sound" From 78a69ec778d3b4b278cf334d15660008a4664ac0 Mon Sep 17 00:00:00 2001 From: Michael Webster Date: Fri, 6 Feb 2026 11:35:21 -0500 Subject: [PATCH 19/25] cinnamon-desktop-editor.py: Add import path. Since 0344b1138209a, cinnamon-menu-editor crashes at startup when it imports JsonSettingsWidgets. --- .../cinnamon/cinnamon-desktop-editor/cinnamon-desktop-editor.py | 1 + 1 file changed, 1 insertion(+) diff --git a/files/usr/share/cinnamon/cinnamon-desktop-editor/cinnamon-desktop-editor.py b/files/usr/share/cinnamon/cinnamon-desktop-editor/cinnamon-desktop-editor.py index 412dca8d24..ebb7723d71 100755 --- a/files/usr/share/cinnamon/cinnamon-desktop-editor/cinnamon-desktop-editor.py +++ b/files/usr/share/cinnamon/cinnamon-desktop-editor/cinnamon-desktop-editor.py @@ -18,6 +18,7 @@ sys.path.insert(0, '/usr/share/cinnamon/cinnamon-menu-editor') from cme import util +sys.path.insert(0, '/usr/share/cinnamon/cinnamon-settings') sys.path.insert(0, '/usr/share/cinnamon/cinnamon-settings/bin') import JsonSettingsWidgets From c059fb944e82166d83bc0a6b70f7073b487062df Mon Sep 17 00:00:00 2001 From: Michael Webster Date: Mon, 9 Feb 2026 10:29:27 -0500 Subject: [PATCH 20/25] endSessionDialog.js: Don't close the dialog immediately when selecting 'suspend' or 'hibernate'. This was preventing the session manager from responding with an inhibitor list and giving the user the option to ignore them and 'force' the action, as happens correctly with other options. It was also breaking the lifecycle of this dialog and disable it from showing again. Also fix an issue with the inhibitor list not clearing existing items when receiving an updated list from the session manager. Fixes linuxmint/cinnamon-session#193. --- js/ui/endSessionDialog.js | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/js/ui/endSessionDialog.js b/js/ui/endSessionDialog.js index 095011740f..2871c84eee 100644 --- a/js/ui/endSessionDialog.js +++ b/js/ui/endSessionDialog.js @@ -155,20 +155,14 @@ class EndSessionDialog extends ModalDialog.ModalDialog { if (canSuspend) { this.addButton({ label: _("Suspend"), - action: () => { - this._dialogProxy.SuspendRemote(); - this.close(); - }, + action: this._dialogProxy.SuspendRemote.bind(this._dialogProxy), }); } if (canHibernate) { this.addButton({ label: _("Hibernate"), - action: () => { - this._dialogProxy.HibernateRemote(); - this.close(); - } + action: this._dialogProxy.HibernateRemote.bind(this._dialogProxy), }); } @@ -278,6 +272,7 @@ class EndSessionDialog extends ModalDialog.ModalDialog { _presentInhibitorInfo(inhibitorInfos) { this._removeDelayTimer(); this.clearButtons(); + this._applicationsSection.list.destroy_all_children(); this._messageDialogContent.description = null; const infos = inhibitorInfos; From 1f9e5180e5d4684e4f41ecec73d01a8e11d11b61 Mon Sep 17 00:00:00 2001 From: Clement Lefebvre Date: Mon, 9 Feb 2026 16:24:02 +0000 Subject: [PATCH 21/25] 6.6.7 --- debian/changelog | 14 ++++++++++++++ meson.build | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 1ecb048057..d88d86ac64 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,17 @@ +cinnamon (6.6.7) zena; urgency=medium + + [ fredcw ] + * menu@cinnamon.org: Avoid using absolute path as this doesn't work on NixOS (#13500) + + [ carsten_eu ] + * cinnamon-settings: Fix util module import to prevent name collisions (#13492) + + [ Michael Webster ] + * cinnamon-desktop-editor.py: Add import path. + * endSessionDialog.js: Don't close the dialog immediately when selecting 'suspend' or 'hibernate'. + + -- Clement Lefebvre Mon, 09 Feb 2026 16:23:53 +0000 + cinnamon (6.6.6) zena; urgency=medium [ Michael Webster ] diff --git a/meson.build b/meson.build index 87d2411767..875cfd00b1 100644 --- a/meson.build +++ b/meson.build @@ -1,4 +1,4 @@ -project('Cinnamon', 'c', version : '6.6.6', meson_version : '>=0.56.0') +project('Cinnamon', 'c', version : '6.6.7', meson_version : '>=0.56.0') gnome = import('gnome') i18n = import('i18n') From dc195586b86176f074e841759681d61b84ab346a Mon Sep 17 00:00:00 2001 From: Eric Wing Date: Tue, 26 May 2026 22:58:38 -0700 Subject: [PATCH 22/25] Hot Corners feature to show only current application's windows? #10988 This implements a variation based on the 'scale' feature that shows only the current application windows instead of all the application windows. The new variation is called 'scaleapp'. It shares the 'scale' code and simply filters the list of windows down to the current application if this mode is requested. The changes are primarily in workspace.js, but also touches hotCorner.js and overview.js. The changes in cs_hotcorner.py make the feature accessible in the UI. The name used is 'Show application windows', which is derived from the name 'Application Windows' from Mac, but follows the existing paradigm in the existing Cinnamon UI. (KDE Plasma uses 'Present Windows - Current Application' which didn't fit the paradigm as well.) Refer to https://github.com/linuxmint/cinnamon/issues/10988 for more discussion. --- .../cinnamon-settings/modules/cs_hotcorner.py | 5 +++- js/ui/hotCorner.js | 8 +++-- js/ui/overview.js | 4 ++- js/ui/workspace.js | 30 ++++++++++++++++++- 4 files changed, 42 insertions(+), 5 deletions(-) diff --git a/files/usr/share/cinnamon/cinnamon-settings/modules/cs_hotcorner.py b/files/usr/share/cinnamon/cinnamon-settings/modules/cs_hotcorner.py index 59af45a4f2..d5412b36bb 100755 --- a/files/usr/share/cinnamon/cinnamon-settings/modules/cs_hotcorner.py +++ b/files/usr/share/cinnamon/cinnamon-settings/modules/cs_hotcorner.py @@ -192,6 +192,7 @@ def __init__(self, index, updateCallback): self.functionStore.append(['expo', _("Show all workspaces")]) #Expo self.functionStore.append(['scale', _("Show all windows")]) #Scale self.functionStore.append(['desktop', _("Show the desktop")]) + self.functionStore.append(['scaleapp', _("Show application windows")]) # like Mac 'Application Windows' self.functionStore.append(['custom', _("Run a command")]) enableBox = Gtk.Box(spacing=8) @@ -238,9 +239,11 @@ def setValues(self, function, enabled, delay): self.functionCombo.set_active(1) elif function == "desktop": self.functionCombo.set_active(2) + elif function == "scaleapp": + self.functionCombo.set_active(3) else: showCommandEntry = True - self.functionCombo.set_active(3) + self.functionCombo.set_active(4) if self.commandEntry.get_text() != function: self.commandEntry.set_text(function) diff --git a/js/ui/hotCorner.js b/js/ui/hotCorner.js index 99d4a77074..a69a0ab410 100755 --- a/js/ui/hotCorner.js +++ b/js/ui/hotCorner.js @@ -242,11 +242,15 @@ class HotCorner { break; case 'scale': if (!Main.overview.animationInProgress) - Main.overview.toggle(); + Main.overview.toggle(this.action); break; case 'desktop': global.workspace_manager.toggle_desktop(timestamp); break; + case 'scaleapp': + if (!Main.overview.animationInProgress) + Main.overview.toggle(this.action); + break; default: Util.spawnCommandLine(this.action); } @@ -303,7 +307,7 @@ class HotCorner { shouldRunAction(timestamp, click) { /* Expo and scale disable hot corners except theirs */ if ((Main.expo.visible && this.action != 'expo') || - (Main.overview.visible && this.action != 'scale')) + (Main.overview.visible && ((this.action != 'scale') && (this.action != 'scaleapp')))) return false; if (Main.overview.animationInProgress) diff --git a/js/ui/overview.js b/js/ui/overview.js index 6e0ed36ffb..ff57b7284f 100644 --- a/js/ui/overview.js +++ b/js/ui/overview.js @@ -61,6 +61,7 @@ Overview.prototype = { this._windowSwitchTimestamp = 0; this._lastActiveWorkspaceIndex = -1; this._lastHoveredWindow = null; + this._optCallerActionName = null; }, // The members we construct that are implemented in JS might @@ -358,7 +359,8 @@ Overview.prototype = { this._syncInputMode(); }, - toggle: function() { + toggle: function(optCallerActionName) { + Main.overview._optCallerActionName = optCallerActionName; if (this._shown) this.hide(); else diff --git a/js/ui/workspace.js b/js/ui/workspace.js index 884f15bcf3..4b1b328b0f 100644 --- a/js/ui/workspace.js +++ b/js/ui/workspace.js @@ -711,7 +711,35 @@ WorkspaceMonitor.prototype = { let initialPositioning = flags & WindowPositionFlags.INITIAL; let animate = flags & WindowPositionFlags.ANIMATE; - let clones = this._windows; + let focusedWindow = global.display.get_focus_window(); + let tracker = Cinnamon.WindowTracker.get_default(); + let focusedApp = tracker.get_window_app(focusedWindow); + let focusedAppName = focusedApp.get_name(); + + let clones; + let callerActionName = Main.overview._optCallerActionName; + if (callerActionName === 'scaleapp') { + let clones2 = this._windows; + clones = []; + for (let i = 0; i < clones2.length; ++i) { + let clone = clones2[i]; + let app = tracker.get_window_app(clone.metaWindow); + let appName = app.get_name(); + if (appName === focusedAppName) { // this window belongs to the current active app + clones.push(clone); + } else { // this window does not belong to the current active app + // hide other windows otherwise they continue to show and may obscure the selection view. + clone.actor.opacity = 0; + clone.actor.scale_x = 0; + clone.actor.scale_y = 0; + // captions for these other windows also need to be hidden + clone.overlay.caption.hide(); + } + } + } else { // original 'scale' case + clones = this._windows; + } + // Start the animations let slots = this._computeAllWindowSlots(clones.length); From 9dd0a64317de995683b0df3e40190ce27335dcbe Mon Sep 17 00:00:00 2001 From: Eric Wing Date: Wed, 27 May 2026 15:20:50 -0700 Subject: [PATCH 23/25] Fixed a few lines that accidentally used tabs instead of spaces. For the scaleapp feature, a few new lines accidentally had tabs instead of spaces. --- js/ui/workspace.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/js/ui/workspace.js b/js/ui/workspace.js index 4b1b328b0f..e79ad17896 100644 --- a/js/ui/workspace.js +++ b/js/ui/workspace.js @@ -711,10 +711,10 @@ WorkspaceMonitor.prototype = { let initialPositioning = flags & WindowPositionFlags.INITIAL; let animate = flags & WindowPositionFlags.ANIMATE; - let focusedWindow = global.display.get_focus_window(); - let tracker = Cinnamon.WindowTracker.get_default(); - let focusedApp = tracker.get_window_app(focusedWindow); - let focusedAppName = focusedApp.get_name(); + let focusedWindow = global.display.get_focus_window(); + let tracker = Cinnamon.WindowTracker.get_default(); + let focusedApp = tracker.get_window_app(focusedWindow); + let focusedAppName = focusedApp.get_name(); let clones; let callerActionName = Main.overview._optCallerActionName; From 950b61ac4f4c9b8da5b54d37bdcca7c7d306da78 Mon Sep 17 00:00:00 2001 From: Eric Wing Date: Fri, 29 May 2026 12:27:42 -0700 Subject: [PATCH 24/25] Applet for scaleapp Now that scaleapp has been implemented, for consistency, created a new applet for scaleapp, based off the scale applet. The code is virtually identical except for the name changes, the icon, and one parameter to toggle() which activates scaleapp instead of scale. A distinct icon is needed to tell it appart from the scale icon since both may exist in the tray at the same time. The new icon is a modification of the scale icon, where there are 4 larger squares instead of 9 smaller squares. The thinking behind this is the number of application windows is less than the number of total windows, so the view will have fewer windows and be bigger. --- .../applets/scaleapp@cinnamon.org/applet.js | 46 +++++++++++++++++++ .../icons/cinnamon-scaleapp-symbolic.svg | 9 ++++ .../scaleapp@cinnamon.org/metadata.json | 7 +++ .../settings-schema.json | 8 ++++ 4 files changed, 70 insertions(+) create mode 100644 files/usr/share/cinnamon/applets/scaleapp@cinnamon.org/applet.js create mode 100644 files/usr/share/cinnamon/applets/scaleapp@cinnamon.org/icons/cinnamon-scaleapp-symbolic.svg create mode 100644 files/usr/share/cinnamon/applets/scaleapp@cinnamon.org/metadata.json create mode 100644 files/usr/share/cinnamon/applets/scaleapp@cinnamon.org/settings-schema.json diff --git a/files/usr/share/cinnamon/applets/scaleapp@cinnamon.org/applet.js b/files/usr/share/cinnamon/applets/scaleapp@cinnamon.org/applet.js new file mode 100644 index 0000000000..246c86d354 --- /dev/null +++ b/files/usr/share/cinnamon/applets/scaleapp@cinnamon.org/applet.js @@ -0,0 +1,46 @@ +const Applet = imports.ui.applet; +const Lang = imports.lang; +const Main = imports.ui.main; +const Settings = imports.ui.settings; + +class CinnamonScaleApplet extends Applet.IconApplet { + constructor(metadata, orientation, panel_height, instance_id) { + super(orientation, panel_height, instance_id); + + try { + this.set_applet_icon_symbolic_name("cinnamon-scaleapp"); + this.set_applet_tooltip(_("Scale App")); + this._hover_activates = false; + + this.settings = new Settings.AppletSettings(this, metadata.uuid, this.instance_id); + + this.settings.bind("activate-on-hover", "_hover_activates"); + + this.actor.connect('enter-event', Lang.bind(this, this._onEntered)); + } + catch (e) { + global.logError(e); + } + } + + on_applet_clicked(event) { + if (this._hover_activates) + return; + this.doAction(); + } + + _onEntered(event) { + if (!this._hover_activates || global.settings.get_boolean("panel-edit-mode")) + return; + this.doAction(); + } + + doAction() { + if (!Main.overview.animationInProgress) + Main.overview.toggle("scaleapp"); + } +} + +function main(metadata, orientation, panel_height, instance_id) { + return new CinnamonScaleApplet(metadata, orientation, panel_height, instance_id); +} diff --git a/files/usr/share/cinnamon/applets/scaleapp@cinnamon.org/icons/cinnamon-scaleapp-symbolic.svg b/files/usr/share/cinnamon/applets/scaleapp@cinnamon.org/icons/cinnamon-scaleapp-symbolic.svg new file mode 100644 index 0000000000..94492a34fe --- /dev/null +++ b/files/usr/share/cinnamon/applets/scaleapp@cinnamon.org/icons/cinnamon-scaleapp-symbolic.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/files/usr/share/cinnamon/applets/scaleapp@cinnamon.org/metadata.json b/files/usr/share/cinnamon/applets/scaleapp@cinnamon.org/metadata.json new file mode 100644 index 0000000000..a7d494819f --- /dev/null +++ b/files/usr/share/cinnamon/applets/scaleapp@cinnamon.org/metadata.json @@ -0,0 +1,7 @@ +{ +"uuid": "scaleapp@cinnamon.org", +"name": "Scale App", +"description": "Click or hover to activate Scale App view", +"icon": "cs-overview", + "max-instances": -1 +} diff --git a/files/usr/share/cinnamon/applets/scaleapp@cinnamon.org/settings-schema.json b/files/usr/share/cinnamon/applets/scaleapp@cinnamon.org/settings-schema.json new file mode 100644 index 0000000000..0207ff1a77 --- /dev/null +++ b/files/usr/share/cinnamon/applets/scaleapp@cinnamon.org/settings-schema.json @@ -0,0 +1,8 @@ +{ + "activate-on-hover": { + "type": "switch", + "default" : false, + "description" : "Activate scale on hover" + } +} + From 3cd1ca0257af006c82414633beb39559776d8ea7 Mon Sep 17 00:00:00 2001 From: Eric Wing Date: Mon, 1 Jun 2026 23:10:15 -0700 Subject: [PATCH 25/25] scaleapp: renamed class name of applet to be unique from scale Defensively renamed the class name of the scale-app applet to be different that the scale applet, which it was originally copied from. The same name didn't seem to be a problem in testing, but it seemed like a good idea to make it unique to be safe. --- .../share/cinnamon/applets/scaleapp@cinnamon.org/applet.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/files/usr/share/cinnamon/applets/scaleapp@cinnamon.org/applet.js b/files/usr/share/cinnamon/applets/scaleapp@cinnamon.org/applet.js index 246c86d354..9091d4f437 100644 --- a/files/usr/share/cinnamon/applets/scaleapp@cinnamon.org/applet.js +++ b/files/usr/share/cinnamon/applets/scaleapp@cinnamon.org/applet.js @@ -3,7 +3,7 @@ const Lang = imports.lang; const Main = imports.ui.main; const Settings = imports.ui.settings; -class CinnamonScaleApplet extends Applet.IconApplet { +class CinnamonScaleAppApplet extends Applet.IconApplet { constructor(metadata, orientation, panel_height, instance_id) { super(orientation, panel_height, instance_id); @@ -42,5 +42,5 @@ class CinnamonScaleApplet extends Applet.IconApplet { } function main(metadata, orientation, panel_height, instance_id) { - return new CinnamonScaleApplet(metadata, orientation, panel_height, instance_id); + return new CinnamonScaleAppApplet(metadata, orientation, panel_height, instance_id); }