fix: let an update change the Parent Call button

Two findings, both from watching the bar refuse to change.

The Icon widget copies the desktop entry into the user's home and uses
the copy. A classroom that had already run kept the old icon and the old
command for ever: the package no longer contained a bell and the bar kept
showing one. The button is a task manager holding a single launcher now,
which resolves /usr/share/applications live — the place an OTA update
writes to — and costs nothing, because the classroom already runs one for
the applications.

NoDisplay=true then hid the entry from the very index that resolves
launchers, and the bar drew a blank page. There is no application menu in
this classroom for the entry to clutter, so it is indexable now.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
ekklesia
2026-09-10 12:38:27 -05:00
co-authored by Claude Opus 5
parent 7790003c03
commit 323989ac61
9 changed files with 28 additions and 8 deletions
@@ -41,12 +41,29 @@ panel.opacity = "adaptive";
// LEFT — auxiliary. Parent Call is not one of the room's applications and
// is deliberately not in the row with them.
var parentCall = panel.addWidget("org.kde.plasma.icon");
// A task manager holding one launcher, not the Icon widget.
//
// The Icon widget copies the desktop entry into the user's home and uses
// the copy, so a classroom that had already run would keep the old icon
// and the old command for ever — an update could never change either.
// Measured: it kept showing a bell out of a package that no longer
// contains one. Quick Launch would also do, but Debian does not ship it.
//
// This applet reads /usr/share/applications live, which is what an OTA
// update writes to, and it costs nothing extra: the classroom already
// runs one for the applications.
var parentCall = panel.addWidget("org.kde.plasma.icontasks");
parentCall.currentConfigGroup = ["General"];
parentCall.writeConfig(
"url",
"file:///usr/share/applications/ekklesia-parent-call.desktop"
);
parentCall.writeConfig("launchers", "applications:ekklesia-parent-call.desktop");
parentCall.writeConfig("groupingStrategy", 0);
parentCall.writeConfig("showOnlyCurrentDesktop", false);
parentCall.writeConfig("showOnlyCurrentActivity", false);
parentCall.writeConfig("showOnlyCurrentScreen", false);
parentCall.writeConfig("minimizeActiveTaskOnClick", false);
parentCall.writeConfig("fill", false);
parentCall.writeConfig("maxStripes", 1);
parentCall.writeConfig("wheelEnabled", false);
parentCall.writeConfig("showToolTips", true);
var leftGap = panel.addWidget("org.kde.plasma.panelspacer");
leftGap.currentConfigGroup = ["General"];