Next Previous Contents

5. Customizing The Behavior

IceWM's reactions on your actions can be pretty much configured as you like it. You can choose which focus model you like, what should happen on mouse clicks on the titlebars, or which mouse button calls which menu when clicked on the desktop.

5.1 What are the focus models good for?

To answer this question it is a good idea to first take a look at the four general focus models that are implemented by IceWM:

ClickToRaise

When a window is clicked, it is raised and activated. This is the behavior of Win95 and OS/2.

ClickToFocus

A Window is raised and focused when titlebar or frame border is clicked and it is focused but not raised when the window interior is clicked.

PointerFocus

When the mouse is moved, focus is set to window the mouse is pointing at. It should be possible to change the focus with the keyboard when the mouse is not moved.

ExplicitFocus

When a window is clicked, it is activated but not raised. New windows do not automatically get the focus unless they are transient windows for the active window.

"A window is raised" is telling and needs no further explanation.

"A window is activated, is focused, gets the focus,..." means that input (e. g. keystrokes) now are sent to that window.

In short: The focus model controls what you have to do to make a window pop up and to have it listen to what you type.

5.2 Use UseRootButtons and ButtonRaiseMask

UseRootButtons and ButtonRaiseMask are so called bitmask options.

This concept is e.g. used by chmod where "4" stands for read access, "2" for write access and "1" for execute (or change directory) access and you add up the relevant numbers to control the file access.

As far as UseRootButtons and ButtonRaiseMask are concerned, "1" stands for the first mouse button, "2" for the second one and "4" for the third one. The following list shows which number stands for which combination of mouse buttons:

    ---------------------------------
     Value   Stands for
    ---------------------------------
       0     No mouse button at all
       1     Button 1
       2     Button 2
       3     Buttons 1 and 2
       4     Buttons 3
       5     Buttons 1 and 3
       6     Buttons 2 and 3
       7     All three mouse buttons
    ---------------------------------

Any value greater than seven has the same effect as seven. UseRootButtons controls which buttons call up a menu when clicked on an unoccupied region of the desktop. ButtonRaiseMask determines which buttons will raise a window when clicked on that window's title bar.

5.3 Set the mouse button a menu which is bound to

There is an option for each of the root menus which controls which button is bound to that menu.

    -----------------------------------------
     Option Name            Controls
    -----------------------------------------
     DesktopWinMenuButton   Window menu
     DesktopWinListButton   Window list
     DesktopMenuButton      Application menu
    -----------------------------------------

The value of each option determines the button to which the corresponding menu is bound according to the following scheme:

    -----------------------------
     Value   Stands for
    -----------------------------
       0     No mouse button
       1     Left mouse button
       2     Right mouse button
       3     Middle mouse button
      4-6    Other buttons
    -----------------------------

5.4 Setting the lock command

By default IceWM uses xlock (without any argument) to lock your screen. There may be several reasons for using a different lock command:

It is very easy to set a lock command: Simply add

    LockCommand="xlock -mode blank"

to your $HOME/.icewm/preferences and xlock will run in blank mode (which shows nothing but a black screen).

The example was chosen on purpose: Using this mode you have the best chance of your monitor going asleep (enter power saving mode).

5.5 Can the taskbar applet monitor ethernet (or isdn) instead of my modem?

In the preferences file just change the option NetworkStatusDevice to read

    NetworkStatusDevice="eth0"

Replace "eth0" by "ippp0" to monitor ISDN connections. AFAIK eth0 support is limited to Linux and *BSD since commercial Unices tend to use another format for their network interfaces.

5.6 Can the taskbar applet monitor more devices?

In the preferences file just change the option NetworkStatusDevice to read

    NetworkStatusDevice="eth0"

Replace "eth0" by "eth0 ppp0" to monitor eth0 and ppp0.

5.7 I'd like to check remote mailboxes with the taskbar mail applet

No problem either. Your MailBoxPath in the preferences file should read

    MailBoxPath="imap://username:password@remote.host"

Replace imap with pop or pop3 if necessary. Be sure to have save permissions on the preferences file so nobody else can get your mail password.

5.8 How do I disable Alt+mouse drag to move the window to send Alt+mouse to application

To send all Alt+key keys to application you can use window option window_class.fullKeys: 1 However the preference you looking is ClientWindowMouseActions=0. This disable Alt+mouse drag to move window for all IceWM handled windows.


Next Previous Contents