From 207bcc6b53d05a9a436896518b3f991ec9b81d68 Mon Sep 17 00:00:00 2001 From: Fabio Fantoni Date: Sat, 8 Aug 2026 12:55:04 +0200 Subject: [PATCH 1/2] network@cinnamon.org: don't show the offline icon when online through an unmanaged device When the only connectivity comes from a device NetworkManager does not manage - typically an interface configured in /etc/network/interfaces, with the ifupdown plugin set to managed=false, which is the default on Debian - there is no active connection for the applet to describe, so _mainConnection is null and the applet shows the offline icon and a "No connection" tooltip even though the machine is fully online. NetworkManager still reports NM_STATE_CONNECTED_GLOBAL in that situation, so use that as the fallback: when there is no main connection but the global state is CONNECTED_GLOBAL, show the generic wired icon and the "Connected to the network" tooltip that _updateIcon() already uses for connections it cannot classify. Everything else is unchanged, and when the machine really is offline the global state is not CONNECTED_GLOBAL, so the offline icon is still shown. Both strings and both icons are already used elsewhere in the applet, so this adds nothing new to translate. Tested on a Debian sid VM with cinnamon 6.6.9 and NetworkManager 1.58: with enp1s0 configured in /etc/network/interfaces the global state is 70 (CONNECTED_GLOBAL) while the only active connection is the loopback one, which the applet skips; the panel icon changes from offline to wired with the patch applied, and goes back to offline as soon as the interface is brought down. This has been reported on the Debian side since 2013 as https://bugs.debian.org/699773 - GNOME Shell used to carry a Debian patch doing the same thing. Assisted-by: Claude Code:claude-opus-5 --- .../cinnamon/applets/network@cinnamon.org/applet.js | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 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 850dddf51a..6cae8d5e51 100644 --- a/files/usr/share/cinnamon/applets/network@cinnamon.org/applet.js +++ b/files/usr/share/cinnamon/applets/network@cinnamon.org/applet.js @@ -2403,8 +2403,17 @@ CinnamonNetworkApplet.prototype = { let mc = this._mainConnection; if (!mc) { - this._setIcon('xsi-network-offline'); - this.set_applet_tooltip(_("No connection")); + if (this._client.state == NM.State.CONNECTED_GLOBAL) { + // We are online through a device NetworkManager does not + // manage (for instance one configured in + // /etc/network/interfaces): there is no active connection + // to describe, but we are not offline either. + this._setIcon('xsi-network-wired'); + this.set_applet_tooltip(_("Connected to the network")); + } else { + this._setIcon('xsi-network-offline'); + this.set_applet_tooltip(_("No connection")); + } } else if (mc.state == NM.ActiveConnectionState.ACTIVATING) { new_delay = FAST_PERIODIC_UPDATE_FREQUENCY_SECONDS; switch (mc._section) { From a89a5cb4b7fdb1f9790292e0215977342c9ec9d7 Mon Sep 17 00:00:00 2001 From: Fabio Fantoni Date: Sun, 9 Aug 2026 22:38:23 +0200 Subject: [PATCH 2/2] network@cinnamon.org: tell the unmanaged case apart in the tooltip Reusing "Connected to the network" said nothing about why the applet has no details to show. Use a tooltip of its own, so that a machine online through a device NetworkManager does not manage is distinguishable from one with an active connection the applet cannot classify. One new string to translate. Assisted-by: Claude Code:claude-opus-5 --- files/usr/share/cinnamon/applets/network@cinnamon.org/applet.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 6cae8d5e51..9c34922ca2 100644 --- a/files/usr/share/cinnamon/applets/network@cinnamon.org/applet.js +++ b/files/usr/share/cinnamon/applets/network@cinnamon.org/applet.js @@ -2409,7 +2409,7 @@ CinnamonNetworkApplet.prototype = { // /etc/network/interfaces): there is no active connection // to describe, but we are not offline either. this._setIcon('xsi-network-wired'); - this.set_applet_tooltip(_("Connected to the network")); + this.set_applet_tooltip(_("Connected through an unmanaged device")); } else { this._setIcon('xsi-network-offline'); this.set_applet_tooltip(_("No connection"));