Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
Piotr Zieliński
[go: Go Back, main page]

Ergonomic and Efficient Window Manager Settings

In other words: my window manager settings ;->

This webpage describes the main ideas behind the ergonomic window manager configuration I use and its main efficiency principles. Before proceeding, it might be useful if you familiarized yourself with input modes described on my page about efficient and ergonomic text editing.

Main principles

Here are the main requirements of efficient WM settings:
  1. Frequent operations are quick. In other words, you must have non-mnemonic shortcuts for common operations. Elsewhere, I discuss efficiency of keyboard operations. For the efficientcy of mouse operations, the following observation is crutial. The process of pointing at something with a mouse consists of two phases. First, a rapid movement, which brings the mouse pointer close to the target. Second, precise targetting. In order maximize efficiency, one of these steps should be eliminated for most frequent operations. The are two solutions:
    1. Eliminate approximate targetting. This can be achieved by putting the target close to the mouse pointer. For example, if a user clicks on a root area, a menu should appear very close to the pointer. Place the most common operations close to the initial position of mouse pointer. Automatically moving mouse pointer to another location is confusing and not recommended.
    2. Eliminate precise targetting. In other words, make your targets as big as possible. Use big icons, assign most common operations to big areas (whole windows or the root area). Window buttons are to small for this purpose, window title bars are a little better but still too small. Don't use window frames for moving/resizing windows, they are too thin to allow fast targetting. Besides, thick borders look bad. Details will come later.
    I am not saying that you should not use window buttons, static menus, etc. What I am saying is that most common operations should be (also) available through other, faster means.
  2. Eye friendly.
    • Use dark-on-light, not light-on-dark. Have you ever seen a book printed white-on-black? Of course not, because your eyes would get tired much quicker. Light-on-dark setups simply introduce too much contrast to be comfortable for your eyes for a longer time. True, they look might look more geeky and eye-candy (see sample Fvwm setups), but from the ergonomic point of view they are clearly worse. (At least clearly for me, I tried such a setup for three months, and it didn't work for me).
    • Beware of transparency. Transparency is never good for working windows like xterm or your editor. Since the background color is not constant any more, your eyes/brain have more trouble focusing on and recognizing letters. Again, transparency looks cool, but clearly tires your eyes.
    • Wallpapers. I don't have any strong opinions about wallpapers -- experience shows that you get used to them quite quickly. (write more here ...)
  3. All input modes are supported. The main idea here is to have one special modifier (Super), which is used exclusively for window-management related operations. It has several uses:
    • Mouse events that occur when Super is active are handled by the window manager and not passed to the application. For example, Super-evens occuring a window area have currently the following meaning in my setup:

      LeftRight
      Single click Raise/Lower Root menu
      Double click Maximize Iconify
      Dragging Move Resize

      I don't claim these bindings to be optimal, they are just useful (with focus following the mouse pointer). Take a look at a detailed description of the bindings I use, if you are interested.

    • In editing mode (more to follow) ...
  4. Use multiple desktops. Your screen is too small to show all your windows. The solutions are: have most of them completely covered by other windows, have most of them iconified, or have multiple desktops. The last solution is the best because it helps you organizing your windows into categories. Each category has a separate desktop. You assign these categories are dynamically as you go. For example, at the very moment I use three desktops: the first for mail and related webpages, the second for this webpage (editor + webbrowser), and the third for editing my current window manager configuration (editor, manual page, and a window manager console). Don't worry about these categories to much. The rule of thumb is: if you have too many windows to fit on one screen, you are probably working on more than one thing at the same time. Identify them, as move part of your work to another desktop. A good pager (a window that shows the current state of all your desktops) is a must. The bigger and more informative the better. Tabs (having multiple virtual windows share the same physical one) might also be a good idea, but I have never used in on a window manager level. On the application level, it's great for web browsing and editing.
  5. Information presented when needed. How can you have big icons and not waste screen space at the same time? That's simple: show the navigation information (such as xclock, xload, your pager, and icons) only when necessary. In my setup, they appear only when the mouse pointer has hit the south edge of the screen (for the full-mouse-mode) or the Super key is pressed (for all other modes).
  6. Window Management Automation. Firstly, setup a good default method of placing new windows, so that they do not overlap with others. You might also find the following functions useful:
    • Non-obstructing maximization causes the window to grow as much as it can without overlapping with any other window.
    • Handling invisible windows. If a window is totally covered by other windows, chances are that you will forget about its existence. In my setup, such windows are automatically iconified (you might also consider moving them into a visible place first).
    • Intellingent de-iconification. If after deiconifying, a window overlaps with another one, it is moved to a better position.
    • Informative icons. Since the icons are big, they can convey more information. Making icons actual miniatures of the original windows is a good idea.