euclid-wm - A highly flexible, minimal, dynamic, tiling window manager
(started directly euclid will not check for config files.)
aims to be a highly flexible tiling window
manger, which allows easy management of large collections of windows entirely
from the keyboard.
Euclid's state can be described as:
- views. These are arranged in a series. Up to 9 of them are
numbered. They are composed of a set of visible windows (arranged in
tracks ) and minimized windows (stored in a stack ).
- tracks are either rows or columns (the orientation can be toggled
at runtime), that contain visible windows.
- stack is a set of minimized windows, associated with a view, which
can be viewed at the bottom of the screen in the form of a box containing
All bindings are prefaced by a mod ("M", defaults to mod1, i.e.,
- M + <enter> - start run dialogue (by default, dmenu). NB:
this takes keyboard focus as long as it is open; Once it is opened you
must either select a command (with enter) or exit the dialog (with
- M + <shift> + <enter> - start terminal (default:
- M + h/j/k/l - move focus left/down/up/right
- M + H/J/K/L - move focused window left/down/up/right
- M + u/i/o/p - resize window: move lower right corner
- M + <esc> - close currently focused window
- M + <shift> + <esc> - kill window (for unresponsive
The stack maintains its own focus; The currently focused item can be identified
by its blue color.
- M + <space> - Toggle the stack's visibility
- M + . - Move the currently focused window to the stack (i.e.,
- M + , - Move the currently focused stack item to the main area
(i.e., restore it)
- M + / - Swap currently focused stack item and currently focused
- M + ;/' - Move stack focus up/down
- M + <shift> + ;/' - Shift the stack item up/down in
- M + n/m - Move to the previous/next view
- M + N/M - Move currently focused window to the previous/next
- M + 1-9 - Move to the 1-9th view
- M + <shift> + 1-9 - Move the currently focused window to the
- M + 0 - Move to the last populated view (regardless of its
- M + <shift> + 0 - Move the currently focused window to the
last populated view.
A note on the order and numbering of views: The enumeration is not strictly
accurate; View 9 may not be the 9th view. Specifically, once a view is
assigned a number it retains that number regardless of where it actually
falls in the list of views. This is so that accessing views based on their
number remains consistent.
The first view, created when euclid starts, is view 1; Going to the previous
view makes a new view, but view 1 remains the original one, even though by
counting it is now actually the second. Likewise, if one starts on view 1,
and goes to view 9, view 9 remains view 9, even though it may actually be
the second view. However, numbered views are always in order. So if one
starts with view 1 and creates view 9, then creates view 8, view 8 will be
placed between views 1 and 9.
- M + <shift> + <space> - Change to fullscreen mode.
Notes on fullscreen mode: In fullscreen mode the stack is disabled: widows
cannot be added or taken out. j/k will cycle through all windows on the
view in a linear way. If the view is in fullscreen mode because a window
triggered fullscreen, and that window closes, euclid will switch back to
its normal tiled layout; if the user manually triggered fullscreen mode,
euclid will remain in fullscreen.
- M + <tab> - toggle the orientation of the tracks (vertical or
- M + Q - quit euclid.
- M + r - reload config file in place.
- M + <shift> + ? - search a list of all windows presented in
- M + PgUp/PgDown - when multiple screen is in use, switch focus to
- On startup euclid will look for
$XDG_CONFIG_HOME/euclid-wm/euclid-wm.conf If $XDG_CONFIG_HOME is
not defined it will look for $HOME/.config/euclid-wm/euclid-wm.conf
If euclid-wm.conf is found, euclid will override its default settings with
those found in the file. A sample config file euclid-wm.conf.sample
should have come with euclid. If euclid is started with start-euclid the
start-euclid will check to see whether these files are installed for the
current user, and if not, it will create them from the system defaults.
The default is kept in /usr/share/euclid-wm/ At startup euclid will also
(try to) run the script euclidrc in the same directory (e.g.,
~/.config/euclid-wm/euclidrc). This is meant as a place for the user to
add any commands he would like run at startup. A default is stored in
- Please go to http://code.google.com/p/euclid-wm/issues/list to see the
most recent set of known issues, to report new bugs, or request features.
You may also submit reports to the mailing list: