Skip to content

Wayland Maker - A Wayland compositor inspired by Window Maker

License

Notifications You must be signed in to change notification settings

phkaeser/wlmaker

Repository files navigation

wlmaker - Wayland Maker

A Wayland compositor inspired by Window Maker.

Key features:

  • Compositor for windows in stacking mode.
  • Supports multiple workspaces.
  • Appearance inspired by Window Maker, following the look and feel of NeXTSTEP.
  • Easy to use, lightweight, low gimmicks and fast.
  • Dock and clip, to be extended for dockable apps.

Current status

Wayland Maker is in early development stage. Highlights for current version (0.2):

  • Appearance matches Window Maker: Decorations, dock, clip.
  • Support for Wayland XDG shell (mostly complete. Bug reports welcome).
  • Initial support for X11 applications (positioning and specific modes are missing).
  • Appearance, workspaces, dock, keyboard: All hardcoded.
  • A prototype DockApp (apps/wlmclock).

For further details, see the roadmap.

Protocol support:

  • xdg-decoration-unstable-v1: Implemented & tested.
  • ext-session-lock-v1: Implemented & tested.
  • xdg-shell: Largely implemented & tested.
  • idle-inhibit-unstable-v1: Implemented, untested.

To configure

Some of Wayland Maker's core dependencies are also in development and are a moving target, hence these are referred to as git submodules. Build and install these first (default to ${HOME}/.local):

git submodule update --init --checkout --recursive --merge
(cd dependencies &&
 LD_LIBRARY_PATH="${HOME}/.local/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)" \
 PKG_CONFIG_PATH="${HOME}/.local/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)/pkgconfig/:${HOME}/.local/share/pkgconfig/" \
 cmake -DCMAKE_INSTALL_PREFIX:PATH=${HOME}/.local -B build &&
 cd build &&
 LD_LIBRARY_PATH="${HOME}/.local/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)" \
 PKG_CONFIG_PATH="${HOME}/.local/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)/pkgconfig/:${HOME}/.local/share/pkgconfig/" \
 make)

With the dependencies installed, proceed to configure wlmaker:

LD_LIBRARY_PATH="${HOME}/.local/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)" \
PKG_CONFIG_PATH="${HOME}/.local/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)/pkgconfig/:${HOME}/.local/share/pkgconfig/" \
cmake -DCMAKE_INSTALL_PREFIX="${HOME}/.local" -B build/

To build and install

(cd build && \
 LD_LIBRARY_PATH="${HOME}/.local/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)" \
 PKG_CONFIG_PATH="${HOME}/.local/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)/pkgconfig/:${HOME}/.local/share/pkgconfig/" \
 make && \
 make install)

To run it

Since wlmaker is in early development, it's not recommended to use it as your primary compositor. It should run fine in it's own window, though:

LD_LIBRARY_PATH="${HOME}/.local/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)" \
PKG_CONFIG_PATH="${HOME}/.local/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)/pkgconfig/:${HOME}/.local/share/pkgconfig/" \
${HOME}/.local/bin/wlmaker

Press ctrl+window+alt T to open a Terminal (foot), and ctrl-window-alt Q to exit.

Contributing

See CONTRIBUTING.md for details, and code of conduct for more.

License

Apache 2.0; see LICENSE for details.

Disclaimer

This project is not an official Google project. It is not supported by Google and Google specifically disclaims all warranties as to its quality, merchantability, or fitness for a particular purpose.