i3-compatible Wayland compositor
Find a file
Drew DeVault 802233f3d0 Support for swaybg as a shell surface
This is a lot of work for a small payoff - the mouse cursor is now
correctly rendered over the background.

Containers can now specify a custom arrange function which will be
called during arrange_windows instead of the usual path for that
container type. For backgrounds, the function sends it to the back and
sets its geometry to the size of the screen.

This requires some changes I'm not too happy with in arrange_windows
with respect to how containers figure out the arrangemnet of their
children (special cases are undesirable).

Also, if anyone runs a debug build as their actual WM, you should know
that I've made it so swaybg is invoked as `./bin/swaybg` in debug builds
now.

This PR also includes a bunch of unrelated refactoring. This is a pretty
significant change and I can only test it under the x backend, so I'd
appreciate it if you kind folks would review+test it yourselves and
leave some 👍 if you like it.
2016-01-17 12:58:03 -05:00
.ci make install wlc as part of the build 2015-09-04 21:08:44 +02:00
CMake make gdk-pixbuf dependency really optional 2015-12-20 17:37:52 +01:00
common Add function for getting list of modifier names. 2016-01-08 03:03:40 +01:00
include Support for swaybg as a shell surface 2016-01-17 12:58:03 -05:00
protocols remove archive from git, add *.a to gitignore 2015-12-03 15:52:21 +02:00
sway Support for swaybg as a shell surface 2016-01-17 12:58:03 -05:00
swaybar Fix whitespace issues. 2016-01-05 23:42:40 +01:00
swaybg Support for swaybg as a shell surface 2016-01-17 12:58:03 -05:00
swaygrab Fix whitespace issues. 2016-01-05 23:42:40 +01:00
swaylock Fix whitespace issues. 2016-01-05 23:42:40 +01:00
swaymsg Merge pull request #292 from christophgysin/man 2015-12-05 18:16:45 -05:00
wayland Support for swaybg as a shell surface 2016-01-17 12:58:03 -05:00
.gitignore remove archive from git, add *.a to gitignore 2015-12-03 15:52:21 +02:00
.travis.yml Add clang build to travis 2015-12-23 22:23:27 +01:00
CMakeLists.txt Make enable-binding-event option have an affect. 2016-01-09 20:25:45 +01:00
config Add bar to default config 2015-12-28 21:39:16 -05:00
CONTRIBUTING.md Style fixes in swaybg 2015-11-27 16:16:54 -05:00
HACKING.md HACKING.md: Add code overview section. 2015-11-15 22:55:02 +01:00
LICENSE MIT license 2015-08-04 21:31:07 -04:00
README.md Update README 2015-12-27 11:09:28 -05:00
sway.desktop Add Wayland and Xorg session files 2015-08-20 23:12:34 +02:00
wallpaper.jpg Add default wallpaper 2015-12-28 21:32:22 -05:00

sway Donate with fosspay

"SirCmpwn's Wayland window manager" is a work in progress i3-compatible window manager for Wayland. Read the FAQ. Join the IRC channel (#sway on irc.freenode.net).

Rationale

I use i3 on xorg. Wayland is coming, and i3way still has zero lines of source code after two years.

Status

Installation

From Packages

sway is not supported by many distributions yet. Here's a list of packages available for you to install:

For other distros, see this wiki page.

Compiling from Source

Install dependencies:

  • cmake
  • wlc
  • wayland
  • xwayland
  • asciidoc
  • pcre
  • json-c
  • pango *
  • cairo *
  • gdk-pixbuf2 *
  • pam **

*Only required for swaybar, swaybg, and swaylock

**Only required for swaylock

Run these commands:

mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_SYSCONFDIR=/etc ..
make
sudo make install

On systems without logind, you need to suid the sway binary:

sudo chmod a+s /usr/local/bin/sway

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

Instead of running startx, run sway. You can run sway from within X as well, which is useful for testing.