/echinus

echinus is a lightweight and easily configurable tiling window manager

Primary LanguageCMIT LicenseMIT

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