Display Managers


The display manager (DM) is responsible for authenticating a user and launching a desktop environment. Here are a few popular DMs available on Linux distributions [6][7]:

  • GNOME Display Manager (GDM) = Specific to the GNOME desktop environment.

  • Light Display Manager (LightDM) = Generic DM used to launch any desktop environment (including GNOME).

Automatically Login User

Here is how to automatically login a user after a given timeout. A reboot is required for these changes to take affect.

  • GDM [5]:

    $ sudo -E ${EDITOR} /etc/gdm/custom.conf
  • LightDM [6]:

    $ sudo groupadd --system autologin
    $ gpasswd -a <USER> autologin
    $ sudo -E ${EDITOR} /etc/lightdm/lightdm.conf
    autologin-guest = false
    autlogin-user = <USER>
    autologin-user-timeout = <SECONDS>

Default Session

List available desktop environment sessions:

# Xorg
$ ls -1 /usr/share/xsessions/
# Wayland
$ ls -1 /usr/share/wayland-sessions/

Set one of the sessions (use the name without the .desktop extension) to be the default session for a specified user by creating the file /var/lib/AccountsService/users/${USER}. [13][14]

# Xorg
# Wayland

Window Managers

Window managers (WMs) control the look and feel of windows.

  • Compiz

  • FluxBox

  • Kwin

  • Muffin

  • Mutter

  • Openbox

  • Xfwm

Tiled window managers specialize in splitting up windows into tiles/boxes that can be modified with keyboard shortcuts.

  • Awesome

  • Dwm

  • i3

  • Wmii


Desktop Environments


Desktop environments (DEs) are built on top of windows managers. They provide the full functionality of a graphical desktop by bundling applications for managing media, files, and network connections. Some DEs have created their own custom window managers as well. [1]

DE Name

Graphical Toolkit


Resource Usage



















  • Arch Linux: $ sudo pacman -S cinnamon

  • Debian (manual): $ sudo apt-get install cinnamon

  • Debian (automatic): $ sudo apt-get install task-cinnamon-desktop

  • Fedora: $ sudo dnf groupinstall "Cinnamon Desktop"



  • Arch Linux: $ sudo pacman -S gnome gnome-extras

  • Debian (manual): $ sudo apt-get install gnome

  • Debian (automatic): $ sudo apt-get install task-gnome-desktop

  • Fedora: $ sudo dnf groupinstall "GNOME Desktop Environment"

The gnome-tweaks package provides access to useful advanced settings of the GNOME desktop environment via the Tweaks application.

Suggested tweaks:

  • Extensions > Applications menu > On

  • Keyboard & Mouse > Mouse > Pointer Location > On

  • Top Bar > Battery Percentage > On

  • Window Titlebars > Titlebar Buttons > [Maximize|Minimize] > On



  • Arch Linux: $ sudo pacman -S plasma kde-applications

  • Debian (manual): $ sudo apt-get install kde-standard

  • Debian (automatic): $ sudo apt-get install task-kde-desktop

  • Fedora: $ sudo dnf groupinstall "KDE Plasma Workspaces"



  • Arch Linux: $ sudo pacman -S xfce4 xfce4-goodies

  • Debian (manual): $ sudo apt-get install xfce4

  • Debian (automatic): $ sudo apt-get install task-xfce-desktop

  • Fedora: $ sudo dnf groupinstall "Xfce Desktop"

Display Usage

Rotate Screen

When using Xorg, xrandr can rotate the screen. This needs to use a graphics driver that supports modesetting. Legacy drivers such as xf86-video-amdgpu, xf86-video-intel, xf86-video-nouveau, or xf86-video-vmware will not work.

  • View the list of displays. Rotate it in a specified direction.

    $ xrandr
    $ xrandr --output <DISPLAY> --rotate [left|right|normal|inverted]
  • If this error occurs, then a legacy Xorg driver is installed that does not support modesetting. [4]

    xrandr: output eDP1 cannot use rotation "right" reflection "none"

For the TTY, configure the fbcon. The Linux kernel must be compiled with CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y. Verify that it is by running:


All of the available options are:

  • 0 = Default orientation.

  • 1 = Clockwise.

  • 2 = Inverted.

  • 3 = Counter-clockwise.

Temporary change:

$ echo <ROTATION_OPTION> | sudo tee /sys/class/graphics/fbcon/rotate_all

Permanent change [12]:

$ sudo -E ${EDITOR} /etc/default/grub
$ sudo grub-mkconfig -o /boot/grub/grub.cfg

Remote Access


Use case:

  • AnyDesk = Free and no account required.

  • Parsec = Best desktop streaming service for gaming but requires a free account.


AnyDesk is proprietary, does not require an account, and offers online remote desktop sharing with essential features such as copy and paste.

Benefits of a paid account:

  • Privacy mode to disable the physical remote monitor. [8]

  • Support for more than on monitor. [9]

  • Ability to connect to more than 3 devices.

  • Recording.

  • Tech support.

  • User management.

  • Wake-on-LAN. [10]


$ flatpak install com.anydesk.Anydesk


  • Open “AnyDesk” on two different computers.

    $ flatpak run com.anydesk.Anydesk
  • Select the “New Session” tab.

  • Note the “Your Address” from the remote computer. Enter that unique AnyDesk address on the client computer in the “Remote Desk” field and then select “Connect”.


Parsec is a tool that can be used to remotely access macOS and Windows hosts. It supports Linux, macOS, and Windows as clients. Hosting support for Linux is not currently in development but may come in 2024 or 2025. [11]

Virtual Monitors

Parsec requires a physical monitor to be plugged into the computer and turned on. There are a few ways to create virtual monitors so that a physical monitor is no longer required. [2]

  • Paid versions of Parsec Teams and Enterprise provide support for creating virtual monitors.

  • Hardware HDMI dummy plugs exist to fake having a monitor plugged in.

  • On Windows hosts, use the Amyuni Virtual Display Driver (usbmmid).

    • This virtual display is not persistent on reboots. Create a scheduled task to start it as the Administrator on boot.

      Task Scheduler (taskschd.msc) > Create Basic Task... > Name: Virtual Monitor > Next > When do you want the task to start? When the computer starts > Next > Start a program > Next > Program/script: (select the "usbmidd.bat" file) > Next > Finish
      Task Scheduler (taskschd.msc) > Task Scheduler (Local) > Task Scheduler Library > Virtual Monitor > Properties > (select "Run whether user is logged in or not" and "Run with highest privileges") > OK

Virtual Audio

Parsec does not create any virtual audio devices. Instead, it forwards connected hardware audio from the Parsec host to the client. There are a few ways around this for a headless setup.

Image Processing

  • Remove all metadata from an image.

    $ mogrify -strip <IMAGE_FILE_NAME>
  • Compress an image to a specified size.

    $ [jpegoptim|optipng] --size=500K <IMAGE_FILE_NAME>
  • Resize an image.

    $ convert <IMAGE_ORIGINAL> -resize <PERCENTAGE>% <IMAGE_NEW>
  • Rotate an image.

    $ convert <IMAGE_ORIGINAL> -rotate <DEGRESS> <IMAGE_NEW>



  1. “DesktopEnvironment.” Debian Wiki. June 7, 2018. Accessed November 26, 2018.

  2. “Remote Streaming Without a Display.” r/ParsecGaming. June 29, 2022. Accessed August 27, 2022.

  3. “Unable To Hear The Game You’re Playing.” Parsec. Accessed September 6, 2022.

  4. “xrandr cannot use rotation “normal” reflection “none”.” Unix & Linux Stack Exchange. August 16, 2021. Accessed February 16, 2023.

  5. “Configure automatic login.” GNOME Library. Accessed April 9, 2023.

  6. “How to Login Automatically to Linux [most distros support].” FOSTips. September 2, 2022. Accessed April 9, 2023.

  7. “Display manager.” ArchWiki. April 7, 2023. Accessed April 9, 2023.

  8. “Screen Privacy.” AnyDesk Help Center. Accessed October 4, 2023.

  9. “what is the deal with free vs paid.” Reddit r/AnyDesk. March 24, 2020. Accessed October 4, 2023.

  10. “AnyDesk Free vs Paid - How They Compare.” Splashtop. September 12, 2023. Accessed October 4, 2023.

  11. “Hosting on Linux.” Reddit r/ParsecGaming. January 4, 2023. Accessed October 4, 2023.

  12. “How do I rotate my display when not using an X Server?” Ask Ubuntu. June 6, 2014. Accessed March 5, 2024.

  13. “Configure a user default session.” GNOME Library. Accessed March 30, 2024.

  14. “Chapter 8. Setting a default desktop session for all users.” Red Hat Customer Portal. Accessed March 30, 2024.