I'm using the F Virtual Window Manager (FVWM). I'm wondering how to customize the window appearance (the theme) to

  1. Add a minimize, maximize, and close button, so I have four buttons, arranged like this:

    |=         (Window Titlebar)       N M X|
    |                                       |
    |                                       | 
    |                                       |
    |                                       |
    = is an - button; when clicked on it shows a menu containing move resize raise lower (De)Iconify Delete Close Destroy Identify
    N is minimize
    M is maximize
    X is close

  2. How could I set the height of the window title bar?

  Answer: The height is govern by the `(Window Titlebar)` **Font size**.  
          TitleStyle Centered Height 24  #for example
  • This question is absolutely clear if you know what FVWM is (although it is definitely too broad as well -- but no one voted for that...).
    – goldilocks
    Feb 28, 2014 at 21:06
  • I knew this question would get negative feedback. but it is actual question and is clear.
    – r004
    Feb 28, 2014 at 21:11
  • Its probably getting close votes from people missing FVWM in the title. Going to edit to fix.
    – derobert
    Feb 28, 2014 at 21:15
  • Could you separate it in small tasks instead of dropdown, buttons and theme all together
    – Braiam
    Feb 28, 2014 at 21:22
  • 1
    I'd separate this into separate questions. Many people (such as myself) don't mind looking something up quickly if I'm sure about it and am already familiar with the docs, but don't like getting dragged into an entire opera ;|
    – goldilocks
    Feb 28, 2014 at 21:47

1 Answer 1


I'm a little rusty w/ FVWM, and what you are asking for here amounts to a chapter in a book, so I'll just provide a few pointers. In the future, try to ask one short specific question and refer to what you've tried/know. Note that the fvwm man pages are very extensive and in-depth. If you can't get along with them, I'd give up now, because that is the primary documentation.

The title bar buttons are numbered. You'll have to play around with that -- the (in-use, working) config I have at hand only uses 3 and 4 which seem to correspond to your = and X. I believe you have to define a style for them to appear, e.g.:

ButtonStyle 3 \
        ActiveUp (AdjustedPixmap gearfolder_32.png) \
        ActiveDown (AdjustedPixmap Xx.png) \
        Inactive (AdjustedPixmap gearfolder_32.png) 
ButtonStyle 4 \
        ActiveUp (AdjustedPixmap Jupiter_32.png) \
        ActiveDown (AdjustedPixmap Xx.png) \
        Inactive (AdjustedPixmap Jupiter_32.png) 

The buttons are associated with actions this way:

Mouse 1 3       A       Menu Window-Ops Nop

1 is the mouse button number, 3 is the title bar button number (corresponding to the ButtonStyle stuff above). 'A' refers to "any" modifier (others being 'C' = ctrl, etc.) including none. I don't know why it ends with 'Nop' (no-op -- maybe a menu action could go here), but the Window-Ops menu can be defined, e.g.:

AddToMenu Window-Ops
+       "(Un)Stick" Stick
+       "Move" Move
+       "Resize" Resize
+       "Layer Up" LayerUP
+       "Iconify (CM-i)" Iconify
+       "Layer Down" LayerDOWN
+       "Maximize" Maximize-Func
+       "" Nop
+       "change page" Popup change-page
+       "" Nop
+       "end" PopUp end-window

That's the kind of stuff you're seeing when you click the left title bar button. The "" Nop here just produces a horizontal line.

So, this is a partial answer. The following keywords mentioned here are all explained in man fvwm; they tend to be grouped by relation:

  • ButtonStyle, ActiveUp/ActiveDown, Inactive
  • AdjustedPixmap
  • Mouse, Menu
  • AddToMenu, PopUp, Stick, Move, Iconify, Resize

The other terms (eg. 'Window-Ops', 'Maximize-Func', 'LayerUP') are defined in the config I pulled from (which I did write, BTW, once upon a long time ago), although some of them are the same as identifiers used by example in the man page, I think.

Since getting all this straight can require a lot of fooling around, it's nice to be able to reload the config without logging out/restarting X. Add this to a menu somewhere:

+        "Restart FVWM" Restart

But; Restarting FVWM will restart every command that is stated in the config file and the FVWM commands. This will cause unwanted extra load and some messy duplications. So if you want to test single items and see how they change the FVWM look, you could use FvwmConsole.

To save yourself some time; you can now tweak the config and see what happens.

  • It was nice to start with your "Partial Answer". question being bad or not; i must say I am tired of browsing half cocked memos and Help pages. FVWM has the worse man page and tutorial. Also the old and new stuff is mixed every where without any indication as to date or time.
    – r004
    Feb 28, 2014 at 21:09
  • In 1637, Fermat famously said that he had a proof to his conjecture that was too large to fit in the margins of the page. Could you please at least give us your partial answer.
    – unxnut
    Feb 28, 2014 at 21:17
  • @unxnut : I did that in case the question got closed prematurely ;) ...at least Fermat didn't famously get halfway through the annotation and have someone slam the book shut on his hand.
    – goldilocks
    Feb 28, 2014 at 21:29
  • @r004 : Once you get used to the layout, the man page is useful. Before that, the big problem with big man pages is they are all one page with little or no index. I'm sure I actually printed man fvwm on paper at some point because of this. Takes a lot of flipping back and forth, and experimentation. I've added a final paragraph about reloading the config quickly which makes things easier.
    – goldilocks
    Feb 28, 2014 at 21:44
  • @goldilocks , It is better to go with vector icons for window buttons. Yes?
    – r004
    Mar 3, 2014 at 22:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.