I'm still fairly new to Linux. I've used it for about three or four months in virtual machines, tried several distributions including Arch and Fedora, and experimented with desktop customization. I know basic commands such as cd, ls, and cat, but I'm not yet comfortable editing with Vim or Neovim, managing dotfiles, or understanding the differences between terminal emulators like Foot and Kitty. I've also broken installations several times, though reinstalling the virtual machine made recovery easy.
I'm considering using Linux as my main operating system for a while, with desktop customization as my main project. What fundamentals should I learn first for:
1. Customizing or "ricing" a desktop environment
2. Troubleshooting, especially hardware and graphics drivers
3. Understanding and learning the various customization tools
3 Answers
Linux customization is mostly assembling and configuring separate pieces. You’ll eventually encounter the display server or protocol, such as X11 or Wayland, a desktop environment or window manager, a login manager, a compositor where applicable, notification tools, launchers, bars, terminals, shells, and text editors. Each program has its own configuration format and capabilities, so there isn’t one universal way to rice a system.
A terminal emulator such as Kitty or Foot is just the graphical application that displays a shell session. The shell itself—such as Bash, Zsh, or Fish—is the program interpreting your commands. Learn that distinction along with basic file permissions, processes, package management, logs, and service management. Those skills will help much more with troubleshooting than memorizing a particular set of customization tools.
Drivers depend heavily on the hardware and distribution. The easiest path is usually choosing hardware with good Linux support, since proprietary graphics hardware can require extra repositories, packages, or configuration. Before switching permanently, test your actual Wi-Fi, graphics, audio, Bluetooth, suspend, and external-monitor setup from a live environment.
When something fails, gather information instead of guessing: check recent logs, identify the hardware, confirm which driver and kernel are in use, and read the documentation for your distribution. Make backups and keep a simple working configuration so you can undo changes. Customization is fun, but changing the graphics stack or many system components at once makes problems much harder to isolate.
Start by learning how to repair what you break instead of immediately reinstalling. That process teaches you how the system is organized, which changes are safe, and how to prevent the same problem later. Keep testing risky changes in a virtual machine or on a spare installation until you’re comfortable recovering from mistakes.
For customization, first understand the difference between a complete desktop environment and a window manager. A desktop environment includes many components already, while a window manager usually needs separate tools for notifications, launching applications, panels, wallpapers, and other everyday features. For example, a setup might combine Sway with a login manager, notification daemon, and application launcher. Pick one component at a time, read its documentation, and change only a few settings so you know what caused an issue.
Dotfiles are simply user configuration files, often stored in your home directory. Learn how to inspect, back up, and restore them before copying someone else’s configuration. Other people’s dotfiles can be useful references, but they may depend on different software or paths and can be difficult to troubleshoot blindly.

Related Questions
How To Get Your Domain Unblocked From Facebook
How To Find A String In a Directory of Files Using Linux