Subject: Re: bug#77496: [PATCH] Add 'ns-app-badge' to set macOS / GNUstep icon badge

From: Ship Mints <[email-masked]>
Date: Fri, 4 Apr 2025 11:53:52 -0400

On Fri, Apr 4, 2025 at 7:44 AM Eli Zaretskii <[email-masked]> wrote:

> > From: Ship Mints <[email-masked]>
> > Date: Fri, 4 Apr 2025 07:37:57 -0400
> > Cc: [email-masked]
> >
> >  P.S. All this doesn't change the fact that we can only install this
> >  feature when it can be made available on free systems.
> >
> > This feature exists in GNUstep.  Is this not sufficiently free?
>
> I mean the underlying OS.
>

GNUstep on Linux would do.

> If you think we really need complete parity with Linux desktop systems
> beyond GNUstep, based on some
> > research this morning, we may be able to leverage dbus messages for
> desktops that support for "count"
> > (numeric only, sheesh) / "count-visible".  This functionality appears
> not to be tied to the running process as on
> > macOS/GNUstep but to a "URL" like "application://{appname}.desktop"
> where I guess appname would be
> > emacs or Emacs, I dunno yet how this really works when there are more
> than one running copies of an app
> > process.  I'll experiment and see if I can tease this out.
> >
> > If this seems easy and you're 100% adamant that GNUstep is
> insufficiently free, I can try to craft a more
> > generic API that supports numeric counts for Linux desktop shells, and
> text labels for macOS/GNUstep.
>
> I'd be surprised if X and/or GTK don't have a comparable feature.  So
> yes, I think we should have something similar on GNU/Linux.
>

Seems not.  Seems to be a feature of desktop shells.

Not getting any love from trying 'gdbus' to force an app badge.  I'm surely
just an ignorant boob with dbus.

For anyone interested in helping out, this is the hack I'm trying, which,
if it worked, we'd model in Emacs invoking dbus directly vs. via command
line.

Approach via
https://wiki.ubuntu.com/Unity/LauncherAPI#Low_level_DBus_API:_com.canonical.Unity.LauncherEntry

$ uname -a
Linux deb-12 6.1.0-32-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.129-1
(2025-03-06) x86_64 GNU/Linux
$ emacs& # distro's Emacs 30.1 (updated this morning)
$ gdbus emit --session --object-path /com/canonical/unity/launcherentry/0
--signal com.canonical.Unity.LauncherEntry.Update
"application://emacs.desktop" "{'count-visible': <true>, 'count': <123>}"
# nothing happens or appears, and gdbus reports silence