October 20th, 2004, 06:22 PM
The F? Virtual Window Manager
This is a post from a fellow fvwm lover as myself who fairly sums up my feelings about FVWM and why reinvent the wheel
fvwm is incredible, every tiny detail is configurable and any feature or behaviour of any other window manager you have seen or have imagined can be repliacted, tweaked, refined and added to fvwm.
Whats more, fvwm is fast, very fast. The fvwm developers are craftsmen, the code is well written and clean, very efficient and requires very little resources, with no bloat. The developers have prevented the huge range of features from bloating the code by designing a module interface, that means any optional features such as taskbars, pagers, animations, etc, are written as modules that are entirely optional and never have to be loaded unless required.
Fvwm is also mature, the project is now over 10 years old and is still in active development. Its totally bombproof, even the development branch (which contains lots of cool new features, including more eye-candy), and there is an active community and lots of example functions and rc files to play with.
So why isnt everybody using it?
I really dont know why everybody isnt using it, you can replicate the appearance and behaviour of almost any function or feature in any other window manager, and because of the high quality codebase, you will end up with a faster, less resource hungry, more stable envirnoment. And will also be abe to extend and customise it to a far greater degree, even mixing the features and behaviour of all your favourite window managers together.
Maybe you like the blackbox look?
How about Afterstep?
What about OSX, QNX or Windows-xp!
Or strange mixtures from different places, or entirely original creations?
And of course, it can integrate with the gnome/kde desktops,
There are more screenshots here, here, here, here, and one of mine here.
fluxbox users can get tabs in fvwm by loading the FvwmTabs module. And you can make almost everything transparent in fvwm, with the latest version in portage you can even get translucent menus
The bindings in fvwm are extremely configurable, you can set up fvwm so you never have to use the mouse, or set up Emacs-like key bindings, or anything you can think of.
Any behaviour can also be described in Fvwm, using simple functions, you can even code your own modules in C or Perl to extend it even further. For example, a friend of mine recently decided to give Fvwm a try after using sawfish for some time, he asked if it was possible to "Pack windows", move them in some direction until they hit something, eg another window or the edge of the screen, I experimented for a while and came up with this
+ I SetEnv low_w 0
+ I WindowId $3 Raise
+ I All (CurrentPage !Iconic AcceptsFocus \
!Shaded Visible) PipeRead "test `expr $[w.y] + $[w.height]` -gt $[low_w] \
-a `expr $[w.y] + $[w.height]` -lt $0 \
-a \\( \\( $[w.x] -gt $1 -a $[w.x] -lt `expr $1 + $2` \\) \
-o \\( $1 -gt $[w.x] -a $1 -lt `expr $[w.x] + $[w.width]` \\) \
-o \\( $1 -le $[w.x] -a `expr $1 + $2` -ge `expr $[w.x] + $[w.width]` \\) \
-o \\( $[w.x] -lt $1 -a `expr $[w.x] + $[w.width]` -gt `expr $1 + $2` \\) \
&& echo SetEnv low_w `expr $[w.y] + $[w.height]` \
|| echo Nop"
+ I WindowId $3 AnimatedMove keep $[low_w]p
#+ I WindowId $3 RefreshWindow
AddToFunc PackWrapperUp I NoWindow PackWindowUp $[w.y] $[w.x] $[w.width] $[w.id]
Key Up W SM PackWrapperUp
Anything is possible.
Okay, there is no fancy gui for configuration, and the default configuration isnt pretty, which may turn a few users away, but the man page is well written and easy to get started with. There is even an fvwm-themes system that will let you mix and match pre-written configurations together, which is easy and fun to use until you get comfortable enough to start working on your own configuration.
I hadn't really ever thought about any of it until I got so sick and tired of looking at gnome become more and more windows like everyday. I sat down started tinkering with fvwm, 2 days later realized I needed to go eat!
Anyway here are a few links for you to investigate on your own:
http://zensites.net/fvwm/guide - simple beginners guide, if the man page scares you
http://fvwm-themes.sourceforge.net/ - if you don't want to start fresh there is fvwm-themes which includes some prewritten themes for FVWM, the themes can be customized and mixed.
http://www.fvwm.org/ - Official FVWM homepage