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.
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
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
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:
where type is one of [
and path is the
full path to a directory or a device.
Devices are used only for
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/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 linuxtv.org V4L-DVB Wiki at http://linuxtv.org/wiki/index.php/Main_Page.
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
The supported audio mixers are
aumix, plus the mixers of the players.
QJackCTLis also supported.
left clicking on the first media button will open a menu.
Music playeris where you choose the player and can start it.
Recreate the playlistswill 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
- 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
$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_Crystalcontain 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
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/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/pixmapsfor the icons, and
/usr/share/applications/kde4for 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 managerhow FVWM-Crystal will manage them:
Nonewill remove the desktop icons
FVWM-Crystalwill let FVWM-Crystal manage these icons
ROX_Filerwill manage these icons
Nautiluswill manage these icons.
You can change on the fly between
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.)
FVWM-Crystalis selected, it will show all its icons be default. Right clicking on the
Homeicon will open the
Desktop icons preference menu. the
Homeicon is mandatory, both the
XDG user directoriesicons and the
partitionsicons are optionals.
In the same menu, you can select the actions for the left and middle clicks. Several file managers have built-in support:
Worker(a very good Directory Opus clone),
Midnight Commander(mc in short),
Ranger(a Vim like file manager),
gentoo(another dopus clone),
emelFM2(which, like mc, support extfs),
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.
pmount-guiis 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
pumountif the partition is mounted in /media,
umountotherwise. 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:
Mwmwill show the application icons. Simple clicking on the
Amigastyle icons will restore the application window. Double clicking on the
Mwmstyle 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:
- 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
- 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
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 <firstname.lastname@example.org> © 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 https://mail.gna.org/listinfo/fvwm-crystal-users/.
KeyboardBindings(1), MouseBindings(1), FVWMCrystalFAQ(1), TIPS(1), CrystalRoxHOWTO(1), ApplicationDatabase(1) http://fvwm-crystal.sourceforge.net/