gnustep / libs-back

The GNUstep gui library is a library of graphical user interface classes written completely in the Objective-C language; the classes are based upon Apple's Cocoa framework (which came from the OpenStep specification). *** Larger patches require copyright assignment to FSF. please file bugs here. ***
http://www.gnustep.org
GNU General Public License v3.0
50 stars 34 forks source link

try to handle grouping of windows differently #46

Open rmottola opened 11 months ago

rmottola commented 11 months ago

XFCE windowmanager groups in the task bar windows when there are many for one application. What I found is that with two or more GNUstep applications, everything was put into a "GNUstep" item, different from the expected experience After some trial-and error using xprops on various apps (internal XFCe,, GTK tools, Firefox...) I found out the issue is the WM_CLASS atoms, which consists of two strings

for most application they were set like this: "app name", "App Name"

for some others, like this:"org.gnome.appname", "AppName"

or even a functional name, e.g Firefox has: "Navigator", "Firefox" which I bet is a heritage of when there was Navigator, Mail, Composer, Chat

we were setting "AppName", "GNUstep"

Since in the place I only have NSProcessInfo, (using the domain or a functional name like Firefox).. so now we can set e.g."Ink", "Ink". At a first test, it works in XFCE!

I wonder:

2xsaiko commented 11 months ago

How about setting it to the value of CFBundleIdentifier? That seems to be the closest to "org.gnome.appname".

rmottola commented 8 months ago

How about setting it to the value of CFBundleIdentifier? That seems to be the closest to "org.gnome.appname".

That detail seems only to be done for that GNOME app, you may try to inspect random apps you are running.

Furthermore, i don't know how to access in an efficient way the CFBundleIdentifier in XGServerWindow

rmottola commented 8 months ago

@fredkiefer do we use res_class for anything else?

We left this stale... would be nice to make it before release.