i3-compatible Wayland compositor
Find a file
Dudemanguy 3d5ae9813d xdg_shell: update wlr_toplevel size on client resizes
If a floating client resizes itself, sway updates several of its
internal dimensions to match but not wlr_toplevel. This means that the
next time wlroots sends a toplevel configure event, it can have wrong
coordinates that resize the client back to its old size. To fix this,
let's just use wlr_xdg_toplevel_set_size so the wlr_toplevel has the
same dimensions as sway.

Exactly the same as 0183b9d35d0ce750588e700e536b7d2e367b0d0a but the
logic is onlly applied to xdg_shell and not xwayland.
2023-08-28 17:04:53 -07: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 Use shm_open instead of mkstemp 2022-11-25 00:05:12 +01:00
common Use format_str() throughout 2023-04-14 18:34:54 +02:00
completions build: move completions to separate file 2022-11-28 18:51:45 -05:00
include Fix typo 2023-08-23 20:18:13 +02:00
protocols Add support for cursor-shape-v1 2023-07-24 11:28:31 +02:00
sway xdg_shell: update wlr_toplevel size on client resizes 2023-08-28 17:04:53 -07:00
swaybar swaybar: Implement wp_cursor_shape_v1 2023-07-31 10:34:11 +02:00
swaymsg fix typo 2023-02-25 10:50:43 +01:00
swaynag swaynag: Implement wp_cursor_shape_v1 2023-07-31 10:34:11 +02: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
.mailmap Add a .mailmap file 2023-03-26 23:22:30 +02:00
config.in Switch default menu to wmenu 2023-01-30 15:08:16 -05: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 render: Use wlroots scale filter 2023-06-19 19:14:28 +02:00
meson_options.txt Add meson options to enable/disable swaybar and swaynag 2021-07-21 18:24:09 +02:00
README.cs.md Fix typo in Czech README translation 2022-11-30 14:43:43 +01:00
README.de.md Replace pcre with pcre2 2022-03-12 14:02:32 +01:00
README.dk.md Replace pcre with pcre2 2022-03-12 14:02:32 +01:00
README.es.md Replace pcre with pcre2 2022-03-12 14:02:32 +01:00
README.fr.md Replace pcre with pcre2 2022-03-12 14:02:32 +01:00
README.ge.md Add Georgian README 2023-07-20 08:36:29 +02:00
README.gr.md Replace pcre with pcre2 2022-03-12 14:02:32 +01:00
README.hi.md Add a Hindi (हिन्दी) translation to the README 2022-05-27 21:09:18 +02:00
README.hu.md Replace pcre with pcre2 2022-03-12 14:02:32 +01:00
README.ir.md Replace pcre with pcre2 2022-03-12 14:02:32 +01:00
README.it.md Translated README into Italian 2022-02-07 10:55:55 +01:00
README.ja.md Improve Japanese translation 2022-10-08 10:12:00 +02:00
README.ko.md Replace pcre with pcre2 2022-03-12 14:02:32 +01:00
README.md Add Georgian README 2023-07-20 08:36:29 +02:00
README.nl.md Replace pcre with pcre2 2022-03-12 14:02:32 +01:00
README.no.md Add Norwegian READMR 2023-02-02 17:45:01 +01:00
README.pl.md Replace pcre with pcre2 2022-03-12 14:02:32 +01:00
README.pt.md Replace pcre with pcre2 2022-03-12 14:02:32 +01:00
README.ro.md Replace pcre with pcre2 2022-03-12 14:02:32 +01:00
README.ru.md Replace pcre with pcre2 2022-03-12 14:02:32 +01:00
README.sv.md Add Swedish README 2022-04-18 18:51:45 +02:00
README.tr.md Replace pcre with pcre2 2022-03-12 14:02:32 +01:00
README.uk.md Replace pcre with pcre2 2022-03-12 14:02:32 +01:00
README.zh-CN.md Polish the language in README.zh-CN.md & sync with English one 2022-05-24 07:40:47 +02:00
README.zh-TW.md Replace pcre with pcre2 2022-03-12 14:02:32 +01: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: 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).