i3-compatible Wayland compositor
Find a file
Brian Ashworth 9b41db32ec Fix identifier output configs on reload
When generating default output configs to reset the outputs to their
default settings on reload, the output name was being used.
Additionally when determining the output config to apply, if there was
an output config with the output name, that was being used without
checking for an identifier config. This caused sway to completely ignore
the users specified output config.

To fix this issue, the following changes have been made:
1. Default output configs as created for the identifier now instead of
name. This actually makes more sense anyway since you could hotplug
multiple different outputs to the same port.
2. In get_output_config, which is only used to determine which output
config to apply, output configs for both the name and identifier are
queried. If both are found, a new output config is generated with the
identifier config merged on top of the name config. If just one is found,
a copy of that config is returned. This change also requires that the
result from get_output_config be freed after use to prevent memory
leaks, which required some minor changes to logic in
apply_output_config_to_outputs.
2018-12-03 08:51:27 +01:00
assets Recompressed PNG files 2017-01-05 21:49:28 -05:00
client Change _XOPEN_SOURCE defines to _POSIX_C_SOURCE 2018-09-03 09:08:49 +02:00
common Replace _XOPEN_SOURCE with _POSIX_C_SOURCE 2018-11-25 17:19:43 +01:00
completions document swaymessage type for get_seats 2018-11-04 22:49:44 +01:00
contrib A script to make inactive windows transparent 2018-10-20 21:58:00 +03:00
include Implement bar gaps 2018-11-28 11:24:14 -05:00
protocols Update for swaywm/wlroots#1243 2018-09-14 19:21:44 +02:00
security.d delete references to swaygrab 2018-07-30 16:24:46 +01:00
sway Fix identifier output configs on reload 2018-12-03 08:51:27 +01:00
swaybar Implement bar gaps 2018-11-28 11:24:14 -05:00
swaybg Sway clients: Exit gracefully when compositor is unavailable 2018-10-15 21:57:59 +10:00
swayidle swayidle: fix busy loop on writable FD 2018-11-25 18:10:01 +01:00
swaylock fix typo 2018-12-02 20:48:29 +01:00
swaymsg swaymsg: parse success of single object 2018-11-28 21:41:58 -05:00
swaynag Implement swaynag -B/--button-no-terminal 2018-11-27 23:34:51 -05:00
.build.yml Add scdoc to .build.yml 2018-05-11 21:40:52 -04: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 Add subprojects to gitignore 2018-03-28 12:22:28 -04:00
config.in fix typo in config.in 2018-11-19 22:32:08 +01:00
CONTRIBUTING.md Update CONTRIBUTING.md 2018-10-06 11:52:28 -04:00
ISSUE_TEMPLATE.md Update ISSUE_TEMPLATE.md 2018-10-31 08:13:56 -04:00
LICENSE MIT license 2017-01-06 13:45:48 -05:00
meson.build meson.build: remove obsolete definition of swayidle_deps 2018-12-01 13:55:19 +00:00
meson_options.txt Add support for installing binaries with DT_RPATH 2018-09-30 15:37:01 +03:00
README.bg.md Advertize dependency on git 2018-10-23 09:56:56 +02:00
README.de.md Advertize dependency on git 2018-10-23 09:56:56 +02:00
README.el.md Advertize dependency on git 2018-10-23 09:56:56 +02:00
README.fr.md Advertize dependency on git 2018-10-23 09:56:56 +02:00
README.it.md Advertize dependency on git 2018-10-23 09:56:56 +02:00
README.ja.md Correction to dependency updates 2018-11-02 13:48:25 -04:00
README.md Correction to dependency updates 2018-11-02 13:48:25 -04:00
README.pt.md Advertize dependency on git 2018-10-23 09:56:56 +02:00
README.ru.md Advertize dependency on git 2018-10-23 09:56:56 +02:00
README.uk.md Advertize dependency on git 2018-10-23 09:56:56 +02:00
sway.desktop Add Wayland and Xorg session files 2015-08-20 23:12:34 +02:00

sway

English - 日本語 - Deutsch - Ελληνικά - Français - Українська - Italiano - Português - Русский - Български

"SirCmpwn's Wayland compositor" is a work in progress 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 **
  • pam (optional: PAM support for swaylock)
  • scdoc (optional: man pages) *
  • git *

*Compile-time dep

**optional: required for swaybg and swaylock

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