i3-compatible Wayland compositor
Go to file
Kenny Levinsen 1267e47de9 config/output: Refactor handling of tiered configs
Output configuration can be applied to a particular output in three
ways: As a wildcard, by connector name and by identifier. This in turn
means that three different configurations must be handled at any given
time.

In the current model, this is managed by merging new configuration into
every other matching configuration. At the same time, an additional
synthetic configuration is made which matchehes both identifier and name
at the same time, further complicating logic.

Instead, manage and store each configuration independently and merge
them in order when retrieving configuration for an output. When changes
are made to a less specific configuration, clear these fields from more
specific configurations to allow the change to take effect regardless of
precedence.

Fixes: https://github.com/swaywm/sway/issues/8048
2024-04-12 17:32:26 +02:00
.builds ci: add libdisplay-info dependency 2023-02-28 23:19:33 +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 Define _POSIX_C_SOURCE globally 2024-02-23 17:43:19 +03:00
common Define _POSIX_C_SOURCE globally 2024-02-23 17:43:19 +03:00
completions build: move completions to separate file 2022-11-28 18:51:45 -05:00
include config/output: Refactor handling of tiered configs 2024-04-12 17:32:26 +02:00
protocols Chase wlroots!4440 2023-11-22 00:42:55 +03:00
sway config/output: Refactor handling of tiered configs 2024-04-12 17:32:26 +02:00
swaybar Define _POSIX_C_SOURCE globally 2024-02-23 17:43:19 +03:00
swaymsg Define _POSIX_C_SOURCE globally 2024-02-23 17:43:19 +03:00
swaynag Define _POSIX_C_SOURCE globally 2024-02-23 17:43:19 +03: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 Use locale time format for default bar command 2023-11-21 17:42:09 +01: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 Define _POSIX_C_SOURCE globally 2024-02-23 17:43:19 +03:00
meson_options.txt Clarify gdk-pixbuf dependency purpose 2024-01-19 12:22:55 +01:00
README.ar.md Translate README to Arabic 2023-09-14 13:37:50 +02:00
README.cs.md readme: Stop recommending setuid bit for non-logind systems 2023-09-13 10:21:59 +02: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 readme: Stop recommending setuid bit for non-logind systems 2023-09-13 10:21:59 +02: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 readme: Stop recommending setuid bit for non-logind systems 2023-09-13 10:21:59 +02: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 Add release script 2024-02-26 09:02:06 -05:00
sway.desktop Update language in sway.desktop & sway(1) 2019-03-10 15:09:52 -04: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).