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 07:37:57 -0400

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

> > From: Ship Mints <[email-masked]>
> > Date: Thu, 3 Apr 2025 13:16:57 -0400
> >
> > FYI, this is backward compatible to at least macOS 10.5 from 2007 so I
> didn't wrap the function with a version
> > check.  GNUstep has had support for at least six years (the Emacs
> documentation says GNUstep is still
> > "alpha" anyway, right?).
>
> If the code uses features that are only available since some OS
> version, we should make sure that using that on older OS versions does
> nothing, and especially doesn't do any harm, like crash Emacs.  If the
> OS API itself ignores such calls in older OS versions, then the Emacs
> code doesn't have to be wrapped with an OS test; otherwise, we must
> have the OS version test to prevent adverse effects on older OS
> versions.
>
> Specifically, for this feature: do we still support versions of macOS
> older than 10.5 in Emacs?  If we do, then the backward compatibility
> provided by the OS is not enough for us.
>
> 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?

The file nextstep/INSTALL says: Mac OS X 10.6 or later GNUstep "Startup
0.23" or later which are adequate minimums to support this function.

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.

Anyone reading this thread that has experience on Linux desktops that
support count/count-visible and you have a few minutes, contact me.

-Stephane