Screenshot Galore!

The QNX desktop has seen some significant improvements over the last few months. While it is still mostly a one-person spare-time project, it is becoming more and more usable.

First, I owe a debt from my original post. I was reprimanded by commentators for the window decoration’s lack of visual appeal. To address this I added a simple theme plug-in API to the window manager, which facilitates the creation of new themes. These are built into shared objects that are loaded when the window manager starts. With the help of the Cairo library  I was able to write two new themes: one original, the other less so (see if you can spot it…).


No desktop system is complete without the ability to play back music and video. The QNX playback engine is called mm-renderer, which I was able to add to the system with ease, owing to some fairly good documentation. Moreover, the Qt libraries are already set up to use mm-renderer, which means that once it was running I was able to use Qt’s media player demo to play both music and videos. Nevertheless, this simple demo is a far cry from a good media player. After trying various options I found the excellent Musique music player. Musique has very few dependencies other than Qt, but it does rely on a playback library (QtAV) that I did not want to port (given that it has many dependencies of its own). Luckily Musique’s code is well organized, with media playback encapsulated by a separate library with its own interface. Implementing this interface using Qt’s native QMediaPlayer class was almost trivial and the result is fantastic.

Finally, starting mm-renderer allows the browser to play media without any further changes.



The lack of an office suite used to be a significant hurdle to the adoption of alternative desktop operating systems (I still remember my attempts to use WordPerfect and Star Office on RedHat Linux 5.0). Things have changed dramatically with the proliferation of web-based applications such as Google Docs and Office 365, which can be accessed by any system with a modern browser.


Of course, real men (and women, and small furry creatures from Alpha Centauri) don’t use word processors. They us LaTeX. And if writing LaTeX code in Emacs is not your thing, there is TexMaker to the rescue.



On top of the existing set of development tools (GCC, GDB, Emacs, Vim, Valgrind) the QNX desktop now includes Qt Creator. The following screenshot is my homage to the most aesthetically-pleasing desktop ever created, including an attempt to write a matching Qt style.


And one more thing…

Need access to a Linux-based system? No problem. The QNX Hypervisor supports various Linux flavours, including Ubuntu and Android.


18 thoughts on “Screenshot Galore!

  1. Pingback: New top story on Hacker News: QNX Desktop 2019-03 update – Hckr News

  2. Pingback: New top story on Hacker News: QNX Desktop 2019-03 update – Outside The Know

  3. Pingback: New top story on Hacker News: QNX Desktop 2019-03 update – Golden News

  4. Pingback: New top story on Hacker News: QNX Desktop 2019-03 update – News about world

  5. Pingback: New top story on Hacker News: QNX Desktop 2019-03 update – World Best News

  6. Pingback: New top story on Hacker News: QNX Desktop 2019-03 update – Latest news

  7. Is there a free download for this? Last time I played with qnx it was around 6.2.1 demo with photon UI I believe it was called, still one of my favorite UIs,… I remember good times in irc with the devs, cdm or something I believe it was created some nice desktop user focused apps.
    Would love to checkout the project. I’m more of a user then a true dev, bit I’ve done my share of ./configure and make.. and web dev, but that’s easy enough for most grandma’s tbh .


  8. Pingback: QNX Desktop 2019-03 update | My Tech Blog

  9. Pingback: Screenshot Galore!… | Dr. Roy Schestowitz (罗伊)

    • Such a post wouldn’t make for very exciting reading. The BeOS theme is the result of hours of staring at blown-up screenshots of R5, followed by trivial code to reproduce the window decorations (with Cairo) and control appearance (in Qt, using the Style tutorial and examples). The tracker implementation is a variant of the launcher I showed elsewhere. It is written in Qt, with the main widget derived from a QToolBar class.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s