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
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
ed8e17c6c9
wayland: mucho wip: initial sort-of-working wayland backend
...
Bar is drawn, though only TOP is supported atm. No
screen/display/output selection is possible yet. Mouse *click* works,
but not setting the cursor.
Lots of debug output, crappy code yada yada.
2019-02-03 11:08:53 +01:00
Daniel Eklöf
deb9105d3e
main: move xcb_init() call to bar's XCB backend
2019-01-29 21:37:38 +01:00
Daniel Eklöf
404a7a7dcd
bar: xcb: remove unneeded braces
2019-01-29 21:05:51 +01:00
Daniel Eklöf
7f1567c973
bar: do generic cursor stuff in bar, not in backend
2019-01-29 21:05:28 +01:00
Daniel Eklöf
0684aaaf95
bar: xcb: cleanup
2019-01-29 21:03:13 +01:00
Daniel Eklöf
4954479e11
bar: generic setup shouldn't be done by a backend
2019-01-29 21:02:10 +01:00
Daniel Eklöf
c2e7b1c507
bar: remove more includes that aren't needed anymore
2019-01-29 21:01:16 +01:00
Daniel Eklöf
36201e251e
bar: no xcb stuff needed directly by bar anymore
2019-01-29 21:00:27 +01:00
Daniel Eklöf
88daaf0ab7
bar: wip: define a 'backend' interface
...
Implement the current XCB backend in terms of this new interface.
2019-01-29 20:59:25 +01:00
Daniel Eklöf
2d104e4a7d
bar: break out 'private' struct definition to a header file
2019-01-29 20:20:11 +01:00
Daniel Eklöf
aa21991323
bar: move C file to subdirectory
2019-01-29 20:18:37 +01:00