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.
Currently most GNU/Linux distributions use X.org for drawing the desktop (with wayland being planned to replace it later). X.org is designed to be modular and highly customizable. One of the results of this design are that X.org doesn't manage windows, instead depending on a special client application called a window manager. Said window manager (WM in short) moves and resizes windows, among other things, often in response to user input. Window managers also do many more, like automatic windows layout, compositing, drawing decorations, drawing panels, providing multiple workspaces etc.
Windows managers can be divided into these three categories:
- Stacking - they allow windows to draw their contents one after another on the desktop, starting with the one which is the most obscured one 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 managers allows to use semitransparent windows.
- Tiling - The windows do not overlap.
- Static tiling WMs such as ratpoison alwas 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.
It should be added that many WMs are stacking and tiling at the same time, and the behaviour 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 windows manager and tiles windows (for example: pytyle).
Finally, there exists programs such as xcompmgr, that work together with a non-compositing WM making it compose windows, allowing for effects such as transparency.
List of window managers and similar toolsEdit
- Compiz - is 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 graphic are faulty.
- KWin - is a compositing WM used in KDE. It's comparable in feature set to compiz.
- Mutter - the default windows manager for GNOME.
- Xfwm - the default WM for XFCE.
Compositing tools for stacking/tiling managers:
Tiling tools for non-tiling WMs:
For some more information on this topic, see: this page.
A panel is a special window, that is usually always visible on screen and is specially treated by a WM. When other windows request to be maximized, their size is changed to maximal size allowing panels to still be visible. Often panels display widgets such as a clock, a list of windows on the current workspace, launchers (icons that run programs), and the notification area (a place where programs can put small icons).
A special type of panels are docks. Docks work like the dock in Mac OS X. Their distinctive feature is that they show launcher icons that, when the associated application is running, work as their window icon.
List of panelsEdit
- Avant Window Navigator - a customizable dock, extensible through plugins written in C and Python.
- Xmobar - a panel made to look and work like the one Xmonad draws.
- LemonBoy's Bar
See also this.
GTK+ is a tookit responsible for drawing tabs, scrollbars, panels, and other such things. Because many graphical applications (from web browsers to text editors) rely upon GTK+ for their rendering needs, changing the GTK+ theme will probably change the look of most of your graphical applications. Most systems will have both GTK+ 2.0 and 3.0 installed, but most themes are packaged for both versions of GTK+, and might also include stuff for a few window managers.
Good places to look for these themes include gnome-look.org and deviantART.