A tiling, tabbed wayland compositor (based on Sway)
Go to file
Arnout Engelen 4857fee1ef
Document how to report security issues
2023-09-21 14:52:30 +02:00
.builds ci: checkout wlroots 0.16.0 2022-11-11 22:30:10 +01:00
assets License wallpapers as CC-0 2019-12-16 14:35:58 -05:00
client Use shm_open instead of mkstemp 2022-11-26 10:29:58 +01:00
common Reuse parsed PangoFontDescription 2022-07-01 13:05:58 +02:00
completions bash-completion: localize variables 2022-03-27 11:27:57 +02:00
contrib grimshot: fix tilde expansion within quotes 2022-07-30 09:25:24 +02:00
include Move container in direction 2023-07-16 14:50:10 +02:00
protocols build: drop intermediate libraries for protocols 2022-11-26 10:29:58 +01:00
sway seatop_default: check_focus_follows_mouse(): e->previous_node NULL check 2023-08-05 17:05:49 -04:00
swaybar Rename binaries sway{bar,msg,nag} → volare{bar,msg,nag} 2023-06-25 05:48:26 -04:00
swaymsg Rename in a couple more places 2023-06-27 23:22:34 +02:00
swaynag swaynag: Get config from renamed 'volarenag' config paths 2023-06-25 05:48:26 -04:00
.editorconfig Create .editorconfig 2016-07-04 14:12:32 +02:00
.gitignore Ignore /result 2023-03-25 10:20:11 +01:00
.woodpecker.yml Build on CI again 2023-07-04 09:23:37 +02:00
CONTRIBUTING.md Document the versioning scheme 2023-06-29 22:03:53 +02:00
LICENSE LICENSE: Add Volare-specific copyright statement and license grant 2023-06-30 22:43:56 -04:00
README.md Document how to report security issues 2023-09-21 14:52:30 +02:00
config.in Review of default config 2023-07-18 18:32:27 +02:00
flake.lock Update to work with newer libinput 2023-05-14 09:58:30 +02:00
flake.nix Enable debugging in the flake build config 2023-07-17 09:09:16 +02:00
meson.build sway.desktop → volare.desktop 2023-06-25 05:48:26 -04:00
meson_options.txt Add meson options to enable/disable swaybar and swaynag 2021-07-21 18:24:09 +02:00
meson_volare_rename.py meson: Rename manpage and completion content at install time 2023-06-25 05:48:26 -04:00
volare.desktop sway.desktop → volare.desktop 2023-06-25 05:48:26 -04:00



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.

Reporting security issues

If you have found a potential security issue, please report it privately by email to volare [at] bzzt.net .


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: The tools, manpages, and various other files that ship with sway have been renamed so that an installation of volare won't conflict with an installation of sway. We don't expect to make changes to the APIs between various tools and the compositor, however. Volare also continues to use SWAYSOCK as the name of the environmental variable containing the path to its IPC socket. This means that any existing tools you may have that are designed to work with the sway IPC socket should continue to work with volare.

Compiling from Source

For now, check out the sway wiki's Development Setup instructions if you want to build the HEAD of volare and wlroots for testing or development.

Install dependencies:

  • meson *
  • wlroots
  • wayland
  • wayland-protocols *
  • pcre2
  • 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 volare binary:

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

Volare will drop root permissions shortly after startup.


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

If your configuration uses the swaybar, swaymsg, or swaynag commands, it can be updated to use volarebar, volaremsg, and volarenag instead.


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