We are still actively working on the spam issue.
GNU/Linux distributions are well known for their ability to customize the way they work to a large degree. The purpose of this page is to give the reader some ideas on what can be customized and how.
A desktop environment is a complete suite of software designed to maintain a certain experience in a Linux environment. It will contain a display manager, window manager, session manager, file manager, and various other default applications that a user may find useful (web browser, audio player, etc). A desktop environment is not a required part of a Linux experience, although most Linux distributions will include one by default. It is entirely possible to have a working graphical environment without installing a desktop environment, instead opting to only use a window manager and utilities that you require, and many users choose to do this.
- KDE is more resource intensive, but if you want something with a bit more features, eyecandy, and stabilizability, this may be for you.
- GNOME is extremely polarizing. If you like the Windows 8 Start Screen and similar touch interfaces, try it out. Else, stay clear.
- Nearly as lightweight as Xfce, GNOME fork with a traditional desktop. Very customiseable and featureful.
- XFCE is a less resource-intensive DE. If you want something that runs fast and allows for lots of customization without giving up too many features, this DE is for you.
- LXDE is the most minimal DE around. If you are running on a toaster supercluster or just need the most battery life out of your freedom device, and are too lazy/dumb to setup a WM, LXDE is the only correct choice.
- Crazy eye candy. Light on system resources.
- Fork and continuation of GNOME 2 for those who prefer it.
Currently most GNU/Linux distributions use the X Window System for drawing the desktop (with Wayland being planned to replace it later). The X.org Server is the most common implementation of the X Window System. It is designed to be modular and highly customizable. One of the results of this design is that X.org doesn't manage windows. Instead it depends on a special client application called a window manager. The window manager (WM in short) moves and resizes windows, among other things, often in response to user input. Window managers also do much more, like automatic window layout, compositing, drawing decorations, drawing panels, providing multiple workspaces, and so on.
Window managers can be divided into these three categories:
- Stacking - They allow windows to draw their contents one on top of another on the desktop, starting with the one on the bottom and going up in the "Z order".
- Compositing - Provide a buffer for each window to draw on and then compose those buffers together creating the desktop image. This type of window manager allows use of semitransparent windows.
- Tiling - The windows do not overlap.
- Static tiling WMs such as ratpoison always use a set number of equal size tiles, and the tiles do not move
- Dynamic tiling WMs such as awesome allow you to change the layout of the tiles, the number of tiles onscreen, and other things. it should be noted that awesome also has a stacking mode in addition to many tiling configurations.
Many WMs contain both stacking and tiling modes, and the behavior can be switched by the user.
It's also possible for WMs that don't tile windows to use a separate application that works together with the main window manager to automatically tiles windows (for example: pytyle).
Finally, there are also composite managers such as xcompmgr that work together with a non-compositing WM making it compose windows, allowing for effects such as transparency and drop shadows.
List of window managers and similar tools
- Awesome - Config file is written in lua, very flexible.
- Dwm - Configuration is done through the config.h source file. Dwm needs to be recompiled for config.h changes to be applied
- Compiz - A compositing WM being developed since 2006. It uses OpenGL (AIGLX). It is know for having a lot functionality and providing many interesting effects. However, it can cause problems if the graphics are faulty.
- KWin - A compositing WM used in KDE. It's comparable in feature set to compiz.
- Mutter - The default window manager for GNOME.
- Xfwm - The default window manager for XFCE.
Compositing tools for stacking/tiling managers:
Tiling tools for non-tiling WMs:
For some more information on this topic, see: this page.
There are two main toolkits you need to concern yourself with styling: GTK and Qt. Luckily, there are themes for both that will adapt to the other. So find a theme for whichever toolkit your distro uses prominently. For KDE based distros, that's Qt. For everything else, that's GTK.
There are a number of great themes. All of these are GTK3 compatible. To apply them, see GTK Theming.
- Numix - A very popular theme.
- Numix Arctic
- Simplix - Supports Xfwm, Xfce-Notify, GTK2, GTK3
- Xflat a rat - Minimalist looking
- ElementaryLi - Make your distro look like a Mac!
- Greybird - See above
- SimpliX - Great looking minimal looking windows border
Set Qt themes with the qtconfig tool.
- GTK+ - Builtin. Adapts the to theme that GTK is using.
KDE allow you to download most of the following by simply going into the relative setting, press the "get new" button, and search for the name.
- KFaenza - Port of the famous Faenza theme to KDE
- FaenK - Incomplete theme, need KFaenza installed to display all the icons
- kAwOken - Nice light/dark gray icon theme
- Fusion-qt4 - Port of the qt5 default style to qt4, needs compiling to install
- Oxygen-trasparent - Oxygen, but with transparency
- Diamond - Transparency, almost unusable without composing turned off
- Caledonia - Dark "flat" suite, include a Plasma theme, icons and custom colors.
- uniq - Another suite, includes a window decorator, a qtqurve theme and custom colors.
What does /g/ use?
A common ricing configuration which can be seen amongst /g/ users in desktop threads is something along the lines of this:
- Distro: Arch Linux
- Window Manager: Awesome WM
- Terminal: urxvt
- font: tewifont
- Music player: mpd + ncmpcpp (usually with mpdvis)
- IRC client: weechat or irssi
- Image viewer/desktop wallpaper display: feh
- GIF recorder: Byzanz