ECHINUS(1)

NAME
echinus - a lightweight window manager for X11

SYNOPSIS
echinus [-v] [-f conf]

DESCRIPTION
echinus is a lightweight window manager for X based on dwm's source code. It manages windows in maximized, floating and tiled layouts. Either layout can be applied dynamically, optimizing the environment for the application in use and the task performed.

In maximized layout only one window can be seen at the moment, but you can switch between them with hotkeys. In floating layout windows can be resized and moved freely. Dialog windows are always managed floating, regardless of the layout applied.

Windows are grouped by tags. Each window can be tagged with one or multiple tags. Selecting certain tags displays all windows with these tags.

echinus draws a small border around windows to indicate the focus state and an optional titlebar.

The options are as follows:

-v  Prints version information to standard output, then exits.

-f conf
    Specifies an alternative configuration file. By default, echinus loads the configuration file from ~/.echinus/echinusrc, if present, then looks for the system-wide configuration file /tmp/pkgbuild/wm/echinus/work.riscv64/.destdir/usr/pkg/share/examples/echinusrc.

The following notation is used in this page:

A   Alt.
C   Control.
S   Shift.
W   Windows key.
M1  Left mouse button.
M2  Middle mouse button.
M3  Right mouse button.

KEY BINDINGS
The default key bindings are:

A-[F1..Fn]
    Views all windows with n-th tag.
A-Return
    Zooms/cycles current window to/from master area (tiled layout only).
A-Space
    Toggles between tiled and floating layout (affects all windows).
A-Tab
    Toggles to the previously selected tags.
A-b Toggles on/off statusbar space.
A-f Enables floating mode.
A-h Decreases the master area width about 5% (tiled layout only).
A-i Enables floating mode.
A-j Focuses next window.
A-k Focuses previous window.
A-l Increases the master are width about 5% (tiled layout only).
A-m Enables maximized (monocle) mode.
A-r Enables tiled mode.
A-t Starts xterm.
A-w Enables bottom-tiled mode.
A-C-[1..n]
    Adds/removes all windows with n-th tag to/from the view.
A-C-q
    Quits echinus.
A-C-S-[1..n]
    Adds/removes n-th tag to/from current window.
A-S-[1..n]
    Applies n-th tag to current window.
A-S-c
    Closes focused window.

MOUSE BINDINGS
The default mouse bindings are:

M1  When pressed on the titlebar, focuses window and raises it on top of the stack.
M2  When pressed on the titlebar, resizes window.
M3  When pressed on the root window, draws a rectangle to start a terminal in it.
A-M1
    Moves current window while dragging. Tiled windows will be toggled to the floating state.
A-M2
    Zooms/cycles current window to/from master area. If it is floating (but not fixed) it will be toggled to the tiled state, instead.
A-M3
    Resizes current window while dragging. Tiled windows will be toggled to the floating state.

CUSTOMIZATION
The configuration file is a set of X resources (with a class of Echinus), which are described in the sections below.

Every relative path specified is relative to the directory in which the configuration file is in.

MAIN SETTINGS

deflayout
    Layout applied to tag if not explicitly set by tags.layout later.
    Value | Meaning
    b | Bottom Stack
    f | Floating
    i | Ifloating
    m | Maximized
    t | Tiled

modkey
    Choose modkey.

mwfact
    Space occupied by master window in tiled layout (fraction of 1).

nmaster
    Number of clients in master area in tiled layout.

sloppy
    Sets the type of sloppy focus to use.
    Value | Meaning
    0 | Click to focus
    1 | Sloppy focus for floating clients
    2 | Sloppy focus for everything
    3 | Sloppy focus and raise on focus

BORDER SETTINGS

border
    Width of the border (in pixels).

BUTTON SETTINGS

button.close.pixmap

button.iconify.pixmap

button.maximize.pixmap
    Sets the close, iconify and maximize buttons in the titlebar.

COLOR SETTINGS

normal.bg
    Sets the titlebar background for unfocused windows.

normal.border
    Sets the color of a small border around each unfocused window.

normal.button
    Sets the button foreground for unfocused windows.

normal.fg
    Sets the titlebar foreground for unfocused windows.

selected.bg

selected.border

selected.button

selected.fg
    Sets color options for focused windows.

HACKS SETTINGS

hidebastards
    Hide panels, pagers and others with togglestruts function.

KEYBINDINS SETTINGS

ACSW + key [= options]
    Binds key to the specified command (see COMMANDS). Spaces are mandatory.

    Key is taken from the X11 files (usually located under an include directory) keysym.h and, XF86keysym.h and removing the XK_ prefix before use.

    Commands options are specified after an equal sign.

MISC SETTINGS

command
    Application to run on right click on root window.

opacity
    Opacity value for inactive windows (xcompmgr needed).

TAGS SETTINGS

tags.layout{...}
    Layout per tag on start (see deflayout).

tags.name{...}
    Names of the tags.

tags.number
    Number of tags.

TITLE SETTINGS

decoratetiled
    If one, draw titles in tiled mode.

font
    Titlebar font.

title
    Titlebar height.

titlelayout
    Titlebar consists of 3 parts separated with dashes or spaces. Left is aligned to left, center to center and right to right (obviously). Default value is "N IMC" meaning name on the left iconify, maximize and close buttons on right (note 2 spaces).
    Value | Meaning
    dash | skip space (space can't be used as first character)
    space | Same as the above
    C | Close
    I | Iconify
    M | Maximize
    N | Window name
    T | Tagbar

COMMANDS

focusnext

focusprev
    Focuses next or previous window.

focusview#
    Toggles view number # and focuses the first client in it.

killclient
    Closes current focused window.

movedown

moveleft

moveright

moveup x y w h
    Moves the window by the specified number of pixels in the specified direction.

restart
    Restarts echinus.

quit
    Exits echinus.

resizedecx

resizedecy

resizeincx

rezizeincy x y w h
    Resizes the window by the specified number of pixels in the specified direction.

rule# class.title tag isfloating hastitle
    Sets a rule for the specified window class or title. NULL indicates that no tag is needed.

spawn#
    Runs specified program (upto 64).

tag#
    Tags current window with tag number #.

togglefloating
    Toggles floating or tiled mode.

togglemonitor
    Switches from one monitor to another.

togglestruts
    echinus has no bar, but this command switches the area on top or bottom which won't be covered by windows in tiled on monocle mode.

toggleview#
    Toggles view number #.

view#
    Views tag number #.

viewlefttag

viewrighttag
    Views tag on left or right.

viewprevtag
    View previous tag set.

EXAMPLES
To move a window five pixels to the right:

    Echinus*moveright: AS + l = +5 0 0 0

To resize a window five pixels down:

    Echinus*resizedecy: AS + v = 0 0 0 -5

To make mplayer float and with a title by default:
    Echinus*rule0: Mplayer.* NULL 1 1

To spawn an xterm when A + T is pressed:
    Echinus*spawn0: A + t = xterm

To show the title centered and the close button on the right:
    Echinus*titlelayout: -T-C

CONFORMING TO
echinus is partially EWMH (NetWM) compliant, so you can use your favourite panel or pager.

SEE ALSO
dmenu(1) dwm(1)

BUGS
parsekey() doesn't handle non-alphanumeric keysyms.

You should find lots of them. If you did please contact me, my mail is <polachok at gmail dot com>.