8

I've been using FVWM for over a decade, and for some time I've been concerned that the window manager is dying a slow death. I realize that 2.6.0 just came out a few days ago, and ironically that is what reminded me to look into a replacement - while a new stable version is good, it took so long (4 years between 2.4.20 and 2.6.0, and 2 years between 2.4.19 and 2.4.20) that I'm still unconfident in FVWM's future.

Thus, I'm wondering if there is a more modern window manager which has the following properties (these are the key things I like about FVWM and would like to keep):

  1. Focus-follows-mouse without auto-raise. I.e., if I drag the mouse into a window which is partially obscured, that window gains focus but does not come to the front.

  2. Multiple virtual desktops that I can switch between with the keyboard and that I can move windows between.

  3. Modifier key + mouse window manipulation that can be configured to the following:

    • left click + alt + shift = send to back if frontmost, otherwise raise to front
    • right click + alt + shift = maximize window vertically (horizontal size unchanged)
    • middle click + alt + shift = grab window and move it
    • middle chord + alt + control + shift = resize (drag pointer to side or corner and move that side or corner)

For all of these, "click" means click anywhere in the window, not just the frame. The move/resize operations should begin on mouse-down and end on mouse-up.

I don't use any desktop environment, just plain X11.

1
  • 7
    "Dying a slow death", long times between new versions, these may just be symptoms of mature software that has most/all features that it's philosophy supports, and that has been debugged. Andy Ozment takes a look at OpenBSD in "Milk or Wine" (andyozment.com/papers/…) and suggests that software does become less buggy as time goes on. Stay with FVWM if it meets your needs.
    – user732
    May 5, 2011 at 15:21

9 Answers 9

3

I think fvwm can do all that, it's pretty configurable in the relevant respects. Did you have trouble convincing it to do your bidding?

I used to use fvwm, but eventually switched to sawfish, because I wanted better programmable hooks. (Back when I last used fvwm, it was technically Turing-complete, but only through the PipeRead command, and didn't have hooks in the right place.) Sawfish is built like Emacs, with a Lisp surface over a compiled core. It supports multiple desktops out of the box. Everything you ask for either works by setting a few options or can be implemented in a few lines of code.

1
  • 3
    Oh, FVWM already does all that for me. It's just that FVWM is getting old, and I would like to try something more modern.
    – Reid
    Apr 29, 2011 at 0:38
3

Sardathrion has already mentioned Awesome WM, but without referring to the features mentioned in the question. Also, I thought I could share my own insights on using it.

But first, the demanded properties:

  1. Yes - by default.

  2. Yes+ - awesome actually re-defines virtual desktops and calls them "tags". It lets you, for example:

    • make a single window appear on any number of tags at the same time,

    • make any number of tags be viewed at once,

    • associate an application with a certain tag, so that it will always open on that tag, even if it isn't currently viewed (think for instance opening a browser in the background, without loosing sight of your terminal or whatever),

    • define a default layout for each tag - there are a number of layouts possible, including floating (the "typical" window behavior), several tiling schemes, maximized (each window gets maximized) and fullscreen.

  3. Yes - all of this is doable. You can define the action for any mouse button + modifier keys combinations, in the scope of a window, widget or globally. If you have any trouble defining this behavior, let me know and I'll help you out.

The two most striking properties of awesome are its speed and flexibility. Great performance is due to the fact that awesome is built on top of Xcb library instead of the old Xlib. (But since most lightweight WMs are fast, you'd probably need a really old hardware to feel the benefits.) Awesome is written in C and lua. The former ensures that the core is really fast, the later enables you to easily interact with all the properties of your desktop. In the configuration files, you can define both simple and sophisticated functions that reference the whole current WM state, including properties of currently active window, visible tags, widgets etc.

You can have a look at some screenshots on awesome wiki. If you search for awesome + Lua on sites like Github, you'll find loads of users' configs and use some of their enhancements.

2

I'm using the development branch for about two years now, AFAIR since 2.6.28 and testing other WM/DE now and then out of curiosity, and so far:

  • It did not crash a single time, so fvwm-devel or fvwm-unstable is pretty useable on desktop. I only had one bug with dynamic menu, didn't notice when it's gone.

  • Literarily every other window manager seemed to lack this or that functionality, what I missed the most was keybindings contexts and conditional window placement.

Sure, you can pick any 'modern' wm and try to configure it to meet your needs, probably work around some missing functionality with xbindkeys and/or xdotool, but fvwm is unique and you probably didn't mention some things which are essential for your workflow because you will only realize they were there when they will suddenly not work the way you expect them to in a modern window manager.

Sorry if it sounds somewhat arrogant from someone who is a sort of newbie compared to you, but it's the way I see it so far.

That said, new WMs worth trying are kwin (it has some interesting features like tabbing and tiling windows and compositing and is quite configurable, but I'm not sure how stable it is at the moment) and compiz, which can work as standalone window manager and has some really interesting plugins (I would mention 'group and tab windows' and 'window rules'), all the rest are either tiling, either *boxes or being developed for being as spectacular as possible.

1

Not sure if you would consider something like KDE but all your needs are available in KWin (Kde's WM)

1 . Focus-follows-mouse without auto-raise. I.e., if I drag the mouse into a window which is partially obscured, that window gains focus but does not come to the front.

Check http://docs.kde.org/stable/en/kdebase-workspace/kcontrol/windowbehaviour/index.html

2 . Multiple virtual desktops that I can switch between with the keyboard and that I can move windows between.

You can have as many virtual desktops as you want.

3 . Modifier key + mouse window manipulation that can be configured to the following:

  • left click + alt + shift = send to back if frontmost, otherwise raise to front * right click + alt + shift = maximize window vertically (horizontal size unchanged) * middle click + alt + shift = grab window and move it * middle chord + alt + control + shift = resize (drag pointer to side or corner and move that side or corner)

Easy to customize from the control panel (or manually if you need).

1
  • Re: 2 - Does it allow keyboard shortcuts for switching between virtual desktops (going straight to a specific one, not just left/right) and moving windows between them?
    – weronika
    May 11, 2012 at 8:01
1

Have you looked at the Awesome window manager? It used to be tilling by default but no longer is -- see comment. From the web page:

It is primarly targeted at power users, developers and any people dealing with every day computing tasks and who want to have fine-grained control on theirs graphical environment.

1
  • +1 Probably the best WM in the world ;) BTW, it is not tiling by default since a couple of releases now. The default layout was changed to floating. Nov 13, 2011 at 1:29
0

With some configuration you could get xfce to do what you want.

0

Almost certainly you can get Openbox to do this:

Configuration

Edit the file in ~/.config/openbox/rc.xml as follows:

Focus

<focus>
      <followMouse>yes</followMouse>
      <raiseOnFocus>no</raiseOnFocus>
</focus>

Bindings

<mouse>
    <context name="frame">
        <mousebind button="S-A-Left" action="press">
            <action name="RaiseLower"/>
        </mousebind>
    </context>
</mouse>

RaiseLower may or may not be what you want here.

See Actions for a full list.

0

Maybe have a look at Pekwm and its key/mouse configuration files. It's a lightweight and unobtrusive WM.

pekwm is a window manager that once up on a time was based on the aewm++ window manager, but it has evolved enough that it no longer resembles aewm++ at all. It has a much expanded feature-set, including window grouping (similar to ion, pwm, or fluxbox), autoproperties, xinerama, keygrabber that supports keychains, and much more.

1
  • Maybe I should mention I've been using it for a bit more than 5 years now. Sep 8, 2011 at 15:43
0

Maybe try Enlightenment? It's modern and very configurable. I don't know how to do "send to back if frontmost, otherwise raise to front" because it has a conditional, but other requirements are easy to configure.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .