diff --git a/_toc.yml b/_toc.yml index 51c2c280..d6bb8b56 100644 --- a/_toc.yml +++ b/_toc.yml @@ -32,5 +32,6 @@ parts: sections: - file: rhel8/installation - file: rhel8/packages + - file: rhel8/desktop - file: rhel8/vendor_documentation diff --git a/rhel8/desktop.md b/rhel8/desktop.md new file mode 100644 index 00000000..61c15545 --- /dev/null +++ b/rhel8/desktop.md @@ -0,0 +1,57 @@ +# Desktop on RHEL 8 + +## Many Servers and Managers + +Following software is involved in getting the desktop on Linux up and running. + +- **Display Server** paints the image onto the screen + - **Xorg**: good ol' Unix X Server with network redirection + - **Wayland**: new and modern +- **Display Manager** shows up at startup to authenticate the user and then start the desktop session + - **gdm** Gnome Display Manager is default on RHEL 8, but NoMachine NX cannot start Gnome with it + - **lightdm** is very flexible, but automatic Gnome screen lock does not work with it, manual locking would be needed (`dm_tool lock`) + - **sddm** the Simple Desktop Display Manager from the KDE world fails due to a kernel bug on RHEL 8.6 +- **Greeter**: user interface part of the display manager, e.g. for `lightdm` it is exchangable +- **Accounts Service** (accounts-daemon) used by `gdm` to know about user information (last desktop session, profile image, etc) +- **Session Manager** starts the actual desktop. The installed options are found in `/usr/share/wayland-sessions/` for `Wayland` and `/usr/share/xsessions/` for `Xorg`. + - **gnome-session** normal Gnome starter (for `Xorg` and `Wayland`) + - **gnome-session-custom-session** to select a specific saved Gnome session + - **icewm-session** IceWM starter, `Xorg` only + - **startxfce4** XFCE starter, `Xorg` only + - **startplasma-x11** KDE Plasma starter for `Xorg` + - **startplasma-wayland** KDE Plasma starter for `Wayland` + +Out of the box RHEL 8 starts Gnome using `gdm` and `Wayland`. `Xorg` is also supported. Others can be installed from EPEL, but there is no support from Red Hat. + +## PSI Specific Desktop Settings +Per default Puppet starts `gdm` which then starts Gnome with `Xorg` using `/usr/share/xsessions/gnome-xorg.desktop`. + +Normally the Display Managers offer the user to select one of the available Desktop Sessions (`*.desktop` files in `/usr/share/wayland-sessions/` and `/usr/share/xsessions/`). This has been disabled as normally at the PSI this is more set per system and not per user. + +In Hiera the actual Desktop Session to be started can be selected/overriden by setting the `desktop::session_manager` to one of the `.desktop` files in above listed directories. Set it e.g. to `gnome-wayland` to test `Wayland`. + +Note when changing the default Session Manager, previous users will still get the one they used before. To reset that, you need to delete +- `/var/lib/AccountsService/users/*` (for `gdm`) +- `/var/cache/lightdm/dmrc/*.dmrc` (for `lightdm`) +- `/var/lib/lightdm/.cache/lightdm-gtk-greeter/state` (for `lightdm` with `lightdm-gtk-greeter`) + +### NoMachine NX +As NoMachine requires `lightdm` to start Gnome ([bug](https://kb.nomachine.com/TR08Q09375)), `lightdm` is used on these systems. +It uses a custom patched `lightdm-gtk-greeter` to allow to select only the configured keyboard layouts and to have a custom (PS: the patches have been merged upstream very fast, yeah!). + +### XFCE +XFCE is installed when `base::enable_xfce: true` is set in Hiera. +It then is also used by default with `base::xfce_default: true` or `desktop::session_manager: xfce`. + +### IceWM +IceWM is installed when `base::enable_icewm: true` is set in Hiera. +It then is also used by default with `desktop::session_manager: icewm-session`. + +### Using a different Desktop (e.g. KDE) +The respective Destop needs to be installed, e.g. manually or through Puppet. +The respective Session Manager can be set as system default in Hiera with `desktop::session_manager`. + +If a different Display Manager is needed, or `lightdm` on other occasions, then changes in our Puppet code are required. + + +