# Guide to X11/Window Managers/evilwm

The evilwm package provides a minimalistic lightweight stacking window manager for the X windowing system.

## Features

Features of the evilwm window manager include:
* Stacking windows
* Written in C
* Provides a simple 1 pixel wide border for window decorations
* No titlebars
* No rootmenu
* No deskbars
* No panels
* Raise windows using the mouse or keyboard
* Resize windows using the mouse or keyboard
* Windows may be maximized
* No facility to hide or minimize windows
* No task display methods
* Program launching is limited to opening a terminal or another command
* Follow focus with no autoraise
* Up to 8 multiple desktops
* Desktop switching via the keyboard
* No desktop shortcuts
* No wallpaper
* No shared frames
* No tabbed windows
* No theme support
* Colours can be configured via the command line
* Uses the xrender library
* Lighweight (rated as 1 on the hammer scale)

## Operation
### Launching an application

In evilwm, applications are launched via the terminal. A terminal session is launched from the keyboard, by pressing Ctrl + Alt + Enter. Alternatively, the terminal can be set to a launcher or something else with the -term [command] switch.

### Raising and lowering windows

Applications can be switched using Alt + Tab. An application window can be dropped towards the back by pressing Alt + Rightclick within the application window. Pressing Alt + Leftclick on a window or clicking on its border will bring it to the front.

### Resizing windows

Resizing of window can be achieved by using Alt + Middleclick or pressing Ctrl + Alt + Shift + H,J,K,L (note that not all keyboards will be able to detect more than three keys).

### Moving windows

Windows can be moved by pressing Alt and dragging the window with Left click, dragging the window border, or with Ctrl + Alt + H,J,K,L.

### Controls
#### General Controls

* Alt + Tab - Switch currently raised application
* Ctrl + Alt + Enter - Launch a terminal session
* Ctrl + Alt + Left - Switch to the previous desktop (for multiple desktops)
* Ctrl + Alt + Right - Switch to the next desktop (for multiple desktops)
* Ctrl + Alt + A - Switch to previous desktop (for multiple desktops)

#### Controls within a client window

Client window controls apply to the window in focus.
* Alt + Button 1 - Move Window
* Alt + Button 2 - Resize Window
* Alt + Button 3 - Drop window to background
* Ctrl + Alt + Esc - Close application window
* Ctrl + Alt + Insert - Drop window to background
* Ctrl + Alt + I - Show information about current window
* Ctrl + Alt + X - Maximize (and restore)
* Shift + Ctrl + Alt + Esc - Kill application

#### Window motion controls

Window motion controls apply to the window in focus.
* Ctrl + Alt + H - Move window left
* Ctrl + Alt + J - Move window down
* Ctrl + Alt + K - Move window up
* Ctrl + Alt + L - Move window right
* Ctrl + Alt + Y - Move window to the top left of screen
* Ctrl + Alt + U - Move window to the top right of screen
* Ctrl + Alt + B - Move window to the bottom left of screen
* Ctrl + Alt + N - Move window to the botton right of screen

#### Controls for moving windows between desktops

The controls for moving windows between desktops apply to the window in focus.
* Ctrl + Alt + F - Fix/unfix current window (so it appears on all desktops)
* Ctrl + Alt + 1-8 - Move to desktop 1-8 (fixed windows will move along with it)

## Dependencies

evilwm is dependent on the following xlib libraries:
* xrender

## Resources

| | VIRT | RES | SHR | %CPU | %MEM | evilwm | 2812 | 1160 | 960 | 0.1 | 0.2

## Where is evilwm on the hammer scale?

| 1 | Pin hammer | A minimalist tool designed to do a specific job.

## Review

The evilwm window manager is extremely lightweight and rated as a pinhammer on the hammer scale.
The evilwm window manager is awkward to use because it requires the use of both the keyboard and the mouse for operation and windows do not become raised when they are clicked on.
The window manager makes extensive use of keys, and a new user will probably need a list of keys at the terminal. There is no desktop context events, and an operator needs to know how to launch a terminal session. The window manager has a good set of keyboard controls and the keymappings have been well thought out, but the keys are not configurable.
The evilwm window manager is not accessibility friendly because it does not provide keyboard equivalents for some of its operations and is not touchscreen friendly because it requires a multibutton mouse.