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.82 and Wine-9.21, 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.
While you are at it, make sure you have followed The Bash Shell Startup Files if you have not already as the files in that section set necessary variables.
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.
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
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), run the
following as the root
user:
nvidia-xconfig --prime
It will then say you will have to run a few commands. While in a
TTY, put those commands into your ~/.xinitrc
file, or else when you start Xorg
you will be greeted with a black screen. You can also put the
commands in a different script, use the keybind to open a
terminal, execute the script while blind, and the graphics should
appear like normal. Running the commands in a TTY will complain
that it is unable to find any screens. Make sure sure you have
installed drivers for both your iGPU and dGPU.
If you compiled Zink in Mesa-24.2.7, chances are X11 or any Wayland compositors will use the Gallium3D driver meant for your GPU specifically, like Nouveau for NVIDIA GPUs. You can override this by setting the following variable:
export MESA_LOADER_DRIVER_OVERRIDE=zink
This could be considered unstable, so if you experience crashes, the Zink driver could be the issue and you should use the Gallium3D driver meant for your GPU instead.
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
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.
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.
A compositor talks with Xorg-Server-21.1.14 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
line:
exec
...
<compositor>
&
Desktop environments include their own and are started when the desktop environment loads up.
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.
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 &&
cat > /etc/modprobe.d/nvidia.conf << "EOF"
options nvidia_drm modeset=1
EOF
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.
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.
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.
Go with GNOME or KDE Plasma. They have good Wayland support. Like with X11, you can launch these using a display manager.