0

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?

Litschi
  • 3
  • 2

1 Answers1

0

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.

goldilocks
  • 58,859
  • 17
  • 112
  • 227