i3-compatible Wayland compositor
Go to file
Kenny Levinsen d1eab10266 output: Schedule idle frames if we do not render
Repaint scheduling delays output render and frame done events from
output frame events, and block idle frame events from being scheduled in
between output frame done and output render in this period of time.

If a surface is committed after its frame done event, but before output
render, idle frame requests will be blocked, and the surface relies on
the upcoming render to schedule a frame.

If when the repaint timer expires, output render is deemed unnecessary,
no frame will be scheduled. This can lead to surfaces never having their
frame callbacks fire.

To fix this, we store that a surface has requested a frame in
surface_needs_frame. When the repaint expires, if no render is deemed
necessary, we check this flag and schedule an idle frame.

Fixes #4768
2019-12-01 12:44:07 +01:00
.builds Remove rootston from build manifests 2019-08-09 09:59:44 +09:00
.github Update .github/FUNDING.yml 2019-10-11 19:36:58 -04:00
assets Recompressed PNG files 2017-01-05 21:49:28 -05:00
client Rename symbol set_cloexec to sway_set_cloexec, remove duplicates. 2019-11-01 12:41:08 -04:00
common Amend typos 2019-11-23 11:48:31 +01:00
completions Add missing swaymsg completions 2019-03-08 15:28:35 -05:00
contrib grimshot: fix branching on command exit status 2019-11-17 17:18:54 +01:00
include output: Schedule idle frames if we do not render 2019-12-01 12:44:07 +01:00
protocols input: Add support for tablet protocol. 2019-09-25 23:10:33 -04:00
security.d delete references to swaygrab 2018-07-30 16:24:46 +01:00
sway output: Schedule idle frames if we do not render 2019-12-01 12:44:07 +01:00
swaybar Amend typos 2019-11-23 11:48:31 +01:00
swaymsg add scale_filter output config option 2019-11-29 18:13:37 +01:00
swaynag Fix markup syntax in man pages 2019-08-31 22:50:39 +09:00
.clang-format Update .clang-format - not entirely usable yet 2017-01-10 23:30:34 -05: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
CONTRIBUTING.md CONTRIBUTING.md: mention tab width for line length 2019-01-14 19:46:54 +01:00
ISSUE_TEMPLATE.md Add Firefox note to ISSUE_TEMPALTE.md 2019-05-06 15:32:37 -04:00
LICENSE MIT license 2017-01-06 13:45:48 -05:00
README.de.md Add link to i3 in first mention of README 2019-04-27 17:28:24 -06:00
README.es.md Add link to i3 in first mention of README 2019-04-27 17:28:24 -06:00
README.fr.md Add link to i3 in first mention of README 2019-04-27 17:28:24 -06:00
README.ja.md Add link to i3 in first mention of README 2019-04-27 17:28:24 -06:00
README.md Add Russian translation of the README 2019-09-09 19:09:57 +03:00
README.nl.md Added Dutch translation of README 2019-07-17 12:36:52 -04:00
README.pl.md Add link to i3 in first mention of README 2019-04-27 17:28:24 -06:00
README.ru.md Add Russian translation of the README 2019-09-09 19:09:57 +03:00
README.uk.md Add link to i3 in first mention of README 2019-04-27 17:28:24 -06:00
README.zh-CN.md Add link to i3 in first mention of README 2019-04-27 17:28:24 -06:00
config.in config.in: set default term to alacritty 2019-09-25 22:40:04 -04:00
meson.build add scale_filter output config option 2019-11-29 18:13:37 +01:00
meson_options.txt Set version in project file 2019-02-05 14:32:05 +01:00
sway.desktop Update language in sway.desktop & sway(1) 2019-03-10 15:09:52 -04:00

README.md

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