i3-compatible Wayland compositor https://swaywm.org
Find a file
Claudia a25645a5a6 Fix tabbed/stacking container height regression
Commit c2d6aff added a bounds check on `height - title_bar_height`,
repurposing the local variable `height` in an attempt to DRY out the
expression.

However, because re-assignment occurs inside the loop body, its result
would leak across loop iterations, compounding its effect and leading
to the artifact reported in issue #8625, where each child except the
first in a tabbed container would acquire a visible waterline.

Introduce a second variable and reset it in each loop iteration to get
rid of the waterline.

Fixes #8625.
2025-03-27 08:09:53 +01:00
.builds ci: use package x11-servers/xwayland instead of x11-servers/xwayland-devel 2024-07-14 23:19:19 +02: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 Define _POSIX_C_SOURCE globally 2024-02-23 17:43:19 +03:00
common stringop: move over has_prefix() 2025-01-07 16:35:31 +01:00
completions build: move completions to separate file 2022-11-28 18:51:45 -05:00
include Use SIG_IGN for SIGCHLD instead of our own handler 2025-03-11 09:15:05 +01:00
protocols Add ext-image-copy-capture-v1 and ext-image-capture-source-v1 2025-01-21 20:26:19 +03:00
sway Fix tabbed/stacking container height regression 2025-03-27 08:09:53 +01:00
swaybar stringop: fix has_prefix() arg order in config parsing 2025-03-20 21:31:32 +01:00
swaymsg sway/ipc-json: add ext-foreign-toplevel-handle identifier to get_tree ipc output 2025-02-16 19:18:29 +01:00
swaynag swaynag: fix null dereference on scale change 2024-11-09 02:33:48 +01:00
.editorconfig Create .editorconfig 2016-07-04 14:12:32 +02:00
.gitignore gitignore: Ignore clangd-generated directory .cache/ 2023-10-23 11:05:08 +02:00
.mailmap Add a .mailmap file 2023-03-26 23:22:30 +02:00
config.in Switch default config to wmenu-run 2024-08-11 19:47:39 +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 ipc-json: handle LIBINPUT_CONFIG_DRAG_LOCK_ENABLED_STICKY 2024-11-23 13:06:49 +03:00
meson_options.txt build: drop xwayland option 2024-05-21 11:44:39 -04:00
README.ar.md Translate README to Arabic 2023-09-14 13:37:50 +02:00
README.cs.md Remove language bars from remaining non-English README files 2024-10-28 14:06:01 +01:00
README.de.md Update README.de.md to match the EN one 2023-11-24 12:10:47 +01:00
README.dk.md readme: Stop recommending setuid bit for non-logind systems 2023-09-13 10:21:59 +02:00
README.es.md readme: Stop recommending setuid bit for non-logind systems 2023-09-13 10:21:59 +02:00
README.fr.md readme: Stop recommending setuid bit for non-logind systems 2023-09-13 10:21:59 +02:00
README.ge.md readme: Stop recommending setuid bit for non-logind systems 2023-09-13 10:21:59 +02:00
README.gr.md readme: Stop recommending setuid bit for non-logind systems 2023-09-13 10:21:59 +02:00
README.hi.md readme: Stop recommending setuid bit for non-logind systems 2023-09-13 10:21:59 +02:00
README.hu.md Fix orthographic mistakes in Hungarian README 2024-11-16 14:47:50 +01:00
README.ir.md readme: Stop recommending setuid bit for non-logind systems 2023-09-13 10:21:59 +02:00
README.it.md readme: Stop recommending setuid bit for non-logind systems 2023-09-13 10:21:59 +02:00
README.ja.md Improve Japanese translation 2022-10-08 10:12:00 +02:00
README.ko.md readme: Stop recommending setuid bit for non-logind systems 2023-09-13 10:21:59 +02:00
README.md Clarify gdk-pixbuf dependency purpose 2024-01-19 12:22:55 +01:00
README.nl.md readme: Stop recommending setuid bit for non-logind systems 2023-09-13 10:21:59 +02:00
README.no.md readme: Stop recommending setuid bit for non-logind systems 2023-09-13 10:21:59 +02:00
README.pl.md readme: Stop recommending setuid bit for non-logind systems 2023-09-13 10:21:59 +02:00
README.pt.md readme: Stop recommending setuid bit for non-logind systems 2023-09-13 10:21:59 +02:00
README.ro.md readme: Stop recommending setuid bit for non-logind systems 2023-09-13 10:21:59 +02:00
README.ru.md readme: Stop recommending setuid bit for non-logind systems 2023-09-13 10:21:59 +02:00
README.sv.md Remove language bars from remaining non-English README files 2024-10-28 14:06:01 +01:00
README.tr.md readme: Stop recommending setuid bit for non-logind systems 2023-09-13 10:21:59 +02:00
README.uk.md readme: Stop recommending setuid bit for non-logind systems 2023-09-13 10:21:59 +02:00
README.zh-CN.md readme: Stop recommending setuid bit for non-logind systems 2023-09-13 10:21:59 +02:00
README.zh-TW.md readme: Stop recommending setuid bit for non-logind systems 2023-09-13 10:21:59 +02:00
release.sh release.sh: read meson-rewrite output from stdout 2024-10-31 10:31:38 +01:00
sway.desktop Add the DesktopNames key to the sway.desktop session file 2025-03-08 12:56:03 +01:00

sway

English - عربي - Česky - Deutsch - Dansk - Español - Français - ქართული - Ελληνικά - हिन्दी - Magyar - فارسی - Italiano - 日本語 - 한국어 - Nederlands - Norsk - Polski - Português - Română - Русский - Svenska - 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 *
  • pcre2
  • json-c
  • pango
  • cairo
  • gdk-pixbuf2 (optional: additional image formats for system tray)
  • swaybg (optional: wallpaper)
  • scdoc (optional: man pages) *
  • git (optional: version info) *

* Compile-time dep

Run these commands:

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

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