FVWM-Crystal aims to be an easy to use, eye-candy but also powerful desktop environment based on the F? Virtual Window Manager (FVWM). It uses following programs: FVWM as a window manager and "main core", icons on the desktop with support for more than 10 different file managers and custom commands (with optional Nautilus or ROX-Filer support), different terminal emulators inclusive xterm, aterm, mrxvt or urxvt, different music and medias players inclusive MPD, XMMS2 or MPlayer (there’s built-in support for controlling these programs, and several other tools for different functions, like setting a wallpaper or making screen shots. Fvwm-Crystal provide some unique features like the ability to bring in full screen virtually any application, and to flow through the full-screened applications and the desktop. In this document you will find a general description of FVWM-Crystal, how to begin with it and how to customize it.


First Start

FVWM-Crystal checks while your first login if ~/.fvwm-crystal exist and if old preferences must be converted to the new Fvwm InfoStore variables. In all cases, it should just start.

FVWM-Crystal will also check your locale and create the XDG localized user directories if they don’t exist. Those directories are common to most modern OS and are used to store dedicated files. As example $HOME/Music, $HOME/Documents and $HOME/Pictures.

Initial Media Player Setup

MPlayer is the default media player. A help screen can pop-up and show you how to setup the Media directories preferences, which tell FVWM-Crystal where your music and movie files are. You can do it now or later, but it must be done before to use the play-lists features found in the Music menu (or button).

For that, edit the file ~/.fvwm-crystal/preferences/MediaDirectories:

audio $HOME/Music
video $HOME/Video
cdrom /dev/cdrom0
dvd /dev/cdrom1

You can put as many lines you need. Each line have the following format:

type path

where type is one of [audio video cdrom dvd] and path is the full path to a directory or a device. Devices are used only for cd and dvd. Note that all players doesn’t support all the provided features. Their respective menus will be adjusted accordingly.

As example, you can have:

audio /home/name/Music
viedo /home/name/Video
audio /mnt/work/Music
video /mnt/usb/Video
dvd /dev/cdrom

When you are done, save the file. You can load the control for your preferred player from the preferences menu

Crystal -> Music -> Player -> Music player

or from the menu on the first music button.

In the same menu, you will find Recreate the playlists. This script will scan the paths pointed by the MediaDirectories preference file, and create the play-lists into $HOME/.fvwm-crystal/Playlists. They will be separated into an Audio and a Video part. We can cal them the Crystal play-lists. Don’t edit those files, all your changes will be lost the next time you run Recreate the playlists. Instead, 2 other directories will be created: $HOME/Playlists/Audio and $HOME/Playlists/Video. They are the User play-lists.

In the same Music menu, the play-lists operation are grouped. You can of course load them into the selected player. Copy playlist will copy the selected play-list from the Crystal play-lists to the User play-lists. Remove playlist will remove the selected play-lists from the User play-lists. Some players provide they own play-lists management system, FVWM-Crystal try to support them as well.

Some supported players must be setup before FVWM-Crystal can use them. For that, please refer to their respective documentation. If you have a DVB card, please refer also to the V4L-DVB Wiki at

Desktop Organisation

17 different desktop layouts, named recipes, are available.

Some are very simple and provide very few decorations. Others provide many buttons and decorations. A few of them mimic existing OS, like Nebulae which loosely mimic Windows or Amiga which mimic the Amiga OS.

You can change them via Fvwm-Crystal system menu

Preferences -> Recipes -> System

The other preferences apply to all recipes and are independent from each others. By example, you can choose to have desktop icons showing the XDG user directories and the mounted partitions, and to not have applications icons.

It is 2 menus, the system menu available with Alt + Win_R (Meta + Windows Left) and the application menu available with Alt + Menu (Meta + a "menu" key). A menu can also be available by holding a Left click on the root window (the desktop) if selected in System → Preferences → Desktop menu (On by default). The content of that menu depend on the recipe in use.

Decorations common to all recipes

Not all recipes use all followings decorations called buttons, but they can be used in any recipe, inclusive your own ones.

The "Crystal" Button

or "FvwmButtons-MainMenu" is the little button with a diamond.

There are some mouse bindings available:

  • left clicking open the system menu

  • middle clicking change the wallpaper randomly

  • right clicking on some recipes open the applications menu

The Amiga recipe is different:

  • left clicking shift the top bar to a menu bar and back

  • middle clicking change the wallpaper randomly

  • right clicking open the system menu

When the button is located at the top left corner:

  • mouse wheeling will change the screen resolution

The Media Buttons

They are 4 grouped media buttons - FvwmButtons-Music - providing controls and menus for the supported media players and mixers. For a description of their bindings, consult man MouseBindings and man KeyboardBindings, or the html documentation.

The same functionalities are provided by the Music menu, which is located in the System menu.

The supported media players are alsaplayer, audacious, cdcd, cmus, mocp, mpd, mplayer, mplayer2, quodlibet and xmms2.

The supported audio mixers are alsamixer and aumix, plus the mixers of the players. QJackCTL is also supported.

  • left clicking on the first media button will open a menu.

In it, Music player is where you choose the player and can start it. Recreate the playlists will scan your music and video files and create the play-lists for you. For that, it will use the preferences file you edited in the section "First Start". It is also a mixer preferences menu where you can choose the mixer and the sound card.

Each player have its own features set, and the Music menu and functions will change accordingly.

As example, with cdcd you have a cd player and you will be able to control it, when with mplayer, you have an universal media player, and FVWM-Crystal will even recognize if you have a DVB card and use it. Basic stream capture is enabled and use the standard C MPlayer key binding. See man mplayer. This will create a stream dump in $HOME. That file will be usable only with MPEG sources, and it can be edited with applications like Kino.

The Application Panel

It is an auto generated panel which provide one button for each FreeDesktop menu main category. The icon of each button is the icon of the preferred application of that category. The mouse bindings available are:

  • left clicking open the application menu of the category

  • middle clicking on some recipes launch the second preferred application

  • right clicking launch the preferred application

These menus have full support for the additional FreeDesktop categories, which mean much less modifications will be needed in comparison with many other desktops. And last but not least, your modifications will never be lost. It is why at the first place I begun with Crystal and I will keep it that way. See man ApplicationDatabase for how to customize the application menu (the examples are at the end).

More: the files in the applications database are scripts. You can put anything you want into them. You will find them into $prefix/share/fvwm-crystal/fvwm/Applications and $HOME/.fvwm-crystal/Applications, and can copy them fro this first location to the second one. The files in the second path will take the precedence. The same apply for the icons directory.

The same database is used to generate the application menu available with the system menu on some recipes, and with the Alt+Menu key binding.

The application database provided by FVWM_Crystal contain a large set of menu entries and application icons. You can generate extra database menu entries and icons from the preferences menu: Diamond → Preferences → Generate application menu. This will populate $HOME/.fvwm-crystal/Applications and $HOME/.fvwm-crystal/icons.

The 2 first time you run this script, it will copy 2 preferences files and show help messages.

Those files are $HOME/.fvwm-crystal/preferences/IconDirs and $HOME/.fvwm-crystal/preferences/DesktopDirs. They must contain the full path to where the icon and desktop files provided by the applications are stored, typically something like /usr/share/icons and /usr/share/pixmaps for the icons, and /usr/share/applications and /usr/share/applications/kde4 for the desktop files. The 2 preference files are self explained.

The Clock

As it name describe it, a clock.

The Pager

It is a miniature illustration of the virtual desktop pages with mini windows. By clicking on each of the segments you can change the page.

For a description of the bindings, see "man MouseBindings". * Some recipes provide only a small button. Clicking on it will show or hide the pager.

The number of desktop pages can be changed on the fly from the preferences menu, option Desktop geometry. If necessary, windows will be moved on the last available desktop page.

Notification area

Both stalonetray and trayer are supported. For best support will all recipes, use stalonetray.

Icon Manager

A recipe can provide several icon managers. They can show the icons from the running applications on the whole desktop or on the current desktop page. They can be grouped by applications type like terminals or other application types. The application name can be shown in the icon manager or as a tool-tip when the mouse is over the icon. And different actions are bound to these icons.

Some recipes provide an icon manager for the iconic applications. With these recipes, no application icons will be on the desktop, independently of what choice was made in the preferences.

Desktop Icons

It is 2 types of icons: application icons and desktop icons.

Desktop icons are typically used to launch a file browser at a given path. You can choose in Preferences → Desktop manager how FVWM-Crystal will manage them:

  • None will remove the desktop icons

  • FVWM-Crystal will let FVWM-Crystal manage these icons

  • ROX_Filer will manage these icons

  • Nautilus will manage these icons.

You can change on the fly between None and FVWM-Crystal. The other changes need to logout and restart Xorg and FVWM-Crystal. At that time of writing, the FVWM-Crystal-3.2.0 desktop icon managing is mature enough to considerer that ROX-Filer and Nautilus are provided only as a commodity or for backward compatibility or convenience. (See man CrystalRoxHOWTO for rox.)

When FVWM-Crystal is selected, it will show all its icons be default. Right clicking on the Home icon will open the Desktop icons preference menu. the Home icon is mandatory, both the XDG user directories icons and the partitions icons are optionals.

In the same menu, you can select the actions for the left and middle clicks. Several file managers have built-in support: Thunar, Worker (a very good Directory Opus clone), Midnight Commander (mc in short), ROX-Filer, Nautilus, Krusader, Xfm, 4Pane, Ranger (a Vim like file manager), PCMan FM, gentoo (another dopus clone), Konqueror, emelFM2 (which, like mc, support extfs), Dolphin and SpaceFM.

A custom command can also be set where both console commands and X commands can be used. A self documented form will be launched, which let you update and save the configuration.

If pmount-gui is installed, the contextual menu of the Home icon will show 2 options for mounting and unmounting the removable devices. The contextual menu of the partition’s icons will show the mount points of the patitions and an item for umounting the partitions. This options will use pumount if the partition is mounted in /media, umount otherwise. You will also get menu items to mount the unmounted partitions, if they are present in /etc/fstab with the option user(s).

Application Icons

They are the icons of the iconic applications. This will work only with the recipe that doesn’t provide an icon manager for them.

In Preferences → Type of icons, you can choose between:

  • None

  • Thumbnails

  • Amiga

  • Mwm

Amiga and Mwm will show the application icons. Simple clicking on the Amiga style icons will restore the application window. Double clicking on the Mwm style icons will do the same.

Full Screen Navigation

For what I know, FVWM-Crystal is the only GNU/Linux desktop that provide that feature.

In short, Full Screen Navigation is the ability to bring in full screen virtually any application, and to navigate between these full-screened applications, as well than between them and the desktop.

It can be many useful use cases for it. As example, if you have several browser windows open and want to zap quickly. Or with a file manager like mc which is limited to 2 panels. It is one limitation: the full screened windows must be on the same desktop page. This limitation is a force at the same time, because you can zap the desktop pages too, and you can have full-screened and "normal" windows in any desktop page at the same time.

Try it. Launch a few applications on the current desktop pages ans put them in full screen with Alt + KP_*. When this is done, use Alt + Shift + KP_* to zap between the full screened windows and the desktop. With Alt + F<n>, you can zap the desktop pages.

In fact, this functionality is not new. It was already available with the first Amiga computer in 1985, when Windows was not born and the Mac was boring in black and white. It was called the window stack. With the Amiga recipe, simple clicking on the button at the top right corner provide that function too.


Most preferences are applied on the fly. Some, like a recipe change, need a restart.

Select recipe

Select a recipe.

Desktop geometry

Select the number of desktop pages from 1 to 9.

Characters fonts

Launch FVWM-Crystal font selector dialog. Panel font is used by the buttons, Tittle font by the window title bars, and Menu font by menus. FVWM-Crystal support xft fonts and this dialog let you visualize the fonts, save and apply the fonts, as well than edit, save and restore the example string. Restore will restore the example string to its original value. To restore it to its saved value, you have to quit and launch again the font selector.

Handle width

Set the handle width between 1 to 7 pixels. Handles are used to resize the windows with the mouse. See also *man KeyboardBindings".


Start and stop translucency. Off by default, this setting will not survive a restart. When On, you can use the mouse wheel on the window title bars to set their translucency.

Bling bling

Start and stop the bling bling. It is an effect that will shift the translucency with the focus. This setting is Off by default and will not survive a restart. Translucency can have a negative impact whit some softwares like MPlayer. In the worst case, shift to a primary console with Ctrl + Alt + F<n>, login, run killall mplayer or killall -9 mplayer, and get back to FVWM-Crystal with Alt + F7.

Default terminal

Set the terminal available with Right click on the root window. Possible choices: GNOME-Terminal, Multi-GNOME-Terminal, XFCE4-Terminal, Terminator, MRxvt, URxvt+, ATerm, ETerm and XTerm.

Fvwm console terminal

Set FVWM console terminal, Alt + ; will show/hide it, and it will be present on all desktop pages. It will only send commands to FVWM. Very useful to try any FVWM command.

QuakeConsole termianl

Set terminal for the QuakeConsole. Alt + ' (grave) will show/hide it, and it will be present on all desktop pages. You can use it for whatever console you want, by example htop. Supported by these 2 last terminal are MRxvt, URxvt, ATerm and XTerm.

Desktop manager

Select the manager for the desktop icons. See above.

Icon type

Select the icon type for iconic applications. See above.

Desktop menu

Set On or Off the menu available with left clicking.

Notification area manager

Select stalonetray or trayer, and let you choose the size of the area between 0 to 20 icons.

Focus policy

Select the focus policy between

  • Amiga - click to focus without raise

  • FVWM-Crystal -enter to focus without raise

  • FVWM-Crystal with raise - enter to focus with raise

  • MS Windows - click to focus with raise.

With the without raise policies, a click on a title bar will raise the window.

Privileged terminals

With URxvt and ETerm, set the FPOverrideGrabFocus style. Such terminals will never loose the focus.

Generate application menu

Generate the databse entries and icons for the applications menu.

Silent operations

Add "2>/dev/null" at the end of most commands launched by FVWM-Crystal.


Structure of Fvwm-Crystal

FVWM-Crystal is split in a system, a system wide configuration, and an user configuration part.

The system part is located in /usr/local/share/fvwm-crystal/fvwm (default) or /usr/share/fvwm-crystal/fvwm (distribution related). We can call it <system>

The system configuration part is located in /etc/X11/fvwm/fvwm-crystal. Call it <config>

The user part is located in ~/.fvwm-crystal. <user>

You can copy any file from the system part (without the /fvwm/) to the 2 other parts. Files in the user part will be used first, second will be the files in the system configuration part (empty be default), and third will be used the files in the system part. This is true for all files loaded with the Include command, which is the case for most FVWM-Crystal files.

Location of some Files and their Function

<system>/config will be the first file loaded by FVWM. It initialize some variables and load the whole FVWM-Crystal configuration, inclusive the recipe in use.

<system>/components/Standard is the second file loaded by FVWM. It contain the functions used to load the other file with respect to their priorities part order. After, it load other files with functions used in many places.

The other files in <system> are grouped in directories. Each directory correspond to a group of functions. For example, <system>/preferences are for the saved preferences, <system>/apps are functions to control some main features of FVWM-Crstal like the Desktop Icons, the Screen Saver, or the Fvwm Console.

As a rule, make small modification at a time. And RTFM. FVWM is not so difficult, but it is very complex. This complexity make things harder. So, try to keep focused on one thing at a time.

FVWM documentation is huge, The best place to read it is on the FVWM website where you will find an html version, which ease the navigation. Use the stable 2.6 branch, the unstable 2.7 is outdated and will not work well with FVWM-Crystal.

Autostart of Applications

Copy <system>/preferences/Startup to <user>/preferences/Startup and put your commands here.

Custom FVWM Commands

Create the file <user>/userconfig and put your FVWM commands here. It will be the last loaded file.


This man page was written by Dominique Michel <> © 2013

FVWM-Crystal and all the scripts and other files coming with the distribution are subject to the GNU General Public License (GPL). Please refer to the COPYING file that came with FVWM-Crystal for details.


Bug reports can be sent to the fvwm-crystal-users mailing list at


KeyboardBindings(1), MouseBindings(1), FVWMCrystalFAQ(1), TIPS(1), CrystalRoxHOWTO(1), ApplicationDatabase(1)