echinus icon indicating copy to clipboard operation
echinus copied to clipboard

echinus is a lightweight and easily configurable tiling window manager

echinus wm.

WARNING: this project is not maintained anymore.

0.Installation 1.Configuration file 2.config.h header 3.About panels and pagers

0.Installation

You need X11 and Xft headers to compile echinus wm and the pkg-config tool. Packages containing this stuff are probably named libx11-dev and libxft-dev (note "-dev" suffix). You need libxrandr for multihead support (can be disabled in config.mk if not needed). XRandr-enabled binary still works with single monitor configurations.

make

make install

On new install:

% mkdir ~/.echinus % cp -r CONFDIR ~/.echinus

1.Configuration file

Name: ~/.echinus/echinusrc

Main settings

Echinus*deflayout
    Layout applied to tag if not explicitly set by tags.layout later.
    One of: i - ifloating, f - floating, t - tiled, b - bottomstack, m - maximized. 

Echinus*gap

    Gap size between tiling windows in pixels.

Echinus*mwfact

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

Echinus*nmaster

    Number of clients in master area in tiled layout.

Echinus*sloppy
   
   0 - Click to focus
   1 - Sloppy focus for floating clients
   2 - Sloppy focus for everything
   3 - Sloppy focus + raise on focus

Echinus*modkey

   Choose modkey. A for alt, W - winkey, S - shift, C - control

Title settings

Echinus*decoratetiled - boolean (1 or 0)

    Draw titles in tiled mode

Echinus*titleposition
Echinus*tagbar
Echinus*tbpos

Were removed for more general interface, see below

Echinus*titlelayout - string

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).

- or ' ' (space) - skip space (space can't be
    used as first character)
N - window name
I - iconify
M - maximize
C - close
T - tagbar

Examples:

    -T-C - title centered, close button on right

Color settings

Echinus*selected.border
Echinus*normal.border
Echinus*selected.bg
Echinus*normal.bg
Echinus*selected.fg
Echinus*normal.fg
Echinus*selected.button
Echinus*normal.button

    border - color of a small border around each window
    bg - titlebar background
    fg - titlebar foreground
    button - button foreground

    normal - unfocused window
    selected - window in focus

Border settings

Echinus*border

    width of the border, in pixels

Button settings

Echinus*button.iconify.pixmap (was: Echinus*button.left.pixmap)
Echinus*button.maximize.pixmap (was: Echinus*button.center.pixmap)
Echinus*button.close.pixmap (was: Echinus*button.right.pixmap)

buttons in the titlebar, left iconifies window, center switch
to monocle (fullscreen) mode, right - close.
~ are not allowed in pathnames.

Opacity

Echinus*opacity

    Opacity value for inactive windows, you need xcompmgr running to
    see the result.

Terminal app

Echinus*command (was: Echinus*terminal)

    Application to run on right window click on root window.

Title

Echinus*title

    Titlebar height

Echinus*font

    Titlebar font

Tags

Echinus*tags.number

    Number of tags

Echinus*tags.name{...}

    Names for the tags

Echinus*tags.layout{...}

    Layout per tag on start. See deflayout for possible
    values

Hacks

Echinus*hidebastards

    Set to 1 to hide panels, pagers and others with
    togglestruts function.

Keybindings

Format is "[ASCW] + key", where:
    A - Alt (mod1)
    S - Shift
    C - Control
    W - Windows key
You can find the list of available keys in keysym.h
and XF86keysym.h files (usually located in 
/usr/include/X11/), remove XK_ prefix before use.

Don't miss ' ' (space).

Echinus*togglestruts

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


Echinus*togglemonitor

 Switch from one monitor to another.

Echinus*focusnext
Echinus*focusprev

 Focus next and previous window

Echinus*viewprevtag

 View previous tag set

Echinus*quit

 Leave echinus

Echinus*restart

 Restart echinus

Echinus*killclient
 
 Close window in focus

Echinus*togglefloating

 Toggle floating/tiled

Echinus*view#

 View tag number #

Echinus*tag#

 Tag current window with tag number #

Echinus*toggleview#
 
 Toggle view number #

Echinus*focusview#
 
 Toggle view number # and focus the first client
 from it.

Echinus*viewlefttag
Echinus*viewrighttag

 View tag on the left(right) of current

Echinus*spawn#: <key> = program

 Run specified program. # is less than 64.

Echinus*moveright
Echinus*moveleft
Echinus*moveup
Echinus*movedown
  
 Syntax for this is rather untrivial: x y w h. For example move right for five pixels:

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

Echinus*resizedecx
Echinus*resizedecy
Echinus*resizeincy
Echinus*resizeincx
  
 Same as above, but change second group of values. Resize by y for 5 pixels:

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

Echinus*rule#
 
 Format is "<Window class|Window title> <tag> <isfloating> <hastitle>"

2.config.h header

Contains default values of options. You probably don't have to edit it.

3.About panels and pagers

Echinus supports some parts of EWMH, so if the author of the pager knows what this magical letters mean it should work fine.

Known to work: fbpanel ipager ourico

Known to NOT work: pypanel