There were two wlr_output_commit calls that were not being checked. If the commits fail, apply_output_config should early return false instead of continuing to apply more. In one of the two cases, it was possible for output_enable to be called immediately after a commit failed for wlr_output_enable. In some cases, wlroots will destroy the output when it fails to enable. When this happens, it was possible for output_enable to call apply_output_config again for the destroyed output. Since this is a use-after-free, the wlr_output has already been reset to NULL before freeing. This could results in wlr_output_enable or any of the other wlr_output_* calls being called with NULL as the wlr_output. |
||
|---|---|---|
| .builds | ||
| .github | ||
| assets | ||
| client | ||
| common | ||
| completions | ||
| contrib | ||
| include | ||
| protocols | ||
| security.d | ||
| sway | ||
| swaybar | ||
| swaymsg | ||
| swaynag | ||
| .clang-format | ||
| .editorconfig | ||
| .gitignore | ||
| config.in | ||
| CONTRIBUTING.md | ||
| ISSUE_TEMPLATE.md | ||
| LICENSE | ||
| meson.build | ||
| meson_options.txt | ||
| README.de.md | ||
| README.es.md | ||
| README.fr.md | ||
| README.ja.md | ||
| README.md | ||
| README.nl.md | ||
| README.pl.md | ||
| README.ru.md | ||
| README.uk.md | ||
| README.zh-CN.md | ||
| README.zh-TW.md | ||
| sway.desktop | ||
sway
English - 日本語 - Français - Українська - Español - Polski - 中文-简体 - Deutsch - Nederlands - Русский - 中文-繁體
sway is an i3-compatible Wayland compositor. Read the FAQ. Join the IRC channel (#sway on irc.freenode.net).
If you'd like to support sway development, please contribute to SirCmpwn's Patreon page.
Release Signatures
Releases are signed with B22DA89A and published on GitHub.
Installation
From Packages
Sway is available in many distributions. Try installing the "sway" package for yours. If it's not available, check out this wiki page for information on installation for your distributions.
If you're interested in packaging sway for your distribution, stop by the IRC channel or shoot an email to sir@cmpwn.com for advice.
Compiling from Source
Install dependencies:
- meson *
- wlroots
- wayland
- wayland-protocols *
- pcre
- json-c
- pango
- cairo
- gdk-pixbuf2 (optional: system tray)
- scdoc (optional: man pages) *
- git *
*Compile-time dep
Run these commands:
meson build
ninja -C build
sudo ninja -C build install
On systems without logind, you need to suid the sway binary:
sudo chmod a+s /usr/local/bin/sway
Sway will drop root permissions shortly after startup.
Configuration
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.
Running
Run sway from a TTY. Some display managers may work but are not supported by
sway (gdm is known to work fairly well).