Customized FVWM desktop
|Stable release||2.6.6 / March 15, 2016|
|Written in||C, Perl, Unix Shell|
|License||GNU GPL v2,
FVWM included in OpenBSD: BSD License
The F Virtual Window Manager (The F currently has no official meaning ) is a virtual window manager for the X Window System. Originally a twm derivative, FVWM has evolved into a powerful and highly configurable environment for Unix-like systems.
In 1993, Robert Nation, during his work analyzing acoustic signatures for the United States Department of Defense, began hacking twm with the intent of simultaneously reducing memory usage and adding support for virtual desktops.
Already known for his rxvt terminal emulator, Nation worked on reducing the memory consumption of his new window manager. Deciding to test FVWM's reception, on June 1, 1993, he bundled it with a rxvt release.
In 1994 Rob Nation stopped developing FVWM and made Charles Hines the maintainer. Rob Nation's last release of FVWM was fvwm-1.24r. The post-Rob Nation version of FVWM uses a different configuration file format and has a significantly different architecture. Many Linux distributions, as a result, distributed both fvwm-1.24r and later releases of FVWM as separate programs. As of 2009[update], fvwm-1.24r still compiles and runs on a modern Linux system without any problems. A small number of users continue to use the older FVWM release. In late 1998 the office of FVWM maintainer was abolished and further development has been conducted by a group of volunteers.
Originally, FVWM was the Feeble Virtual Window Manager, but at some point the meaning of the F was lost. When Google published the old news group archives acquired from DejaNews, the original meaning was re-discovered; however, the FVWM developers decided they prefer the "Mysterious F" interpretation and it has stuck to this day.
Many developers have based their own projects on FVWM in order to benefit from the years of refinement and development. Many of the popular window managers in use today are related to FVWM: Afterstep, Xfce, Enlightenment, Metisse and many more.
This is a partial list based on the documentation distributed with FVWM.
Many of these features can be disabled at runtime or compile time, or dynamically for specific windows or loaded and unloaded as modules, or many other possibilities. These are not rigid features, FVWM does not dictate how the user's desktop should work or look like but provides the mechanisms to configure the desktop to work, look and behave the way the user wants it to.
- Supports any number of virtual desktops, each divided into multiple pages.
- The viewport (the physical screen) can be moved smoothly (in configurable steps) in the virtual desktop area, independent of pages
- The viewport can move automatically when the mouse hits the border of the screen
- Full EWMH, ICCCM-2 and GNOME Hints support.
- Full internationalisation support, including multi-byte characters and bidirectional text.
- Xft2 font support with anti-aliasing, drop shadows of any size, at any offset and at any direction, text rotation.
- Any behaviour, action or event is fully configurable.
- Support of user defined Window Decoration Styles.
- Titlebars can be disabled, or rendered on any window edge. This can be done individually for each window type.
- Titlebars may have up to ten icons including minimize, maximize and close buttons.
- Animated Window Shading in all directions.
- Full PNG Support, including alpha blending.
- Perl programming library for extending FVWM using Perl, scripting and pre-processing of configuration files.
- Can be extended via scripting. Preprocessing allows dynamic configurations.
- Toolkit to build dialogs, menus and applications at runtime.
- Configurable desktop panels.
- Mouse Gestures allow to draw shapes with the mouse, and bind them to commands.
- Dynamic menus; utilities to browse the filesystem, fetch headlines from the internet from menus included.
- Session management support.
- Xinerama extension support to use more than one monitor.
- Dynamically extensible using modules.
- Supports focus stealing