aboutsummaryrefslogtreecommitdiff
path: root/tinywl/README.md
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2019-01-03 17:14:00 -0500
committerGitHub <noreply@github.com>2019-01-03 17:14:00 -0500
commitbcf48931db14f24fcd35a6999969864ca2539d32 (patch)
treead5aa20d125e8feae2b8dceb87d4e8bba0ed867a /tinywl/README.md
parente2c216a4b84803668a10351dc1d5d9d922ae5539 (diff)
parent25f905fdaa60fedd4ff8797e52b0da3cb2a888ab (diff)
downloadwlroots-bcf48931db14f24fcd35a6999969864ca2539d32.tar.xz
Merge pull request #1449 from swaywm/tinywl
Merge tinywl
Diffstat (limited to 'tinywl/README.md')
-rw-r--r--tinywl/README.md47
1 files changed, 47 insertions, 0 deletions
diff --git a/tinywl/README.md b/tinywl/README.md
new file mode 100644
index 00000000..caacc412
--- /dev/null
+++ b/tinywl/README.md
@@ -0,0 +1,47 @@
+# TinyWL
+
+This is the "minimum viable product" Wayland compositor based on wlroots. It
+aims to implement a Wayland compositor in the fewest lines of code possible,
+while still supporting a reasonable set of features. Reading this code is the
+best starting point for anyone looking to build their own Wayland compositor
+based on wlroots.
+
+## Building TinyWL
+
+TinyWL is disconencted from the main wlroots build system, in order to make it
+easier to understand the build requirements for your own Wayland compositors.
+Simply install the dependencies:
+
+- wlroots
+- wayland-protocols
+
+And run `make`.
+
+## Running TinyWL
+
+You can run TinyWL with `./tinywl`. In an existing Wayland or X11 session,
+tinywl will open a Wayland or X11 window respectively to act as a virtual
+display. You can then open Wayland windows by setting `WAYLAND_DISPLAY` to the
+value shown in the logs. You can also run `./tinywl` from a TTY.
+
+In either case, you will likely want to specify `-s [cmd]` to run a command at
+startup, such as a terminal emulator. This will be necessary to start any new
+programs from within the compositor, as TinyWL does not support any custom
+keybindings. TinyWL supports the following keybindings:
+
+- `Alt+Escape`: Terminate the compositor
+- `Alt+F1`: Cycle between windows
+
+## Limitations
+
+Notable omissions from TinyWL:
+
+- HiDPI support
+- Any kind of configuration, e.g. output layout
+- Any protocol other than xdg-shell (e.g. layer-shell, for
+ panels/taskbars/etc; or Xwayland, for proxied X11 windows)
+- Optional protocols, e.g. screen capture, primary selection, virtual
+ keyboard, etc. Most of these are plug-and-play with wlroots, but they're
+ omitted for brevity.
+- Damage tracking, which tracks which parts of the screen are changing and
+ minimizes redraws accordingly.