From a91599ab7eb0a9faf8929fa20058b8fc802d593e 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 45a5259b12..45a0bc9a2a 100644 --- a/files/usr/share/cinnamon/applets/network@cinnamon.org/applet.js +++ b/files/usr/share/cinnamon/applets/network@cinnamon.org/applet.js @@ -2449,8 +2449,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 339b69ae98447b9ad6af787b4e4807e75dcab58c 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 45a0bc9a2a..7a237705e9 100644 --- a/files/usr/share/cinnamon/applets/network@cinnamon.org/applet.js +++ b/files/usr/share/cinnamon/applets/network@cinnamon.org/applet.js @@ -2455,7 +2455,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"));