i3-compatible Wayland compositor
Go to file
Rouven Czerwinski 0adcf77f3f transaction: destroying nodes aren't hidden
Commit 37d7bc6998 ("transaction: Only wait for ack from visible
views") introduced a check which uses view_is_visible() to check if a view
is still visible on the screen. However view_is_visible() will early
return in case the node is in the destroying state. This is incorrect
for transactions, since a destroying view which is visible will trigger
configure events for other clients. This bug was visible when repeatedly
opening and closing two views side by side, since we ignore the
destroying node we get a frame where the still open view is shown with
the old configure values and the rest is the desktop background. The
next frame is than correct again.

Fix this by considering destroying views as visible, we correctly wait
for them and send the configure events to other views in time, fixing
the background flicker.

Fixes #6473

(cherry picked from commit e4909ab4a3)
2022-01-21 13:13:16 +01:00
.builds ci: checkout wlroots 0.15.0 2022-01-16 19:39:24 +01:00
.github/ISSUE_TEMPLATE github: don't truncate debug logs 2021-10-17 21:28:51 +02:00
assets License wallpapers as CC-0 2019-12-16 14:35:58 -05:00
client cairo: Replace <cairo/cairo.h> by <cairo.h> 2021-05-10 10:28:32 +02:00
common Add safety assert in parse_movement_unit 2022-01-16 19:26:57 +01:00
completions i3-compat: add GET_BINDING_STATE IPC command 2020-06-14 00:55:14 -04:00
contrib grimshot: Exit 1 on cancellation 2021-07-10 13:03:42 +02:00
include Destroy sub-surfaces with parent layer-shell surface 2022-01-09 11:49:53 +01:00
protocols Add support for linux-dmabuf surface hints 2021-12-13 09:59:33 -06:00
sway transaction: destroying nodes aren't hidden 2022-01-21 13:13:16 +01:00
swaybar swaybar: fix tray item icon scaling, positioning 2022-01-07 15:09:24 +01:00
swaymsg refactor: use JSON_MAX_DEPTH everywhere 2021-10-25 10:18:40 +02:00
swaynag swaynag: remove xdg-output logic 2021-12-13 20:17:20 -06:00
.editorconfig Create .editorconfig 2016-07-04 14:12:32 +02:00
.gitignore Allocate minimum size necessary in pango text functions. (#3473) 2019-01-20 15:03:30 +01:00
config.in config.in: use swaynag -B instead of -b 2021-10-17 21:30:33 +02:00
CONTRIBUTING.md Fix IRC links in READMEs and templates 2021-05-26 08:25:13 +02:00
LICENSE MIT license 2017-01-06 13:45:48 -05:00
meson.build build: bump version to 1.7-rc3 2022-01-16 19:40:11 +01:00
meson_options.txt Add meson options to enable/disable swaybar and swaynag 2021-07-21 18:24:09 +02:00
README.de.md Update URL to wlroots project (GitHub->GitLab) 2021-11-02 08:43:24 +01:00
README.dk.md Update URL to wlroots project (GitHub->GitLab) 2021-11-02 08:43:24 +01:00
README.es.md Update URL to wlroots project (GitHub->GitLab) 2021-11-02 08:43:24 +01:00
README.fr.md Update URL to wlroots project (GitHub->GitLab) 2021-11-02 08:43:24 +01:00
README.gr.md Update URL to wlroots project (GitHub->GitLab) 2021-11-02 08:43:24 +01:00
README.hu.md Update URL to wlroots project (GitHub->GitLab) 2021-11-02 08:43:24 +01:00
README.ir.md readme: use right-to-left marks in ir translation 2021-12-07 15:26:57 +01:00
README.ja.md Update URL to wlroots project (GitHub->GitLab) 2021-11-02 08:43:24 +01:00
README.ko.md Update URL to wlroots project (GitHub->GitLab) 2021-11-02 08:43:24 +01:00
README.md Update URL to wlroots project (GitHub->GitLab) 2021-11-02 08:43:24 +01:00
README.nl.md Update URL to wlroots project (GitHub->GitLab) 2021-11-02 08:43:24 +01:00
README.pl.md Update URL to wlroots project (GitHub->GitLab) 2021-11-02 08:43:24 +01:00
README.pt.md Update URL to wlroots project (GitHub->GitLab) 2021-11-02 08:43:24 +01:00
README.ro.md Update URL to wlroots project (GitHub->GitLab) 2021-11-02 08:43:24 +01:00
README.ru.md Update URL to wlroots project (GitHub->GitLab) 2021-11-02 08:43:24 +01:00
README.tr.md Update URL to wlroots project (GitHub->GitLab) 2021-11-02 08:43:24 +01:00
README.uk.md Update URL to wlroots project (GitHub->GitLab) 2021-11-02 08:43:24 +01:00
README.zh-CN.md Update URL to wlroots project (GitHub->GitLab) 2021-11-02 08:43:24 +01:00
README.zh-TW.md Update URL to wlroots project (GitHub->GitLab) 2021-11-02 08:43:24 +01:00
sway.desktop Update language in sway.desktop & sway(1) 2019-03-10 15:09:52 -04:00

sway

English - 日本語 - Français - Українська - Español - Polski - 中文-简体 - Deutsch - Nederlands - Русский - 中文-繁體 - Português - Dansk - 한국어 - Română - Magyar - Türkçe - فارسی - Ελληνικά

sway is an i3-compatible Wayland compositor. Read the FAQ. Join the IRC channel (#sway on irc.libera.chat).

Release Signatures

Releases are signed with E88F5E48 and published on GitHub.

Installation

From Packages

Sway is available in many distributions. Try installing the "sway" package for yours.

Compiling from Source

Check out this wiki page if you want to build the HEAD of sway 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.

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).