Command wingo

wingo is an X window manager written in pure Go that supports floating and tiling window placement policies. It is mostly EWMH and ICCCM compliant. Its "unique" features are per-monitor workspaces and support for both floating and automatic placement policies (where neither is an after thought).

There is more documentation/guides/compliance in the project directory.


wingo-cmd [flags]

The flags are:

	When set, Wingo will attempt to replace the currently running window
	manager. This does NOT change your default window manager or edit any
	files. The worst thing that can happen is X crashing.
--config-dir directory
	When set, Wingo will always try to read configuration files in the
	directory specified first. (Wingo will otherwise default to
	$HOME/.config/wingo or /etc/xdg/wingo.)
	When set, Wingo will write a fresh set of default configuration files
	to $HOME/.config/wingo and then exit. Wingo will NOT write any files
	if $HOME/.config/wingo already exists (to prevent accidentally
	overwriting an existing configuration).
-p num-cpus
	The maximum number of CPUs that can be executing simultaneously.
	By default, this is set to the number of CPUs detected by the Go
	runtime. Anecdotally, Wingo feels snappier in this case. When debugging
	however, this should be set to '1' in order to see stack traces in
	their entirety if Wingo crashes.
--log-level level
	The logging level of Wingo. Valid values are 0, 1, 2, 3 or 4. Higher
	numbers result in more logging. When running normally, this should be
	set to 2, which includes errors and warnings. When debugging, this
	should be set to 3, which includes messages that usually are emitted
	in certain state transitions. (The log level 4 is probably too much for
	most uses, but it will include messages about hooks matching or not
	When set, the log output will highlight errors and warning differently
	from other text using terminal escape sequences.
--cpuprofile prof-file
	When set, a CPU profile will be written to prof-file when Wingo exits.


Name      Synopsis
commands      package commands defines the Gribble command environment for Wingo.
cursors      package cursors contains a few pre-defined X cursors that are used throughout Wingo.
focus      package focus is responsible for maintaining a stack of all focusable clients in Wingo.
frame      package frame draws window decorations around clients managed by Wingo.
heads      package heads manages state and geometry information for each physical active head detected by Xinerama.
hook      package hook defines, reads and executes hooks in Wingo.
layout      package layout implements floating and tiling placement policies for Wingo.
logger      package logger is a very light wrapper around 'log' so we can control IO.
misc      package misc has some functions that really don't belong in any particular package.
prompt      package prompt implements several prompt windows that can be used in any X window manager.
          cycle      Example cycle shows how to use the cycle prompt.
          input      Example input shows how to use an Input prompt from the prompt pacakge.
          message      Example message shows how to use a Message prompt from the prompt pacakge.
          select      Example select shows how to use a Select prompt from the prompt pacakge.
render      package render provides several routines for drawing simple shapes and gradients.
text      Package text provides text rendering helper functions and an abstraction to create input text windows.
          input      Example input shows how to create a window that reads text typed by the user and displays it.
wingo-cmd      wingo-cmd uses Wingo's IPC mechanism to send commands and output the response to stdout.
wini      Package wini provides an ini-like file parser.
wm      package wm is a Wingo specific package that maintains the global state of Wingo.
workspace      Package workspace is responsible for maintaining the state for the workspaces used in Wingo.
xclient      package xclient provides an implementation of an X client for use with all of Wingo's sub-packages.