• use zsh shell as wmiirc dialect
  • alternate switch between previous and current view (MODKEY-Tab)
  • zsh hook scripts for every Wmii event
  • notification system that allow several messages at the same time: wmii_msg let you have more than one message at a time
  • use arrows keys besides defaut keybindings
  • compatible with wmii 3.9
  • window resizing


  • no alternate switch between column mode (ala dwm)
  • clean-up actions/ directory
  • support of XF86 multimedia key

Events and hooks

All Wmii events can be hooked by zsh functions.

For example, the FocusFloating event runs the hook responsible of changing the color on the fly and the Wmii hook is in charged of managing the session.

See the functions/events directory for more examples.

System menu

MODKEY-F1 (or MODKEY-MENU) displays help about keybindings configuration.

MODKEY-F12 opens up Wmii menu for following actions:

  • access: go to actions menu
  • term: run a terminal
  • lock: run the $WMII_XLOCK program
  • kill: kill a process
  • fontsel: select a new font with xfontsel
  • help: generate a dynamic help file which describe current key bindings
  • keys: reload keys configuration
  • autostart: launch programs found in autostart/ directory
  • rbar: relaunch right bar applications
  • restart: reload Wmii instance and configuration
  • destroy: destroy a window with the process inside
  • quit: quit Wmii

MODKEY-F2 (or MODKEY-p) is the standard run command helper (using zsh directly).

MODKEY-F3 (or MODKEY-Return) run a new terminal.

MODKEY-F4 list available actions. See it as a kind of shell scripts repository (MODKEY-a). I tried to pick some ideas from the Ubiquity project and simpled:

  • 118k
  • browse
  • conjugue
  • debian
  • download
  • edit
  • email
  • en-dict
  • fr-dict
  • log
  • map
  • mplayer
  • open
  • popupdict
  • progress
  • scratchpad
  • screen-ls
  • ssh
  • translate
  • urls
  • wikipedia

Warning: to be honest, it's quite unstable and bloated...

Zsh functions

Some zsh functions are provided as handy wrappers for well-known utilities:

  • wmii_9menu
  • wmii_dmenu
  • wmii_dzen2
  • wmii_key
  • wmii_log
  • wmii_osd
  • wmii_msg
  • wmii_volume

Mainly used to group command-line options of the subcalled programs. I'm not using theses ones much anymore since new versions of Wmii provide their own commands now.

Left status bar

List available tags or select one if clicked (standard behaviour).


  • type '-' as input to remove current tag for the current client
  • preprend tags with '.' to have them left-aligned
  • preprend tags with '#' if you want want to hide them from the tag bar
  • preprend tags with '²' to have them on the right

Right status bar

I add some "widgets" (humm..) with possible mouse actions (see RightBarClick event):

  • 00_hostname: host name
  • 10_network_eth: bandwidth statistics
  • 10_network_wlan: wireless information
  • 15_battery: battery state
  • 20_biff: a biff monitor for mutt
  • 30_df: disk usage
  • 40_loadavg: display load average with some colors or run htop if clicked
  • 50_sound: display volume and set level with wheel mouse buttons. run aumix if clicked
  • 60_date: display date or run calendar if clicked
  • 70_time: print time or display Wmii menu in popup

The number determines the rank in the status bar.


All keybindings are defined in the keys file, which could let you change easily. You can see current configuration thanks to the help action (MODKEY-F1)

Here is my configuration:

Major Keys Variables (read /usr/include/X11/keysymdef.h)


Wmii environment

        Background color
               WMII_BACKGROUND='       333333'
               WMII_NORMCOLORS='       888888  111111  333333'
               WMII_FOCUSCOLORS='      ffff00  333333  ffff00'
               WMII_NOTIFCOLORS='      AA11AA  333333  111111'
               WMII_STATUSCOLORS="     222222  6FCF87  2A7F3F"

Floating layer
        Toggle selected client between floating and managed layers
        Toggle between floating and managed layers
               $MODKEY-space $MODKEY-Control-space

Client actions
        Toggle selected client's fullsceen state
        Close client
        Destroy client
               XF86ClearGrab $MODKEY-Shift-c

Changing column modes
        Set column to default mode
        Set column to stack mode
        Set column to max mode

Wmii oddities
        Wmii system menu
               $MODKEY-F12 $MODKEY-$MENUKEY
        Wmii status bar
        Wmii help

Running programs
        Open program menu
               XF86Start $MODKEY-F2 $MODKEY-p
        Launch a terminal
               XF86Terminal $MODKEY-F3 $MODKEY-Return
        Launch a terminal on right column
        Open wmii actions menu
               $MODKEY-F4 $MODKEY-a
        Run file manager
        Open selected URL in browser
               XF86OpenURL $MODKEY-o
        Run browser
        Run mailer
        Take a screenshot
        Edit file
        Run messager
        Set away status
        Hot links

Tag actions
        Change to another tag
        Retag the selected client
        Go to previous selected tag
        Go to workspace on the left of the tags bar
        Go to workspace on the right of the tags bar

Moving around
        Select the client to the left
               $MODKEY-$LEFT $MODKEY-Left
        Select the client to the right
               $MODKEY-$RIGHT $MODKEY-Right
        Select the client below
               $MODKEY-$DOWN $MODKEY-Down
        Select the client above
               $MODKEY-$UP $MODKEY-Up

Moving clients around
        Move selected client to the left
               $MODKEY-Shift-$LEFT $MODKEY-Shift-Left
        Move selected client to the right
               $MODKEY-Shift-$RIGHT $MODKEY-Shift-Right
        Move selected client down
               $MODKEY-Shift-$DOWN $MODKEY-Shift-Down
        Move selected client up
               $MODKEY-Shift-$UP $MODKEY-Shift-Up

Moving through stacks
        Swap selected client left
               $MODKEY-Control-$LEFT $MODKEY-Control-Left
        Swap selected client right
               $MODKEY-Control-$RIGHT $MODKEY-Control-Right
        Select the stack below
               $MODKEY-Control-$DOWN $MODKEY-Control-Down
        Select the stack above
               $MODKEY-Control-$UP $MODKEY-Control-Up
        Move to the numbered tag
        Retag selected client with the numbered tag

Resizing clients
        Shrink horizontally
        Grow horizontally
        Shrink vertically
        Grow vertically

        Volume up
        Volume down
        Toggle Volume
        Audio Pause

        Lock the session
        Battery status
        Network: Bluetooth status
        Network: Wireless status
        Log off

Have fun.