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.

In the beginning was the Tao. The Tao gave birth to Space and Time.
Therefore, Space and Time are the Yin and Yang of programming.

Programmers that do not comprehend the Tao are always running out of
time and space for their programs. Programmers that comprehend the Tao always
have enough time and space to accomplish their goals.
How could it be otherwise?
-- Geoffrey James, "The Tao of Programming"