News:

Stuttgart museum purchases 40 NeXT machines from Rob Blessin

Main Menu

GNUstepOfficial meeting minutes

Started by Rhetorica, Jan 17, 2026, 03:34 AM

Previous topic - Next topic

Rhetorica

On Saturday, Gregory Casamento posted a recording of a two-hour meeting from a group of GNUstep developers. Since the video is rather tedious to watch I thought I'd summarize some of the highlights in a post here. (And maybe this can be a recurring thing...)

GNUstep AppImages

Though they are often miserably bulky, self-standing software containers like docker, flatpak, etc. enable portability across Linux distributions. Hitherto this has not been attempted for GNUstep applications, and some work was required to make it possible. An AppImage of (drumroll) PicoPixel has been completed as a proof-of-concept, which includes everything down to ld-linux.so and glibc, so it should run on just about any Linux distro, and possibly even some BSDs with the right support framework on the host side. The GNUstep AppImage overhead is around 45 MB, which is not nothing, but is pretty good compared to some other packaging systems.

Needless to say, allowing end-users to bypass the tricky step of installing an entire platform ecosystem will be very valuable in increasing adoption—and these efforts might dovetail nicely with the recent port of Ladybird to GNUstep, which compiles much faster than the official (Qt-based) Linux port... but more on Ladybird later!

Theoretically these AppImages might even run under Windows via WSL2, but there have been some headaches since Microsoft made Wayland the default for WSL2. There was a fair bit of concern in the meeting about working on GNUstep's Wayland support, and the general problem of how Wayland's design decisions are somewhat at odds with features GNUstep and other desktop environments require.

The next AppImage that Twilight Edge plans on creating is probably GMines.app.

WARNING: preposterous time in Real Time Clock -- CHECK AND RESET THE DATE!

Rhetorica

#1
Gershwin

The Gershwin project, mentioned here, is an initiative by some of the GNUstep maintainers to build an OS X-like desktop environment. The main project currently is developing the theme, "Eau" (like Aqua, but French), which aims to implement as much of the OS X look-and-feel as possible, including behavioural things like menu functionality, while minimizing the amount of work necessary for developers to bring existing GNUstep programs into the Gershwin fold.

Gershwin-related notes from this meeting include:

  • Choosing a set of fonts and where to store them.
  • The /System, /Local, /Network directory layout is back in a big way.
  • a (no-doubt not-coincidental) concern about ensuring window resize handles are easy to see and grab,
  • usage of the XCBKit-based uroswm window manager (which means Gershwin is still X11-based for the time being)—this will hopefully be theme-agnostic eventually, plans for compositor support and (secure) X11 namespaces. Window decorations are native GNUstep objects instead of the chimerical thing that WindowMaker offers.
  • The global screen-top menu bar implementation is confirmed working with Chromium, GIMP, VSCode, and more; currently uses DBus but they hope to get rid of this dependency later.
  • The standard modifier key for menu hotkeys is Command rather than Control as in stock GNUstep.
  • Menu search is implemented (and very convenient) but still needs interface work.
  • What happens when you double-click an ELF binary with no executable bit? Most desktops will just try to open it in a text editor or something; Gershwin will offer to set the executable bit and run it.
  • If no console window or interface is created for an executable that the user launched, but it outputs stuff to stderr, then Gershwin will show the results (including the exit code) in a dialog when the process terminates. (Conversation around making sure this text is easy to copy and send to a developer. Classic bikeshedding stuff.)
  • Basic System Preferences implemented for dev system (Raspberry Pi 500+ running Debian), including sound, network, wifi, printers (CUPS), keyboard layout (including a checkbox for reorganizing Alt and Command if you're on a Mac), global shortcuts, and more.
  • Division between Applications and Utilities. Utilities include Screenshot (a far cry from Grab.app, but hey, it's good to see one at all), NetworkBrowser (Bonjour), RemoteDesktop (client for VNC with untested RDP support).
  • GWorkspace fork: just called Workspace. Can't be upstreamed since it deviates substantially. It can mount archives and disk images, and the trash icon turns into an ⏏ Eject symbol when media is dragged over it.
  • Dock: respectfully handles non-GNUstep X11 applications with a minimal .app bundle wrapper (appwrap tool for creating these). Bounce animation very much enabled until the first window appears.
  • Network integration: services discovered via zeroconf. Easily mount sftp, WebDAV (untested), and (in the future) afs. Also manually connect via URLs.
  • Support for "show in file browser" functionality common in Browsers; requires DBus.
  • Spatial mode: one window per directory. (Not an OS X thing, but certainly very Mac-y.) Icons and windows remember their locations correctly, using reverse-engineered .DS_Store files. (For real!) — this also comes with background images in .DMGs etc.
  • Windows close automatically when the volume containing them is ejected! (This comes up around 1:11:40)
  • Other dev QoL: plistupdate tool, GUI testing framework ("like Selenium", currently built into Workspace)

Although Gershwin is far from done, the developers are now dogfooding it and using it for its own development, so it may be worth trying out in a VM. It genuinely sounds like a better experience than most smaller Linux desktops, and the developers assert they're trying to keep it OS/hardware agnostic by switching platforms regularly. Live ISOs exist (of the Debian on Raspberry Pi 5/500 stack), available on request for people who are committed to participating in testing; they're not for general consumption. There's an Arch-on-Intel ISO build also, but it was broken at the time of the meeting.

For pursuing involvement, #gershwin on irc.libera.chat:6697 (TLS) is the way to go.

WARNING: preposterous time in Real Time Clock -- CHECK AND RESET THE DATE!

Rhetorica

Ladybird on GNUstep

Here it is!

ladybird-gershwin.png

(Note the extremely placeholdery titlebar and tab strip.) The port is described as having been "surprisingly easy." The APIs are around 80% the same, and the Ladybird team is responding positively to upstreaming the GNUstep port into the official repo.

Lars (I think this is Lars Sonchocky-Helldorf) was self-described as "speechless" after the Ladybird reveal, comparing Gershwin to how past GNUstep desktop projects had failed long before reaching this stage of maturity.

The final half hour of the meeting was spent discussing minutiae of aesthetics and desktop paradigms for Gershwin, such as the spatial metaphor and how to make it unambiguous when enabling or disabling it. The goal of making something approachable to Mac users without being beholden to copying specifics was reiterated, e.g. avoiding the custom of hiding menu bars behind hamburger menus or sacrificing usability in the name of shiny chrome. It was noted that open source projects, fortunately, do not need to impress investors or customers with visual novelty and can emphasize doing the right thing over the popular thing. One person (the individual responsible for the AppImage bundling) mentioned scrutinizing vintage OS X Kaleidoscope themes for inspiration.
WARNING: preposterous time in Real Time Clock -- CHECK AND RESET THE DATE!

ZombiePhysicist

Super cool project! I hope it gains traction (and tear off menus 🙃)!