A tiling, tabbed wayland compositor (based on Sway)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Arnout Engelen bdf3834a3c
Document how to build with meson
5 days ago
.builds ci: checkout wlroots 0.15.0 10 months ago
.github/ISSUE_TEMPLATE github: don't truncate debug logs 1 year ago
assets License wallpapers as CC-0 3 years ago
client cairo: Replace <cairo/cairo.h> by <cairo.h> 2 years ago
common Add safety assert in parse_movement_unit 10 months ago
completions i3-compat: add GET_BINDING_STATE IPC command 2 years ago
contrib grimshot: Exit 1 on cancellation 1 year ago
include Destroy sub-surfaces with parent layer-shell surface 11 months ago
protocols Add support for linux-dmabuf surface hints 12 months ago
sway Simpler test framework 5 days ago
swaybar swaybar: fix tray item icon scaling, positioning 11 months ago
swaymsg refactor: use JSON_MAX_DEPTH everywhere 1 year ago
swaynag swaynag: remove xdg-output logic 12 months ago
.editorconfig Create .editorconfig 6 years ago
.gitignore Add one (ugly-ass hard-coded) unit test 3 weeks ago
.woodpecker.yml initial CI config 2 weeks ago
CONTRIBUTING.md Document how to build with meson 5 days ago
LICENSE MIT license 6 years ago
README.md Document 'all issues welcome' policy 1 week ago
config.in Enable container mouse warping 5 days ago
flake.nix Add basic flake.nix 3 weeks ago
meson.build Rename main command to 'volare' 4 weeks ago
meson_options.txt Add meson options to enable/disable swaybar and swaynag 1 year ago
sway.desktop Update language in sway.desktop & sway(1) 4 years ago



volare is a tabbed, tiling Wayland compositor.

This means, compared to other tiling compositors, volare is more static: new windows will show up as tabs in the current frame instead of rearranging the screen layout.

Project status

This project is in its bootstrap phase: it should be basically functional, but is still poorly documented and might have surprising behaviour in a number of places. Feel free to try it out, report any Issues, or jump in and fix some :).

Contributors are welcome!

Reporting issues

Volare has an 'all issues welcome' policy: reports that are likely (or even confirmed) to be 'upstream' issues are still welcome to be tracked here. This makes the volare issue tracker a place where the community can share diagnostics, workarounds and alternatives.

Wishlist items are also welcome.

This means over time the issue list will grow to contain many items that are unlikely to be addressed. We do not consider this a problem: they are an invitation to move the work forward if you happen to care about that particular issue. We will only close issues that are no longer reproducible, or where we have weighed the pros and cons and decided we actually prefer the current behavior.


volare is a branch of Sway, with relatively minor changes to make it behave more like Notion. This means we take advantage of the great Sway codebase and the work done to make other Wayland tools integrate well with it. All the bugs are ours, all the complicated bits theirs ;).


Q: Do you plan to make your changes available upstream?

A: Definitely! In a perfect world Volare would just be another configuration for Sway. In practice, however, for many of the changes supporting both behaviors side-by-side from the same codebase would make things needlessly complex, so we expect those not make sense for Sway, and to maintain these as a fork instead. That said, we do prefer to keep the delta as small as possible and share patches upstream where possible.

Q: Do you plan to keep tracking upstream development?

A: Yes, we plan to merge upstream into our branch at irregular intervals.

Q: Will you rename all sway tooling commands?

A: No: we don't expect to make changes to the APIs between various tools and the compositor. We will ship any tools that come with Sway, but they should be identical to the ones that come with Sway itself. Distributions where this makes sense are encouraged to just install the Sway tools instead of the same tools but built from our branch.

Compiling from Source

For now, check out the Sway Development setup if you want to build the HEAD of volare and wlroots for testing or development.

Install dependencies:

  • meson *
  • wlroots
  • wayland
  • wayland-protocols *
  • pcre
  • json-c
  • pango
  • cairo
  • gdk-pixbuf2 (optional: system tray)
  • scdoc (optional: man pages) *
  • git (optional: version info) *

* Compile-time dep

Run these commands:

meson build/
ninja -C build/
sudo ninja -C build/ install

On systems without logind nor seatd, you need to suid the sway binary:

sudo chmod a+s /usr/local/bin/sway

Sway will drop root permissions shortly after startup.


If you already use i3, then copy your i3 config to ~/.config/sway/config and it'll work out of the box. Otherwise, copy the sample configuration file to ~/.config/sway/config. It is usually located at /etc/sway/config. Run man 5 sway for information on the configuration.


Run sway from a TTY. Some display managers may work but are not supported by sway (gdm is known to work fairly well).