Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/tleino/cocowm

Column Commander Window Manager for X11 Window System is inspired by Plan9's acme editor and strives to minimize the need for micromanagement.
https://github.com/tleino/cocowm

acme-like plan9 tiling-window-manager window-manager x11 x11-wm

Last synced: 3 months ago
JSON representation

Column Commander Window Manager for X11 Window System is inspired by Plan9's acme editor and strives to minimize the need for micromanagement.

Awesome Lists containing this project

README

        

# cocowm

*cocowm* is a Column Commander Window Manager for X11 Window System that
specializes in automating layout management by arranging program windows
automatically in columns. Therefore, *cocowm* is a tiling window manager
and in particular is most inspired by the Plan9 acme editor, as well as
the Plan B operating system's GUI.

A key differentiation of *cocowm* as compared to other window managers is
that *cocowm* is oriented towards receiving high-level commands from the
user, such as "move window to left", via a keyboard shortcut, which
moves a window one column to the left and resizes if space allows for
it, rather than by manually micro-managing precise placement and size
using a mouse.

## Controls

*cocowm* is fully controllable using keyboard and partially controllable
using mouse.

Edit keyboard.c to modify default key bindings.

*cocowm* is used best when windows are explicitly created by the user
using *cocowm command line* via **Win+Enter** or **Win+Space**.

So, for example, don't ask your browser to create a new window,
but ask *cocowm* to do it.

*cocowm* tries to help in selecting the correct program using the
following magic:

### Running commands

Open the prompt via **Win+Enter** or **Win+Space**. Exit the prompt
using **Esc** (cancel) or **Enter** (launch).

* **Run URLs:** If no spaces but has at least one '.', prefix the line
with "firefox-esr ".
* **Run shell commands:** If the line begins with '!', prefix the line
with "xterm -hold -e "

Edit action.c to modify these.

### Focusing windows

* **Win+Left** Left.
* **Win+Right** Right.
* **Win+Up** Up.
* **Win+Down** Down.
* **Win+Tab** Previous.

### Moving the focused window

* **Ctrl+Win+Left** Left.
* **Ctrl+Win+Right** Right.
* **Ctrl+Win+Up** Up.
* **Ctrl+Win+Down** Down.

### Actions for the focused window

* **Win+o** Toggle keep open.
* **Win+m** Toggle minimize.
* **Win+h** Toggle hide others.
* **Win+f** Toggle fullscreen.
* **Win+r** Restart command.
* **Win+Space** Replace with new command.
* **Win+Enter** Run new command.
* **Win+q** Close.

_Minimize_ means window is explicitly hidden and needs to be reopened manually.

_Hide_ means window is temporarily hidden and is shown automatically
when hiding is toggled off.

### Managing the window manager.

* **F11** Restart.
* **F12** Quit.

## Dependencies

* No dependencies if you're compiling for a normal/sane Unix-like system that
has X11 Window System.

## Compiling

$ ./configure ~
$ make
$ make install

## Customizing

* Edit Makefile.in and e.g. remove or add compile-time options using -D in
the CFLAGS. E.g. see 'WANT_ONE_PER_COLUMN' option.
* Edit files such as keyboard.c
* Edit *hspacing* and *vspacing* in init.c

## Customize using .Xresources / .Xdefaults

Have the .Xresources or.Xdefaults file, based on what your system
reads when logging in to X11 session, or read it manually.

The file could look like this:

*font: -xos4-terminus-bold-r-normal--16-160-72-72-c-80-iso10646-1
*foreground: black
*background: #f5efe0
*internalBorder: 4

Load it:

$ xrdb -load ~/.Xdefaults

And restart cocowm.

## Running

Running with 3 columns:

$ cocowm 3

## See also

* [mxswm](https://github.com/tleino/mxswm) another window manager by the same
author.
* [cocovt](https://github.com/tleino/cocovt) terminal emulator by the same
author that is friends with *cocowm*.