i3-compatible Wayland compositor
Find a file
Michael Weiser 44a2a60dcd input: Add basic pointer gesture support
Passing of gesture events added in #4794 allows to use them in clients
but not in sway itself, for example to switch workspaces using
three-finger swipes.

Add support for binding four basic directional swipes to arbitrary sway
commands. Add the necessary handling to default seatops to execute them
at the beginning or end of a swipe gesture. This for now responds to all
swipes, ignoring the number of fingers used.

The former throws up the intrinsic conundrum that we can not know the
kind of swipe that's going to happen because it can change all through
its lifecylce. Therefore we can only execute bindings on release.

Test plan:
- add workspace switching to config like so:

bindsym --whole-window SWIPE_LEFT workspace prev_on_output
bindsym --whole-window SWIPE_RIGHT workspace next_on_output

- start sway and open two workspaces
- switch back and forth using horizontal three-finger swipes, observing
  that vertical swipes won't

Signed-off-by: Michael Weiser <michael.weiser@gmx.de>
2021-08-05 20:07:45 +02:00
.builds ci: make Meson warnings fatal 2021-06-30 13:37:00 +02:00
.github/ISSUE_TEMPLATE Fix IRC links in READMEs and templates 2021-05-26 08:25:13 +02:00
assets License wallpapers as CC-0 2019-12-16 14:35:58 -05:00
client cairo: Replace <cairo/cairo.h> by <cairo.h> 2021-05-10 10:28:32 +02:00
common input: Move get_current_time_msec in from util 2021-06-23 09:55:36 +02:00
completions i3-compat: add GET_BINDING_STATE IPC command 2020-06-14 00:55:14 -04:00
contrib grimshot: Exit 1 on cancellation 2021-07-10 13:03:42 +02:00
include input: Add basic pointer gesture support 2021-08-05 20:07:45 +02:00
protocols build: use Dependency.get_variable instead of get_pkgconfig_variable 2021-06-30 13:37:00 +02:00
sway input: Add basic pointer gesture support 2021-08-05 20:07:45 +02:00
swaybar swaybar: log Wayland display errors 2021-07-26 16:58:28 +02:00
swaymsg Make command line option lists const 2021-02-04 09:49:06 +01:00
swaynag swaynag: adds option to set wayland shell layer 2021-06-17 11:47:49 +02:00
.clang-format Update clang format to better match existing code 2021-06-22 20:21:45 +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
config.in config.in: change terminal emulator to foot 2021-05-06 20:52:51 +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 Add meson options to enable/disable swaybar and swaynag 2021-07-21 18:24:09 +02:00
meson_options.txt Add meson options to enable/disable swaybar and swaynag 2021-07-21 18:24:09 +02:00
README.de.md readme: switch back to IRC web client 2021-05-26 22:09:05 +02:00
README.dk.md readme: switch back to IRC web client 2021-05-26 22:09:05 +02:00
README.es.md readme: switch back to IRC web client 2021-05-26 22:09:05 +02:00
README.fr.md readme: switch back to IRC web client 2021-05-26 22:09:05 +02:00
README.hu.md readme: switch back to IRC web client 2021-05-26 22:09:05 +02:00
README.ja.md readme: switch back to IRC web client 2021-05-26 22:09:05 +02:00
README.ko.md readme: switch back to IRC web client 2021-05-26 22:09:05 +02:00
README.md Change 'Danish' to 'Dansk' in README 2021-06-30 16:16:53 +02:00
README.nl.md readme: switch back to IRC web client 2021-05-26 22:09:05 +02:00
README.pl.md readme: switch back to IRC web client 2021-05-26 22:09:05 +02:00
README.pt.md readme: switch back to IRC web client 2021-05-26 22:09:05 +02:00
README.ro.md readme: switch back to IRC web client 2021-05-26 22:09:05 +02:00
README.ru.md readme: switch back to IRC web client 2021-05-26 22:09:05 +02:00
README.tr.md readme: switch back to IRC web client 2021-05-26 22:09:05 +02:00
README.uk.md readme: switch back to IRC web client 2021-05-26 22:09:05 +02:00
README.zh-CN.md readme: switch back to IRC web client 2021-05-26 22:09:05 +02:00
README.zh-TW.md readme: switch back to IRC web client 2021-05-26 22:09:05 +02:00
sway.desktop Update language in sway.desktop & sway(1) 2019-03-10 15:09:52 -04:00

sway

English - 日本語 - Français - Українська - Español - Polski - 中文-简体 - Deutsch - Nederlands - Русский - 中文-繁體 - Português - Dansk - 한국어 - Română - Magyar - 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.

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

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 *
  • pcre
  • 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, 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).