KWM Documentation

Preface

This documentation may be incomplete. For further questions how to customize kwm at a low level (only interesting for the kwinconfig developers....) please have a look at the generated kwmrc and the source code.

For all programmers: check out kwm.h in libkdecore for lots of informations about how to use kwm for your purposes. For modules the class KWMModuleApplication (maybe some day in libkdecore, at present used and defined by krootwm) is also a good example on how to write modules.

FAQ

  1. Why should I use kwm? I spent several days in learning how to configure 10 different windowmangers. And now that I have a 678 lines resource file doing exactly what I want, you are coming along and want to take my windowmanager away!

    Answer: You should not, it is only a free offer. But IMHO your are making a mistake if not ;-)

    Some arguments:

  2. Why can't I define new shortcuts for launching applications or do whatever? This is very important for me!

    Answer: Because this is not the task of the windowmanger. Use KGlobalShortcut for this purpose.

  3. Why does kwm look so much like Windows 95?

    Answer: Ooops, does it? Let me see.... (Matthias trying to find somebody who has Windows 95 because he does not have any windows on all his computers... Damn... nobody has windows here. Well let's grab an old Linux distribution and install fvwm95-2.....) No, I cannot verify that at all. kwm looks much prettier and offers more core window management functionality :-)

  4. Is it possible to add the KDE extensions to other windowmanagers?

    Answer: Yes it is. You simple have to go through kwm.h/kwm.C from libkdecore and extend your favorite windowmanager to respond correctly to these requests. BTW it is also possible to implement an object request broker in x86 assembler. It's just a question of the investment/result ratio.

Shortcuts

Alt-Esc / Control-Esc
"Current Session"-manager with logout-button
Alt-Tab / Alt-Shift-Tab
Traverse the windows of the current desktop
Ctrl-Tab / Ctrl-Shift-Tab
Traverse the virtual desktops (can be switched of in kwmrc)
Alt-F2
Execute command
Alt-F3
window operation popup
Alt-F4
Close window
Ctrl-F[1..8]
switch to virtual desktop
Ctrl-Alt-Esc
Destroy window mode (cursor becomes a pirate)

Mouse control

click onto the border or the titlebar:
left mouse button: activate and raise the window
middle mouse button: activate and lower the window
right mouse button: show windows operation menu if the
window is active, otherwise activate it without raising.
doubleclick on title toggles maximize
drag of the titlebar
move window (left mouse raises, middle mouse keeps the stacking position)
drag of corners or edges
resize the window (left mouse raises, middle mouse keeps the stacking position)
the entire window
Alt-(left mouse button): move
Alt-(middle mouse button): raise
Alt-(right mouse button): resize
titlebar buttons (configurable)
Menu: window operations
Sticky: toggle sticky
Iconify: iconfiy
Maximize:
Left mouse button
maximize
Middle mouse button
maximize vertically
Right mouse button
maximize horizontally
MaximizeOnlyVertically-option will switch the meaning of the left and the middle mouse button.
Close: close (applications may ask if they have something to save)

Low-level configuration (kwmrc)

Please note that users need not change these options in the kwmrc file; they can use the Control Center instead which provides access to all these configuration options via a nice GUI. See the Quickstart Guide for information about how to use the Control Center.

    [Buttons]
    Button[A-F]=Menu, Sticky, Iconify, Maximize, Close, Off

    [General]
    WindowMoveType=Opaque, Transparent
    FocusPolicy=ClickToFocus, FocusFollowMouse
    AutoRaise=0 (milliseconds)
    MaximizeOnlyVertically=off, on
    TitlebarLook=shaded, plain
    TitleAnimation=50 (milliseconds)
    ResizeAnimation=on, off
    ControlTab=on, off

    [session]
    proxyignore=xemacs,xterm,..., 
       List of WM_COMMANDS that should be ignore for session 
       management. Only for hackers!
	

Command-line options

-version
shows the version number including the patchlevel
-nosession
disables the restoration of the previous session

Author:
Matthias Ettrich

Copy editor:
Kalle Dalheimer


Kalle Dalheimer
Last modified: Sat Oct 18 14:36:01 CEST 1997