What Now?

By now, you should have most of the packages needed to compile the following packages after this section. The good news is you are now done with the hardest part of this book. Congrats!

Well, how do you go from here? You could continue straight to the following chapters if you wish. You can even now follow BLFS. But to run graphical software you compile like Steam-1.0.0.81 and Wine-9.14, you will need a graphical environment. There are a few components you will need in order to get a graphical environment working and not accidently lock yourself inside of it without a hard reboot. The installation of those components are not covered in this book and which components you will need will depend on if you are going to use X11, Wayland, or both. This page acts as a simple nudge to help point you in the right direction, and when you are done, can come back and continue on with the next chapters.

X11

It is recommended to read up on the BLFS page Xorg-7 Testing and Configuration. It is pretty comprehensive. However, using NVIDIA-560.35.03 with X11 requires a slightly different setup.

X11 With NVIDIA

Using a conventional /etc/X11/xorg.conf can lead to issues, if X11 manages to even start. In order to use the NVIDIA driver when starting X11, run the following command as the root user:

nvidia-xconfig
[Important]

Important

The above command will overwrite the current /etc/X11/xorg.conf configuration file. If you wish to preserve it, move it out of the way or rename it.

If you desire to use a high refresh rate, using cvt as the method will result in failure. When you start the server, launch nvidia-settings as the root user and navigate to the X Server Display Configuration section on the left sidebar and change the Hz to the right of the screen size. Click Apply if you are done, accept the changes, then click Save to X Configuration File and if it gives the option, choose to merge the file. Note that this method requires GTK3.

If you have an integrated graphics card (being either AMD or Intel) and a discrete graphics card (being NVIDIA), check the Arch Wiki page on NVIDIA OPTIMUS. Please install the drivers for both cards.

X11 Components

There are typically three important components of an X11 environment:

  • a window manager or desktop environment

  • a terminal and/or launcher

  • and optionally a compositor

Window Manager or Desktop Environment

A window manager is an application that manages windows, their placement, how they move, and more. It is a minimal option for a graphical environment, not requiring a ton of packages and takes less disk and RAM usage. Good window managers include AwesomeWM, DWM, and BSPWM. In order to start these window managers, add a line to ~/.xinitrc :

echo "exec <WINDOW-MANAGER>" >> ~/.xinitrc

Then launch it:

startx

A desktop environment is a more user friendly graphical environment and provides much more than a standard window manager. It is also worth noting that a desktop environment also includes a window manager. Good desktop environments include Cinnamon, GNOME, and KDE Plasma. These can require a lot of setup and uses more disk space and RAM. These should be loaded by a display manager, like SDDM. A display manager is often loaded by a service or daemon.

Terminal or Launcher

By this point, you should know what a terminal is, whether it be a TTY or a graphical terminal. Terminals are almost a necessity and help when you are in a pinch. You can launch most applications with a terminal. This is useful when you have no other way to launch an application. There are a wide variety of terminals and some integrate better with the system depending on if you went with a window manager or desktop environment. Check the Arch Wiki page Category:Terminal emulators for a comprehensive list on some terminals you can go for and some on the page are in BLFS. If you decided to go with a window manager, make sure to add a keybind for your chosen terminal.

A launcher is what it sounds like: an application that launches the one you ask it to. Some launch applications by the binary name in the PATH variable, while others launch applications according to desktop file entries. Desktop files are often located in /usr/share/applications and ~/.local/share/applications. Don't be afraid to create your own! It's okay to be creative sometimes. Check the Arch Wiki page Category:Application launchers for a comprehensive list on some launchers you can go for. Desktop environments include their own launcher and are often accessed via the start menu. If you went with a window manager, make sure to add the keybind for the launcher.

Compositor

A compositor talks with Xorg-Server-21.1.13 and can change what is seen on screen. The changes compositors make on X11 can range from doing vsync, adding window animations which helps with presentation, and opacity. They can be taxing for the GPU if it is weak or the graphics driver isn't that performant. When gaming, it might be a good idea to temporary kill the compositor. These compositors aren't needed on X11; however, they make the graphical environment look nicer. The choice to have one is up to you. Check the Arch Wiki page Xorg Composite for a list of compositors. In order to enable them when starting a window manager, add the following line BEFORE the exec ... line:

<compositor> &

Desktop environments include their own and are started when the desktop environment loads up.

Wayland

Wayland is much more simple to set up than X11. Please read the X11 section above as much of the information is also relevant to Wayland. There are a few changes, however.

NVIDIA

Unlike X11, Wayland requires that the nvidia_drm module has the modeset option set to true, which is not by default. Do so by creating the following folder and file, then reboot:

mkdir -pv /etc/modprobe.d/nvidia.conf
cat > /etc/modprobe.d/nvidia.conf << "EOF"
options nvidia_drm modeset=1

Then you will only need to worry about the refresh rate if it's applicable to you. You won't need to worry about making sure the NVIDIA driver is used when starting Wayland. However, read through the installation instructions for compositors as they will likely have information regarding NVIDIA. Results can be shotty, sometimes the compositor won't be able to start. Be diligent.

Window Managers, Desktop Environments, and Compositors

Unlike X11 where components were more seperated, especially when using a window manager, this is not the case for Wayland. The window manager and compositor will always be combined. Desktop environments will combine both. This leaves the only things that need to be installed are a terminal and perhaps a launcher. The minimal graphical environments are called compositors instead of window managers, but desktop environments are still called desktop environments.

Compositors

Many X11 window managers do not have Wayland support. There are some unofficial ports that use certain reusable frameworks which would be called an X11 compositor, like wlroots (these are called compositor libraries). You can try some ports if you wish but some of them do their own thing which you may not agree with.

Native Wayland compositors include Hyprland, Sway, and Wayfire. In order to start these compositors, you can start them by using a display manager or simply run the binary that is of the compositor name. The choice is up to you how you wish to approach it.

Desktop Environments

Go with GNOME or KDE Plasma. They have good Wayland support. Like with X11, you can launch these using a display manager.