input: Improve container scroll slightly
focus: Fix typo
input: Touch and input device mapping support


browse  log 



You can also use your local clone with git send-email.


clay is a wayland compositor that does whatever I want my wayland compositor to do. Its features follows my mood.


#Plan9-inspired containers

clay starts with an empty container on each output. More empty containers can be created with mod+shift+enter, and containers can be destroyed with mod+shift+backspace.

Windows open in the currently focused container, and mod+tab/mod+shift+tab or mod+mouse scroll will go through the available windows for that container. Any window that is not currently shown in another container is available.

This has the effect that e.g. a launcher will open up in the focused container, and whatever it launched naturally replaces it as the container remains focused. A history stack and some special logic around toplevel parents ensure logical fallback when a window disappears.


Containers are automatically tiled, with mod+1 through mod+9 changing layout type, and mod+f toggles fullscreen for a container.

The available types are:

  • Smart, which uses master-slave in a suitable orientiation and split, or grid layout when sensible.
  • Master-slave, with variable split and master orientation.
  • Code, with master on top and low-profile slaves side-by-side at the bottom (for e.g. terminals).
  • Grid, which does what it says on the tin.


All hard-coded:

  • mod+enter runs foot
  • mod+d runs clay-launch
  • mod+l runs clay-lock
  • mod+1-9 changes layout
  • mod+shift+e runs clay-exit
  • mod+shift+q kills a window
  • mod+shift+enter creates a new empty container
  • mod+shift+backspaces deletes a container


None. Use kanshi to sort out your outputs.