c3e9ee5e43
I've tried to make as few changes, as possible. Usually the reason for using qsort_r is, that you can pass an extra userdata pointer to the compare function. However, in sway list_sort wrapped qsort_r and always called a wrapper function for comparing, the wrapper function then had the real compare function as argument. The only thing, that the wrapper function does, is dereferencing the 'left' and 'right' function arguments before passing them to the real compare function. I have renamed list_sort to list_qsort to avoid confusion (so nobody tries to use list_qsort like list_sort) and removed the wrapper functionality. Now the dereferencing must be done in the compare function, that gets passed. Some compare functions were used in both list_sort and list_seq_find. To make the difference clear, I've added a '_qsort' suffix to the compare functions, that are intended to be used with the new list_qsort. (In other words: list_qsort is not compatible anymore with list_seq_find). - Changed and renamed function (it isn't used anywhere but in commands.c, and only for sorting): compare_set -> compare_set_qsort - New wrapper functions: sway_binding_cmp_qsort (for sway_binding_cmp) sway_mouse_binding_cmp_qsort (for sway_mouse_binding_cmp) |
||
---|---|---|
.ci | ||
CMake | ||
common | ||
include | ||
protocols | ||
sway | ||
swaybar | ||
swaybg | ||
swaygrab | ||
swaylock | ||
swaymsg | ||
wayland | ||
.gitignore | ||
.travis.yml | ||
CMakeLists.txt | ||
config | ||
CONTRIBUTING.md | ||
HACKING.md | ||
LICENSE | ||
README.md | ||
sway.desktop |
sway
"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 ..
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 located at /etc/sway/config
, unless the
DFALLBACK_CONFIG_DIR
flag has been set. 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.