Is it possible to only have one full-screen application run without the PIXEL desktop environment on the current Raspbian Stretch Lite? So basically, replace PIXEL with a regular desktop GUI application (made with the Electron framework, in my case). If so, do I need to optimize it somehow or can I just use the code of the desktop application without any changes?


1 Answer 1


Is it possible to only have one full-screen application run without the PIXEL desktop environment

Yes. There are three or four basic userspace layers (i.e., not including the kernel, which controls the hardware) involved in contemporary GNU/Linux based GUI desktops.

  • The Xorg server is the most fundamental and the only one which is required. Although there are ways to do graphics without it, those are unlikely to be used in a "GUI desktop" context. There are newer alternatives to it (X has been evolving since the early eighties), but it is still predominant and what is used by default on Raspbian.

    X has a variety of responsibilities but all we need to know here is that it is what creates the "windows" (the Xorg server is actually an implementation of the X Window System) used by desktop applications. It also provides for HIDs (human interface devices, usually a keyboard and mouse).

    And that's about it. If you start Xorg without the next two layers and without running an application inside, all you'll see is a black screen with an X shaped mouse pointer. There are no menus, taskbars, etc., so the user is in a pretty boring place. However this is all GUI applications actually need to run. I.e., You can configure X to run a normal app at this point, and that would be a standard approach to creating a kiosk, which is a system that runs "one full-screen application".

  • The window manager elaborates on the X primitives; features like borders, titlebars, smart placement, themes, minimizing, etc. are implemented by the window manager. If you are running one full screen app, this doesn't serve much of a purpose. Some WM's can be used without the next layer and may include some of its features.

  • The desktop environment (e.g. PIXEL) is responsible for stuff like taskbars, menus, icons, managing multiple desktops, etc. and usually include at least a file browser.

You can read more about the last two in that other answer I already linked. To these we might add the widget library (Gtk+, Qt) but that is only of interest if you are writing desktop apps.

Also in that answer is a bit about nodm, which would be one of the first things you should explore. This helps deal with the role of the display manager, also explained there.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.