News: 1750875852

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

Cosmoe: New C++ toolkit for building native Wayland apps

(2025/06/25)


Cosmoe is a modern C++ UI library, but it's also a new iteration of a project with roots in one of the most elegant GUIs ever written.

[1]Cosmoe pulls off several neat tricks. Although it's a newly announced project, it is surprisingly mature and complete, while being lightweight. Also, for a one-man project, it has pretty good existing [2]third-party documentation , and quite a lot of existing example code – even complete apps. It's a new project and there is, admittedly, a [3]to-do list of stuff that doesn't work right yet, but at 112 lines it's fairly small.

[4]Cosmoe Wayland is a set of C++ libraries, with supporting infrastructure and tools, plus style guides and so on. It needs no supporting programs or runtime, and lets developers build multithreaded Linux apps in C++ that natively target Wayland. Although it's new, it has well-established guidelines and a distinctive, fresh, and clean look and feel. The API is complete and stable, and fairly unlikely to undergo radical changes, as it follows standards first released just under 30 years ago.

[5]

This iteration of Cosmoe is a surprisingly novel implementation of a project to recreate BeOS on top of the Linux kernel, now called [6]Cosmoe Classic . Cosmoe Classic started out as a port of the userland of [7]AtheOS to the Linux kernel. Over time, the original Cosmoe evolved into an effort to implement a BeOS-compatible OS on top of a Linux kernel. After [8]Be Inc. shut down in 2002, there were a few of these – another was [9]Blue Eyed OS .

[10]

[11]

Then, as the [12]project history describes, developer [13]Bill Hayden found that life got in the way. Ironically, the last update, in 2007, was titled " [14]Cosmoe is back ."

Today, there's only one FOSS reimplementation of BeOS – [15]Haiku OS , which we [16]last looked at in January . Cosmoe is no longer a rival, although Hayden has done a few updates to Cosmoe Classic and you can now build it on recent Ubuntu LTS versions or Fedora 40.

[17]

This is an interesting idea. Haiku's continued existence demonstrates that there's still considerable nostalgia for BeOS. There are precedents for bringing the BeOS look to Linux, including Metsatron's [18]theme and [19]icon pack for Xfce, or the [20]Benu and [21]Haiku themes for [22]Pekwm . There was even an entire distro, [23]ZevenOS , of which the [24]modern Neptune OS is a remote descendant. Some BeOS apps got ported to Windows, too – The Reg FOSS desk's Windows boxes run [25]Process Controller by [26]k23 productions , which is a direct port of a BeOS app.

[27]Mozilla rolls out Firefox 140 with ESR status and fresh features

[28]Xlibre forks to the rescue – but Kubuntu gives X11 the boot

[29]Tiling terminal multiplexers for the console connoisseur

[30]Breaking the nerd internet: Three overlapping generations of tech history – in one selfie

Cosmoe-Wayland is a new entrant in the field of FOSS UI toolkits, and as such, it's up against some entrenched opposition. The commercially backed [31]Qt is a major player, but vastly bigger and more ambitious, cross-platform and cross-GUI. In the pure-FOSS space, [32]Gtk is the 800-pound gorilla, but it's built for GNOME (and C) and is strongly opinionated. It [33]discourages themes , and as we discussed [34]with FLTK 1.4 , Gtk 4 deprecates fusty old-fashioned tech like menu bars. Gtk 4 is intended for writing apps for GNOME 4x, and we find that as a result, while they look very distinctive, the UI is restrictive, and it looks badly out of place on any other OS or desktop. It says a lot that Gtk was originally built for GIMP, but this year's [35]GIMP 3 uses Gtk 3 . (GIMP fans may be interested to know that [36]GIMP 3.2 is on the way .)

Although Hayden claims "Cosmoe implements about 95 percent of the BeOS API currently," it's still much smaller and simpler than its big-name rivals, and yet arguably more modern and complete than, say, FLTK or [37]Xforms . In principle it could also be used to build apps for Linux and Haiku simultaneously, as well as porting Haiku code to Linux. We definitely would love to see an [38]OpenTracker -based desktop.

Plus, of course, there's also the killer advantage mentioned in Mote's comment on [39]OSnews's article on this release :

Adding the Haiku library to Linux will ensure Linux won't become irrelevant due to a lack of applications.

Outside of KDE and GNOME, there are few other cohesive native toolkits for Wayland development. There are [40]lots of components but little unification. This is an interesting and different approach to take, and we hope it succeeds. ®

Bootnote

The Register [41]covered AtheOS back in 2001 , albeit describing it somewhat inaccurately. After lone developer Kurt Skauen moved on to [42]other things , his AtheOS project was forked to create [43]Syllable OS , which continued for another decade and reached version 0.6.7. We mentioned it on The Reg [44]the following year . ®

Get our [45]Tech Resources



[1] https://cosmoe.org/index.html

[2] https://www.haiku-os.org/legacy-docs/bebook/ClassesAndMethod.html

[3] https://gitlab.com/haydentech/cosmoe-wayland/-/blob/master/TODO

[4] https://gitlab.com/haydentech/cosmoe-wayland/

[5] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2aFxxdGalzlvzusCQbekgdgAAAoY&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0

[6] https://gitlab.com/haydentech/cosmoe-haiku_

[7] https://atheos.metaproject.frl/

[8] https://www.theregister.com/2002/01/17/a_silicon_valley_funeral/

[9] http://www.blueeyedos.com/index-old.html

[10] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44aFxxdGalzlvzusCQbekgdgAAAoY&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0

[11] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33aFxxdGalzlvzusCQbekgdgAAAoY&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0

[12] https://cosmoe.org/history.html

[13] https://www.haydentech.com/

[14] https://www.freelists.org/post/haiku/Cosmoe-is-back

[15] https://www.haiku-os.org/

[16] https://www.theregister.com/2025/01/09/testing_haiku_beta_5/

[17] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44aFxxdGalzlvzusCQbekgdgAAAoY&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0

[18] https://gitlab.com/metsatron/BeOS-r5-XFWM

[19] https://gitlab.com/metsatron/BeOS-r5-Icons

[20] https://www.pekwm.se/themes/benu.html

[21] https://www.pekwm.se/themes/haiku.html

[22] https://www.pekwm.se/

[23] https://archiveos.org/zevenos/

[24] https://www.theregister.com/2025/05/22/neptune_os/

[25] https://www.majorgeeks.com/files/details/process_controller.html

[26] https://k23productions.blogspot.com/

[27] https://www.theregister.com/2025/06/24/firefox_140_esr/

[28] https://www.theregister.com/2025/06/24/mixed_news_for_x11/

[29] https://www.theregister.com/2025/06/24/tiling_multiplexers_survey/

[30] https://www.theregister.com/2025/06/23/history_tech_selfie/

[31] https://www.qt.io/

[32] https://www.gtk.org/

[33] https://www.theregister.com/2022/03/28/gnome_42_inconsistent_themes/

[34] https://www.theregister.com/2024/11/26/fltk_14_released/

[35] https://www.theregister.com/2024/11/15/gimp_30_release/

[36] https://www.gimp.org/news/2025/06/23/gimp-3-1-2-released/

[37] http://xforms-toolkit.org/

[38] https://web.archive.org/web/20160111101453/http://opentracker.be/

[39] https://www.osnews.com/story/142617/cosmoe-beos-haiku-on-linux-returns-from-18-year-hiatus/

[40] https://github.com/rcalixte/awesome-wayland

[41] https://www.theregister.com/2001/04/11/open_source_beos_clone_gives/

[42] http://kavionic.com/blog/

[43] https://syllable.metaproject.frl/

[44] https://www.theregister.com/2013/11/01/25_alternative_pc_operating_systems/

[45] https://whitepapers.theregister.com/



112 lines?

MJB7

That's not small, that's microscopic (unless each one is 1MB long - but each #included header file has to go on it's own line...)

Re: 112 lines?

FIA

I thought the same, then realised that's the 'to-do' list.

cornetman

I'm pinning this. Looks very interesting.

I have a few GUI apps that I maintain and they are mostly GTK. The direction that GTK is going, I have been seriously considering rewrites to something else.

Porting from GTK2 to GTK3 was a *massive* pain in the arse, especially since some stock controls that they use came with GTK2 were removed.

I'm sure a lot of people going through that process had to go through similar processes of having to implement those controls from scratch themselves, a monumental waste of my valuable time.

Love means never having to say you're sorry.
-- Eric Segal, "Love Story"

That's the most ridiculous thing I've ever heard.
-- Ryan O'Neill, "What's Up Doc?"