Commit graph

164 commits

Author SHA1 Message Date
Daniel Eklöf
e980a74a10
bar/wayland: spell 'disconnected' correctly 2019-06-07 14:08:14 +02:00
Daniel Eklöf
450caba415
meson: generators() are sub-optimal. Replace with custom targets 2019-06-05 21:10:10 +02:00
Daniel Eklöf
58a6dc52fc
bar: fix border offset, for real hopefully 2019-06-01 17:16:19 +02:00
Daniel Eklöf
64eab86932
Revert "bar: fix border offset"
This reverts commit c2ca68b7bd.
2019-06-01 17:05:11 +02:00
Daniel Eklöf
c2ca68b7bd
bar: fix border offset 2019-06-01 16:16:13 +02:00
Daniel Eklöf
0e4fbb602c bar/wayland: read cursor theme/size from XCURSOR_* environment variables 2019-05-21 21:43:12 +02:00
Daniel Eklöf
3adbf70a49 bar/wayland: scale mouse cursor's hotspot coordinate 2019-05-15 19:04:10 +02:00
Daniel Eklöf
d172cc1cd5 bar/wayland: scale cursor surface
Fixes low-res mouse cursor on HiDPI outputs.
2019-05-15 18:57:11 +02:00
Daniel Eklöf
473802cab8 bar: allow explicit backend selection 2019-05-11 10:43:14 +02:00
Daniel Eklöf
cb0bc20b38 bar: destroy modules in destroy(), not at the end of run()
This ensures we properly destroy everything when a bar has been
instantiated, but not run().
2019-05-09 19:14:29 +02:00
Daniel Eklöf
c1d32af58e meson: use a local copy of wlr-layer-shell-unstable-v1.xml
When downloading a copy of the f00bar repository (for example, a
released version), submodules are not included.

Thus, to enable building from such source trees, use a local copy
instead.

Note: we still keep the submodule, for easy updating.
2019-05-07 20:42:19 +02:00
Daniel Eklöf
a7e32f6a07 meson: bar: prefer single, long line 2019-05-06 21:58:45 +02:00
Daniel Eklöf
121b2f1575 meson: enable_x11 -> backend_x11, enable_wayland -> backend_wayland 2019-05-06 21:45:01 +02:00
Daniel Eklöf
ea9aea8daf cmake: remove build files (replaced with meson) 2019-05-04 11:48:20 +02:00
Daniel Eklöf
2450cbe7a6 bar: xcb: check return values of ftruncate(), read() and write()
Fixes building with -D_FORTIFY_SOURCE=2
2019-05-04 11:28:17 +02:00
Daniel Eklöf
b41255dbcc bar: wayland: check return values of ftruncate(), read() and write()
Fixes building with -D_FORTIFY_SOURCE=2
2019-05-04 11:27:51 +02:00
Daniel Eklöf
aaa5239b07 meson: install header files 2019-05-03 22:43:41 +02:00
Daniel Eklöf
51e9d691e4 meson: initial build conf
Not that well tested yet, does not support plugins-as-modules
2019-05-01 12:39:59 +02:00
Daniel Eklöf
879d5cefb1 wayland: HiDPI: initial support for HiDPI displays
We do it differently from everybody else...

A traditional HiDPI implementation typically scales up
everything. I.e. if the user wants a 1px border, it's scaled up to
2px. The wayland server typically presents an output width/height that
has been scaled *down*.

This is all a bit backwards, but perhaps was the best choice to make
legacy applications at least work.

f00bar on the other hand, wants to give the user absolute
control. Thus, we don't scale up at all. If the user wants a 25px bar
height, that's what he gets.

This does mean however, that we need to scale *down* the surface size
since it's in logical pixels, not physical.

So we scale *down* the surface size (which then gets scaled back up by
the wayland server), and then render everything *on* that surface
without any scaling.
2019-04-15 11:08:38 +02:00
Daniel Eklöf
0aee7befd8 bar/wayland: better name for SHM backing memfd 2019-03-30 22:24:13 +01:00
Daniel Eklöf
fa586b9ac1 wayland: depend on xdg-output for output size/positioning information 2019-03-14 19:41:06 +01:00
Daniel Eklöf
6030ef5298 bar/wayland: use cairo_format_stride_for_width() to calculate stride 2019-03-03 12:56:13 +01:00
Daniel Eklöf
35e9d0e25c bar: need to double border size (why?) 2019-02-28 20:09:50 +01:00
Daniel Eklöf
fe709bd82b Revert "bar/wayland: drop wl_seat interface version requirement to 1"
This reverts commit a1bcf07599.
2019-02-18 21:43:44 +01:00
Daniel Eklöf
28d39f3aec bar/xcb: ignore non-zero border margins 2019-02-17 19:45:26 +01:00
Daniel Eklöf
0ab772f869 bar: move x,y coordinates to xcb backend 2019-02-17 19:40:20 +01:00
Daniel Eklöf
3d8cb7f17e bar/wayland: implement border margins 2019-02-17 15:47:44 +01:00
Daniel Eklöf
50d6afab6a bar: add margin properties to the border 2019-02-17 15:45:02 +01:00
Daniel Eklöf
12ef2569a4 bar/wayland: log *something* when a global is removed 2019-02-17 12:38:52 +01:00
Daniel Eklöf
a1bcf07599 bar/wayland: drop wl_seat interface version requirement to 1
This allows us to drop the empty 'name' handler.
2019-02-17 12:38:52 +01:00
Daniel Eklöf
4d9ee6ff82 cmake: use find_program() to locate wayland-scanner binary 2019-02-13 21:45:31 +01:00
Daniel Eklöf
21b2e249bc cmake: install header files 2019-02-12 22:12:57 +01:00
Daniel Eklöf
1e466a24ba Pull in wlr-protocols instead of wlroots
We're not interested in anything in wlroots, except the wlr protocols.
2019-02-12 20:00:35 +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
4b0c4c669c cmake: ensure the wayland-protocols package is available 2019-02-07 12:45:05 +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
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
4a064ebfff bar/wayland: fix includes 2019-02-06 18:04:32 +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
73c62e9797 bar/wayland: cleanup 2019-02-03 17:45:26 +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