Commit graph

930 commits

Author SHA1 Message Date
Daniel Eklöf
bff097c3e8
Merge branch 'font-fallback' 2019-09-22 12:30:36 +02:00
Daniel Eklöf
e169263851
ci: install pixman+freetype+fontconfig instead of cairo 2019-09-22 12:29:00 +02:00
Daniel Eklöf
e8a1efeeb5
meson: add freetype dependency to decorations and modules
Fixes build failures when building plugins as shared libraries
2019-09-22 12:25:11 +02:00
Daniel Eklöf
f29f96be96
bar/wayland: use preferred monitor if user didn't specify one 2019-09-22 12:08:08 +02:00
Daniel Eklöf
18e9d67d77
bar/wayland: fail when we can't find the specified monitor 2019-09-22 11:59:48 +02:00
Daniel Eklöf
5d6df44a79
bar: signal abort (to main loop) when backend fails 2019-09-22 11:59:34 +02:00
Daniel Eklöf
4ce314e328
cairo: drop all remaining references to cairo
We now use pixman (and freetype + fontconfig) exclusively.
2019-09-22 11:52:37 +02:00
Daniel Eklöf
01e71590e0
bar: don't use cairo
This is trivial in the Wayland backend; just instantiate a pixman
pointing to the same mmapped memory as the wayland buffer.

In the XCB backend, we change the implementation slightly; instead of
rendering via a cairo XCB surface backend (to a server side pixmap),
which is then blitted to the window in commit(), we now render to a
client-side pixman pixmap, and blit it using xcb_put_image() in
commit().
2019-09-22 11:46:46 +02:00
Daniel Eklöf
c11fee4ce3
cairo: replace cairo with pixman in decos, particles and modules
All decoration, particle and module interfaces now takes a
pixman_image_t parameter, and all drawing is done using pixman APIs.

The wayland/xcb backends implement a new interface functions,
get_pixman_image(), that should return a pixman image instance that is
suitable for rendering.

In the wayland backend, the image uses the same backing data as the
cairo surface.

In the XCB backend, we create a new image each time, and then blit it
to the cairo surface at commit time.
2019-09-22 01:56:58 +02:00
Daniel Eklöf
95385863ae
particle: remove cairo context from begin_expose() 2019-09-22 00:55:06 +02:00
Daniel Eklöf
54797ffbd8
font: remove lock (all rendering happens in the main thread) 2019-09-22 00:51:02 +02:00
Daniel Eklöf
b3a5e0b5d7
font: initial port from cairo scaled fonts to raw freetype + pixman 2019-09-22 00:50:11 +02:00
Daniel Eklöf
393e1909b7
module/i3: plug valgrind detected memory leak
Free previous 'application' string before replacing it with a new one.
2019-09-22 00:44:51 +02:00
Daniel Eklöf
12feaf1ccd
ci: has alpine:edge finally moved to python3? 2019-09-21 20:57:21 +02:00
Daniel Eklöf
7ed35052bb
README: remove badges (added directly to gitlab project instead) 2019-09-21 20:51:10 +02:00
Daniel Eklöf
4a50c54a41
wlr-protocols: bump 2019-08-29 19:37:49 +02:00
Daniel Eklöf
f4f44d88fe
modules/sway-xkb: never *update* state without locking it 2019-08-15 19:12:08 +02:00
Daniel Eklöf
9aefa8df14
modules/sway-xkb: pull in string.h, for strdup() and strcmp() 2019-08-14 22:06:46 +02:00
Daniel Eklöf
bb72111d6c
doc/f00bar-modules: document sway-xkb 2019-08-14 22:04:10 +02:00
Daniel Eklöf
d576802e49
modules/sway-xkb: new module, uses sway 'input' events to expose kbd layout
We subscribe to Sway's 'input' events, and use these to expose input
devices' active XKB layout.

The module is configured by specifying a list of 'identifiers'; these
are the input devices (keyboards, typically), that we'll be
monitoring. All other input devices are ignored.

'content' is a template, and the module will instantiate a dynlist
with a 'content' for each *existing* input found in the 'identifiers'
list.

We also monitor for device 'added' and 'removed' events, and update
our internal list of existing inputs.

This means the user can configure a set of identifiers, and only those
that are actually present will be displayed. If a device that is
listed in the 'identifiers' list is added, it will be displayed. If it
is removed, it will no longer be displayed.
2019-08-14 21:51:43 +02:00
Daniel Eklöf
1534e00236
module/mpd: don't try to strdup() NULL strings 2019-07-08 15:06:24 +02:00
Daniel Eklöf
9b5dca52e2
bar/wayland: scale mouse position on mouse entry 2019-07-05 10:27:33 +02:00
Daniel Eklöf
8567257a88
meson: no space before ':' 2019-06-07 22:42:21 +02:00
Daniel Eklöf
f95b76c6b5
ci: add release, x11/wayland-only and shared-plugins builds 2019-06-07 19:31:30 +02:00
Daniel Eklöf
826edccd99
README: add sourcehut badge 2019-06-07 19:25:31 +02:00
Daniel Eklöf
4990c5208c
ci: working build.yml script (debug builds only for now) 2019-06-07 19:25:04 +02:00
Daniel Eklöf
ed71b70e70
ci: spell mpd correctly 2019-06-07 19:10:01 +02:00
Daniel Eklöf
db63824ecf
ci: initial build.yml for builds.sr.ht 2019-06-07 19:08:08 +02:00
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
b9fa2b17a3 completions: zsh: teach it possible values for -b,--backend and -c,--config 2019-05-29 20:39:23 +02:00
Daniel Eklöf
6513652711 completions: add zsh completions 2019-05-29 20:39:23 +02:00
Daniel Eklöf
74fca1efef doc: f00bar now have more options than -v 2019-05-29 20:39:23 +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
3da2ff20b1 test: full-conf: add instances of all particles and decorations 2019-05-12 11:05:15 +02:00
Daniel Eklöf
c4337f7d2a meson: set is_debug_build at beginning of script 2019-05-12 10:49:22 +02:00
Daniel Eklöf
d52b490e9d ci: only last to rows are needed for the coverage regexp 2019-05-11 11:39:44 +02:00
Daniel Eklöf
86cc7fd6a8 test: full-conf: disable xkb/xwindow modules
They aren't available in wayland-only builds
2019-05-11 11:38:36 +02:00
Daniel Eklöf
e218e68385 ci: install some fonts (required by tests) 2019-05-11 11:36:32 +02:00
Daniel Eklöf
4876020e6d meson: define _DEBUG in debug builds 2019-05-11 11:27:57 +02:00
Daniel Eklöf
07293111fd PKGBUILD: build release, not minsize. Enable LTO 2019-05-11 11:27:38 +02:00
Daniel Eklöf
d860204cd3 meson: set b_ndebug=if-release 2019-05-11 11:27:20 +02:00
Daniel Eklöf
244eb55431 test: wip: good path try-to-exercise-as-much-as-possible test case
This is a configuration that is expected to validate, and to exercise
as much as possible of the code up until validation has
completed. That is, as much as possible of the configuration
validation code.

It currently instantiates all modules, but not yet all particles and
decorations.
2019-05-11 11:07:51 +02:00
Daniel Eklöf
217e0d2052 meson: test: must also pass '-C' (--validate)
Otherwise it will try to _run_ the bar, which we don't want.
2019-05-11 11:07:15 +02:00
Daniel Eklöf
5eef162d39 main: add -b,--backend command line option
This option allows the user to explicitly select the backend to
use. The default is still to auto-detect.
2019-05-11 10:53:09 +02:00