Commit graph

166 commits

Author SHA1 Message Date
Simon Ser
7251df94c1 build: improve feature summary
Use the Meson summary() built-in instead of manually formatting a
message.

wlroots already depends on Meson 0.54.0.
2020-05-01 03:25:49 +02:00
Dominique Martinet
4e82d0fb15 build: make completions respect install prefixes
Tell pkgconfig about prefix and datadir as required in the .pc files, so
if the prefix isn't standard nothing is installed outside of it.

For fish, this requires https://github.com/fish-shell/fish-shell/pull/6778

Fixes swaywm/swaybg#13
2020-04-04 17:55:09 +02:00
Drew DeVault
ab77efc6ca
Update version to 1.4 2020-01-22 20:40:37 +01:00
Eli Schwartz
4a73f69d10 fish-completion: use the correct fallback directory
fish completions should never be installed to share/fish/completions/ as
that directory is reserved exclusively for completions shipped as part
of the fish source code.

Use the same vendor_completions.d/ directory which the default fish
configuration uses.
2020-01-22 18:05:29 +01:00
Eli Schwartz
03e8ce7b20 completion: use pkg-config to get install location for bash/fish
Both shells provide pkg-config files which declare their designated
completionsdir. Use this as the primary source of truth.
2020-01-22 18:05:29 +01:00
Eli Schwartz
fe558cf627 meson: use join_paths to build paths, instead of string concat
It makes sure to handle paths as paths, and is generally safer and the
blessed solution.
2020-01-22 18:05:29 +01:00
Drew DeVault
ed02261551 Update wlroots version 2019-12-31 11:18:58 -05:00
Drew DeVault
2a00bb0650 _incr_version: always overwrite old version number 2019-12-31 10:31:40 -05:00
Ronan Pigott
6968fb3123 add scale_filter output config option 2019-11-29 18:13:37 +01:00
Simon Ser
cb905effde Add -Wno-missing-braces
-Wmissing-braces makes it annoying to zero-initialize structs with = {0}
when the first field is a struct. See for instance [1].

[1]: https://builds.sr.ht/~sircmpwn/job/110425
2019-11-17 17:21:13 +01:00
Simon Ser
72ba9bef4b build: always use the project version
Don't use the latest tag, always use the project version for the version
string. Because of version branches, getting the version from Git can be
unreliable.

Closes: https://github.com/swaywm/sway/issues/4631
2019-10-16 09:42:28 -04:00
Drew DeVault
533acbe679
Update version to 1.2 2019-10-12 22:58:05 +03:00
Simon Ser
b4d785cf39 build: bump wlroots version to 0.8.1 2019-10-08 12:42:40 -04:00
Tadeo Kondrak
352a3e1f79 build: remove rootston from wlroots subproject
Fixes an invalid option warning from Meson.
2019-10-02 20:40:03 -04:00
Simon Ser
08b3eaf930 build: update wlroots version, be more strict
wlroots versions are incompatible with each other. Often our users struggle
with figuring out that their wlroots version is too old after a new release.
Use a more strict version check to prevent building sway with incompatible
wlroots versions.
2019-09-23 11:27:11 -04:00
Simon Ser
f984f21b6a Remove all wayland-server.h includes
The documentation for wayland-server.h says:

> Use of this header file is discouraged. Prefer including
> wayland-server-core.h instead, which does not include the server protocol
> header and as such only defines the library PI, excluding the deprecated API
> below.

Replacing wayland-server.h with wayland-server-core.h allows us to drop the
WL_HIDE_DEPRECATED declaration.

This commit si similar to wlroots' ca45f4490ccc ("Remove all wayland-server.h
includes").
2019-07-27 17:16:56 -04:00
Manuel Stoeckl
2dc4978d8a Use -fmacro-prefix-map to strip build path
Because meson does not provide a simple way to get the relative build
path, it is computed with a pair of foreach loops. As meson does not
have a simple way to compute string length (except via underscorify
and 63 split operations), the build script uses a shell command
instead.

If the compiler does not suppot -fmacro-prefix-map, then fall back
to passing in the relative path prefix, and use its length to offset
the uses of __FILE__ in log messages so that the build path is at
least still not included in the logs. This is significantly more
efficient than calling _sway_strip_path.
2019-07-15 16:35:50 -04:00
Drew DeVault
6b6eb147ec Bump meson version to 1.1 2019-06-03 08:50:12 -04:00
Brian Ashworth
c3532bc8a1 Add swaybar protocol documentation
This adds swaybar-protocol.7.scd documenting the swaybar status line
protocol including some differences from the i3bar counterpart.
2019-05-30 10:54:23 -04:00
Drew DeVault
464a3b4fdd Bump required wlroots version 2019-05-03 13:10:53 -04:00
Drew DeVault
236ca63419 swaybg: split into standalone project
The new upstream is https://github.com/swaywm/swaybg

This commit also refactors our use of gdk-pixbuf a bit, since the only
remaining reverse dependency is swaybar tray support.
2019-04-25 18:44:28 +03:00
bschacht
8adb70f9c5 Set the correct version for wlroots dependency 2019-04-25 09:31:38 +03:00
Simon Ser
e7d6b8ec3e swaybg: add manpage 2019-04-13 10:26:17 -04:00
emersion
a418349c18 meson: use pkg-config var for scdoc path 2019-03-10 18:18:08 -04:00
Brian Ashworth
3f184cf188 meson: update scdoc requirement to >= 1.9.2
Since scdoc 1.9.1 is bugged, this updates the meson version check to
>= 1.9.2 and drops the version requirement from the README. This should
make it more obvious to users who have 1.9.1 that they need to update
scdoc to be able to compile man pages and hopefully cut down on the
duplicate issues
2019-03-04 08:44:17 -07:00
emersion
f98410c090 meson: check scdoc version 2019-03-01 10:25:47 -05:00
Drew DeVault
9f58b27d86
Merge pull request #3766 from RedSoxFan/sway-ipc-scdoc
Add sway-ipc.7.scd to document IPC protocol
2019-02-27 16:01:55 -05:00
Drew DeVault
51d27d1549
Merge pull request #3786 from emersion/wlroots-version
Set minimum wlroots version
2019-02-27 16:01:27 -05:00
emersion
6658d69271
Print Meson features 2019-02-27 21:26:50 +01:00
emersion
8228fa60d4
Set minimum wlroots version 2019-02-27 21:13:16 +01:00
Brian Ashworth
f876009c7f Add sway-ipc.7.scd to document IPC protocol
This add `sway-ipc.7.scd` that documents the IPC protocol.

This also increased the minimum scdoc version from 1.8.1 to 1.9.0 to
allow for table cells to be continued on the following line
2019-02-27 13:23:10 -05:00
emersion
806129d3cc
Fix Meson subproject boolean default options 2019-02-17 00:50:53 +01:00
emersion
859a884e82
Disable unneeded wlroots subproject features 2019-02-16 11:57:41 +01:00
emersion
cfee167b7b
Fix --version when building from tarball 2019-02-12 23:13:24 +01:00
Michael Vetter
77587ee632 Set version in project file
Let's set the version in the meson file instead of declaring it outside.

In case git is installed we use the git hash as version. Instead it
isn't (like on a clean build system), let's use the version defined in
the project.
2019-02-05 14:32:05 +01:00
Drew DeVault
1fb6918f9e
Merge pull request #3482 from emersion/meson-systemd-version
meson: set minimum systemd version
2019-01-21 09:25:11 -05:00
M Stoeckl
1211a81aad Replace wlr_log with sway_log
This commit mostly duplicates the wlr_log functions, although
with a sway_* prefix. (This is very similar to PR #2009.)
However, the logging function no longer needs to be replaceable,
so sway_log_init's second argument is used to set the exit
callback for sway_abort.

wlr_log_init is still invoked in sway/main.c

This commit makes it easier to remove the wlroots dependency for
the helper programs swaymsg, swaybg, swaybar, and swaynag.
2019-01-21 12:59:42 +01:00
emersion
51e4b94270
meson: set minimum systemd version
sd_bus_slot_set_floating has been introduced in systemd 239.
2019-01-21 12:56:32 +01:00
emersion
35d73345d9
meson: make sure wlroots has been built with xwayland 2019-01-18 23:47:46 +01:00
emersion
765d7bc94f
meson: remove extraneous parentheses 2019-01-18 08:44:02 +01:00
emersion
bb2f007ad3
meson: remove rpath options 2019-01-18 08:26:44 +01:00
emersion
ab35e0383f
meson: remove unused dependencies 2019-01-18 08:22:59 +01:00
emersion
ba16f16e4d
meson: add gdk-pixbuf and man-pages options 2019-01-18 08:21:43 +01:00
emersion
08a5b304e4
Use Meson feature options 2019-01-17 18:26:24 +01:00
Connor E
aa9d7d8ca1 Remove usage of VLAs. 2019-01-16 13:02:26 +01:00
Drew DeVault
3fca8b8d22 Split swaylock into separate project 2019-01-13 21:40:26 -05:00
Drew DeVault
bc808680b1 Split swayidle from sway 2019-01-12 11:24:06 -05:00
Gaël PORTAY
3b4cf3718b bash: add completion for swaybar 2018-12-31 22:35:57 -05:00
Ian Fan
5f65f33989 swaybar: add tray interface 2018-12-31 20:40:18 +00:00
Brian Ashworth
a223030b70 Change mouse buttons to x11 map and libevdev names
This modifies the way mouse bindings are parsed. Instead of adding to
BTN_LEFT, which results in button numbers that may not be expected,
buttons will be parsed in one of the following ways:

1. `button[1-9]` will now map to their x11 equivalents. This is already
the case for bar bindings. This adds support for binding to axis events,
which was not possible in the previous approach.

2. Anything that starts with `BTN_` will be parsed as an event code name
using `libevdev_event_code_from_name`. This allows for any button to be
mapped to instead of limiting usage to the ones near BTN_LEFT. This also
adds a dependency on libevdev, but since libevdev is already a dependency
of libinput, this should be fine. If needed, this option can have dependency
guards added.

Binding changes:
- button1: BTN_LEFT -> BTN_LEFT
- button2: BTN_RIGHT -> BTN_MIDDLE
- button3: BTN_MIDDLE -> BTN_RIGHT
- button4: BTN_SIDE -> SWAY_SCROLL_UP
- button5: BTN_EXTRA -> SWAY_SCROLL_DOWN
- button6: BTN_FORWARD -> SWAY_SCROLL_LEFT
- button7: BTN_BACK -> SWAY_SCROLL_RIGHT
- button8: BTN_TASK -> BTN_SIDE
- button9: BTN_JOYSTICK -> BTN_EXTRA

Since the axis events need to be mapped to an event code, this uses the
following mappings to avoid any conflicts:
- SWAY_SCROLL_UP: KEY_MAX + 1
- SWAY_SCROLL_DOWN: KEY_MAX + 2
- SWAY_SCROLL_LEFT: KEY_MAX + 3
- SWAY_SCROLL_RIGHT: KEY_MAX + 4
2018-12-25 13:27:08 +01:00
Ian Fan
49502494e7 meson.build: remove obsolete definition of swayidle_deps 2018-12-01 13:55:19 +00:00
progandy
c4bbd0d3c6 Meson: Fix SYSCONFDIR definition.
SYSCONFDIR was set to the wrong path if prefix is not '/usr' and
sysconfdir is an absolute path. Use join_paths() to fix it.

Also remove the special case for prefix '/usr'. In that case Meson
already sets sysconfdir to the absolute path '/etc', so just using
join_paths() will return the correct value.

    join_paths('/usr/local', 'etc') => '/usr/local/etc'
    join_paths('/usr/local', '/etc') => '/etc'
    join_paths('/usr', '/etc') => '/etc'
2018-11-23 23:30:46 +01:00
emersion
cad851805b
Use #if instead of #ifdef 2018-11-18 00:33:06 +01:00
emersion
2afd930914
Use #if instead of #ifdef for WLR_HAS_* 2018-11-12 22:23:06 +01:00
madblobfish
31d1ffb88f added fish completions for swaynag 2018-10-27 16:54:32 +02:00
madblobfish
834f23f57a added fish completions for swayidle 2018-10-27 16:54:20 +02:00
sghctoma
af2cfa5221 Set sysconfdir to /etc only if prefix is /usr
PR #2855 basically hardcodes the config file path to /etc, which is a
problem on e.g. FreeBSD, where the expected path for config files of
non-base software is '/usr/local/etc'.
Meson sets sysconfdir to '/etc' explicitly only when prefix is '/usr',
so it is still possible to use '/usr/local' as prefix, and install the
config files under '/usr/local/etc'. This commit allows to do that by
setting sysconfdir based on the value of prefix.
2018-10-17 15:28:18 +02:00
Niccolò Scatena
027928bdeb
Set SYSCONFDIR to /etc even when "prefix" is set
SYSCONFDIR should be "/etc" even when prefix="/usr" to be FHS compliant.
This is the default in meson from v0.44.
2018-10-16 19:44:45 +02:00
Niccolò Scatena
615d4bf958
Revert "Fix SYSCONFDIR to include "prefix""
This reverts commit 6942f5b684.
SYSCONFDIR should be "/etc" even when prefix="/usr" to be FHS compliant.
This is the default in meson from v0.44.
2018-10-16 19:35:06 +02:00
Drew DeVault
b69060fc58 Establish sway-output(5) 2018-10-14 10:52:57 -04:00
Drew DeVault
c89e00a97e Fix swaylock w/shadow on glibc, improve security
Today I learned that GNU flaunts the POSIX standard in yet another
creative way. Additionally, this adds some security improvements,
namely:

- Zeroing out password buffers in the privileged child process
- setuid/setgid after reading /etc/shadow
2018-10-06 12:20:12 -04:00
Arkadiusz Hiler
eed0bc3ebd Add support for installing binaries with DT_RPATH
It's better to use DT_RPATH dynamic section of the elf binary to store
the paths of libraries to load instead of overwriting LD_LIBRARY_PATH
for the whole environment, causing surprises. This solution is much more
transparent and perfectly suitable for running contained installations
of wayland/wlroots/sway.

The code unsetting the LD_LIBRARY_PATH/LD_PRELOAD was also deleted as
it's a placebo security at best - we should trust the execution path
that leads us to running sway, and it's way too late to care about those
variables since we already started executing our compositor, thus we
would be compromised anyway.
2018-09-30 15:37:01 +03:00
Arkadiusz Hiler
00dfb76832 Remove libcap/prctl artifacts
They seem like relics of the pasts, from when we were retaining the
ptrace cap.

Some translations still may need updates.
2018-09-30 13:39:26 +03:00
Drew DeVault
c977349120 Add support for building swaylock without PAM
This involves setuid'ing swaylock, which then forks and drops perms on
the parent process. The child process remains root and listens on a pipe
for requests to validate passwords against /etc/shadow.
2018-09-28 13:53:01 +02:00
sghctoma
3e924f2345 Add _C11_SOURCE feature test macro on FreeBSD
This will restrict the default namespace set on FreeBSD to the C11
standard (everything is visible by default), which will prevent possible
conflicts with symbols hidden behing __BSD_VISIBLE.
2018-09-26 20:05:45 +02:00
Drew DeVault
a8a0014e0f Make libpam optional 2018-09-26 17:32:15 +02:00
sghctoma
df730a8891 Merge remote-tracking branch 'upstream/master' into fix-freebsd-build 2018-09-03 08:57:17 +02:00
Ryan Dwyer
4ece26e511 Add ld-library-path meson option 2018-09-02 23:07:47 +10:00
Ryan Dwyer
7795f733d8 Use dashes in meson option names 2018-09-02 22:58:15 +10:00
sghctoma
6942f5b684 Fix SYSCONFDIR to include "prefix"
SYSCONFDIR is used to determine the path of the default configuration
file. 'sysconfdir' is set to 'prefix/sysconfdir' later (on line 139),
so configuration files are installed under 'prefix', but SYSCONFDIR did
not reflect it.
2018-08-30 09:44:24 +02:00
sghctoma
462e15d9a5 Make libcap an optional dependency
FreeBSD does not have libcap, so without "required: false" Sway fails
to build.
2018-08-30 09:40:35 +02:00
Scott Anderson
ff86dc0c35 Hide deprecated wayland functions 2018-08-27 18:01:00 +12:00
Martin Kalchev
f3c18336d2 added fish to meson.build 2018-08-26 19:27:18 +03:00
Ryan Dwyer
706c0fbe23
Merge branch 'master' into nagbar 2018-08-02 23:05:49 +10:00
Michel Ganguin
d6095588a1 Link xcb dependency to meson options "enable_xwayland" (#2393)
* Link xcb dependency to meson options "enable_xwayland"

* Link xcb dependency to meson options "enable_xwayland"
2018-08-02 08:36:47 +01:00
Brian Ashworth
8463a2896a swaynag: implement config file support 2018-08-01 22:47:54 -04:00
Brian Ashworth
a4f7bf23b2 Address first round review for swaynag 2018-08-01 22:47:54 -04:00
Brian Ashworth
88bc4b528e Implements swaynagbar 2018-08-01 22:47:54 -04:00
Drew DeVault
878d1ddd07
Merge pull request #2387 from 1ace/feature/bash-completion
bash completion
2018-07-30 13:11:20 -04:00
Eric Engestrom
52a27f1529 delete references to swaygrab 2018-07-30 16:24:46 +01:00
Eric Engestrom
b9d531b318 meson: install bash completion 2018-07-30 15:56:50 +01:00
Drew DeVault
8dacd0639c Enable unstable wlroots features 2018-07-29 19:33:54 -04:00
Pascal Pascher
2bf893248a style fixes, exclude sway/desctop/xwayland.c when enable_xwayland: false 2018-07-24 23:37:41 +02:00
Pascal Pascher
24ad1c3983 Added meson option "enable_xwayland" (default: true) to enable/disable xwayland support 2018-07-24 22:16:06 +02:00
emersion
cda66e9a26
Automatically float xwayland windows 2018-06-18 22:52:10 +01:00
Ryan Dwyer
9d99e5c2e7 Swaylock: Allow per-output images 2018-05-20 22:54:09 +10:00
Mattias Eriksson
8fbafbfab5 Idle handling for dpms/lockscreen et al
Swayidle handles idle events and allows
for dpms and lockscreen handling. It also
handles systemd sleep events, and can
raise a lockscreen on sleep

Fixes #541
2018-05-13 00:30:09 +02:00
Drew DeVault
22f52b91ed Add swaylock(1) and swaymsg(1) 2018-05-11 21:39:47 -04:00
Drew DeVault
d9a08b7a9d Add sway-input(5) 2018-05-11 21:25:05 -04:00
Drew DeVault
1813482266 Add sway-bar(5) 2018-05-11 21:13:43 -04:00
Drew DeVault
432256ad84 Add sway(5) 2018-05-11 21:03:43 -04:00
Drew DeVault
c2a7d367af Wire up scdoc and rewrite sway(1) 2018-05-11 20:58:38 -04:00
Yorick van Pelt
f31b2e1b33
meson.build: Look for '-lpam', not '-llibpam'.
See #1920 for more information.
2018-05-06 14:10:09 +02:00
Bruno Pinto
b24b319bdf
Improve dependency checks 2018-04-08 00:34:12 +01:00
Drew DeVault
842a3ea45c Add -Wno-unused-result
Fixes #1744
2018-04-05 15:23:59 -04:00
Drew DeVault
b32bf595ae Initial swaylock port 2018-04-04 18:47:48 -04:00
Drew DeVault
8d1425bde9 Initialize seat pointer in swaybar 2018-03-30 22:44:08 -04:00
Drew DeVault
cab1352801 Start port of swaybar to layer shell
This starts up the event loop and wayland display and shims out the
basic top level rendering concepts. Also includes some changes to
incorporate pango into the 1.x codebase properly.
2018-03-29 22:11:08 -04:00
Drew DeVault
d39bda76c4 Address review comments 2018-03-28 14:43:23 -04:00
Drew DeVault
632bb948b7 Add solid-color rendering to swaybg 2018-03-28 14:25:19 -04:00