IceWM FAQ and Howto: Customizing The Behavior

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:

- There is no `xlock` on your machine.
- `xlock` tends to crash on your machine either leaving you locked out (best case) or unlocking your session (worst case).
- `xlock` has some CPU intensive modes compiled in that interfere with your SETI@HOME session.

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.

Next Previous Contents