Commit graph

801 commits

Author SHA1 Message Date
Daniel Eklöf
6bba9200cf particles: use calloc() instead of malloc()
In cases where it makes sense, use calloc() instead of malloc():

* When allocating large objects with many members, many for which
  NULL/0 is a good default value.
* Arrays etc where we explicitly initialize to NULL anyway.
2019-02-09 11:05:12 +01:00
Daniel Eklöf
29e9cea1dd decorations: use calloc() instead of malloc()
In cases where it makes sense, use calloc() instead of malloc():

* When allocating large objects with many members, many for which
  NULL/0 is a good default value.
* Arrays etc where we explicitly initialize to NULL anyway.
2019-02-09 10:58:26 +01:00
Daniel Eklöf
83591b9269 bar: use calloc() instead of malloc()
In cases where it makes sense, use calloc() instead of malloc():

* When allocating large objects with many members, many for which
  NULL/0 is a good default value.
* Arrays etc where we explicitly initialize to NULL anyway.
2019-02-09 10:55:42 +01:00
Daniel Eklöf
ad3a33cf3d bar/wayland: do *not* enable keyboard interactivity 2019-02-07 18:27:09 +01:00
Daniel Eklöf
8b527e3fe5 main: load config from config.yml, not config-wayland.yml 2019-02-07 13:48:41 +01:00
Daniel Eklöf
ac11638303 PKGBUILD: add new wayland dependencies 2019-02-07 13:00:52 +01:00
Daniel Eklöf
57cbde064c PKGCONFIG: add missing xcb-util-wm (for xcb-ewmh) dependency 2019-02-07 13:00:34 +01:00
Daniel Eklöf
3b1998a8e3 Merge branch 'wayland' 2019-02-07 12:49:45 +01:00
Daniel Eklöf
68727006f3 ci: checkout git submodules 2019-02-07 12:47:42 +01:00
Daniel Eklöf
f85117431a ci: install wayland-protocols 2019-02-07 12:45:37 +01:00
Daniel Eklöf
4b0c4c669c cmake: ensure the wayland-protocols package is available 2019-02-07 12:45:05 +01:00
Daniel Eklöf
a62c7e675c ci: *append* to repository list 2019-02-07 12:43:08 +01:00
Daniel Eklöf
4ee2afa48f ci: add x11-only, wayland-only and plugins-as-shared-libraries builds 2019-02-07 12:41:00 +01:00
Daniel Eklöf
da3185dc79 ci: re-enable wayland port 2019-02-07 12:40:51 +01:00
Daniel Eklöf
719d4b95d0 ci: wlroots is available in the "testing" repo (edge only) 2019-02-07 12:37:55 +01:00
Daniel Eklöf
7ff0f5a2f3 cmake: need CMake >= 3.13 since we use target_link_options() 2019-02-07 12:26:05 +01:00
Daniel Eklöf
5884300b5b cmake: use target_link_options() instead of setting CMAKE_EXE_LINKER_FLAGS 2019-02-07 12:25:01 +01:00
Daniel Eklöf
e4f3695f5e cmake: (maybe) build xcb-stuff STATIC library with -fPIC
When building plugins as shared libraries, xcb-stuff needs to be built
with -fPIC, since a couple of the plugins link against it.
2019-02-07 12:24:20 +01:00
Daniel Eklöf
d185f7237d bar: cmake: remove trailing whitespace 2019-02-07 12:09:38 +01:00
Daniel Eklöf
ccd5948585 bar: cmake: not necessary when building STATIC, but we do depend on threads 2019-02-07 12:07:53 +01:00
Daniel Eklöf
ae5029826b cmake: break out bar stuff to separate CMakeLists.txt 2019-02-07 12:06:16 +01:00
Daniel Eklöf
76655bc944 bar/wayland: much improved error handling
Most asserts() have now been replaced with error messages. Cleanup()
no longer tries to free/destroy NULL resources.
2019-02-07 11:51:42 +01:00
Daniel Eklöf
e48d90ae12 bar/xcb: cleanup: don't try to free NULL resources 2019-02-07 11:51:26 +01:00
Daniel Eklöf
f71aaf9615 bar: call backend->cleanup() when backend->setup() fails
This makes it easier to implement proper cleanup in the backends, as
setup() doesn't have to clean up it's own mess upon failure.
2019-02-07 11:50:52 +01:00
Daniel Eklöf
0fc5778107 bar/wayland: wl_* APIs typically don't handle destroy(NULL) 2019-02-07 11:22:02 +01:00
Daniel Eklöf
a831490462 modules: fix strncpy calls to ensure strings are NULL-terminated 2019-02-06 18:10:06 +01:00
Daniel Eklöf
0e3866186f plugin: for now, the defines *all* use the word PLUGIN 2019-02-06 18:09:48 +01:00
Daniel Eklöf
4a064ebfff bar/wayland: fix includes 2019-02-06 18:04:32 +01:00
Daniel Eklöf
dbce871d27 module/i3: dynamically grow receive buffer when needed 2019-02-06 16:30:46 +01:00
Daniel Eklöf
ed7b6e20d3 cmake: add function that generates custom commands for wayland protocols 2019-02-06 16:13:24 +01:00
Daniel Eklöf
9383142858 cmake: manually run pkg-config --variable=pkgdatadir wayland-protocols
To get the path to the wayland protocol definitions, manually run
pkg-config with --variable=pkgdatadir.

Then use this instead of a hardcoded path into
/usr/share/wayland-protocols when defining the custom commands to
generate .c/.h files from the protocol XML definitions.
2019-02-06 16:01:18 +01:00
Daniel Eklöf
da062f26d5 cmake: remove hardcoded, local, path 2019-02-06 15:41:21 +01:00
Daniel Eklöf
70499654a3 module/i3: delay bar refresh until all received events have been processed
This fixes an issue where switching between empty workspaces (or one
empty, one non-empty) momentarily flashed two workspaces.

I.e. we immediately rendered the new workspace, and then re-rendered
when the first workspace was destroyed.
2019-02-06 15:39:11 +01:00
Daniel Eklöf
6562cb61df cmake: don't try to link againt xcb-errors when we didn't find it 2019-02-03 20:09:02 +01:00
Daniel Eklöf
63618b8fab ci: no working wayland dev environment on CI
The docker image lacks wlroots.
2019-02-03 20:07:03 +01:00
Daniel Eklöf
727d7b343f cmake: initial support for building wayland-only, or x11-only 2019-02-03 20:05:44 +01:00
Daniel Eklöf
f3b225adf7 make: let pkg_check_module() create targets 2019-02-03 19:27:03 +01:00
Daniel Eklöf
578c76326d cmake: pull in wlr-layer-shell-unstable-v1 from wlroots git submodule 2019-02-03 19:12:58 +01:00
Daniel Eklöf
73c62e9797 bar/wayland: cleanup 2019-02-03 17:45:26 +01:00
Daniel Eklöf
38c87ad165 ci: nein 2019-02-03 17:35:29 +01:00
Daniel Eklöf
c7c378d844 ci: again 2019-02-03 17:34:15 +01:00
Daniel Eklöf
9ad7626b3f ci: how about now? 2019-02-03 17:32:24 +01:00
Daniel Eklöf
92d165e7e6 ci: switch to alpine:edge, which has wlroots 2019-02-03 17:29:41 +01:00
Daniel Eklöf
29b57bcc48 bar/wayland: call on_mouse() directly from listeners 2019-02-03 15:28:32 +01:00
Daniel Eklöf
85a1940e47 bar/wayland: free XDG outputs, and manager, in cleanup() 2019-02-03 15:16:19 +01:00
Daniel Eklöf
c6fd99f005 bar/wayland: track XDG outputs, as this gets us the monitor identifiers 2019-02-03 15:10:26 +01:00
Daniel Eklöf
c226f9f0c8 bar/wayland: initial support for multiple monitors
We don't actually support multiple monitors, but now we at least track
the available monitors.

This also adds support for the BAR_BOTTOM location.
2019-02-03 13:55:21 +01:00
Daniel Eklöf
47ac57dd03 bar/wayland: cursor support
This implements backend.set_cursor().
2019-02-03 13:13:10 +01:00
Daniel Eklöf
130043a259 bar/wayland: comment out most of the debug logging 2019-02-03 12:21:42 +01:00
Daniel Eklöf
8e769b491a module/i3: try SWAYSOCK before falling back to I3_SOCKET_PATH 2019-02-03 12:20:59 +01:00