Commit graph

79 commits

Author SHA1 Message Date
Daniel Eklöf
4daa3d9904
meson: stop using deprecated functions, require meson >= 0.58
* get_pkgconfig_variable() -> get_variable()
* prog.path() -> prog.full_path()
* meson.build_root() -> meson.global_build_root()
2022-02-27 11:32:46 +01:00
Daniel Eklöf
ffccabbb13
config: add inheritable option “font-shaping”
This patch adds an inheritable option, “font-shaping”, that controls
whether a particle that renders text should enable font-shaping or
not.

The option works similar to the ‘font’ option: one can set it at the
top-level, and it gets inherited down through all modules and to their
particles.

Or, you can set it on a module and it gets inherited to all its
particles, but not to other modules’ particles.

Finally, you can set it on individual particles, in which case it only
applies to them (or “child” particles).

When font-shaping is enabled (the default), the string particle shapes
full text runs using the fcft_rasterize_text_run_utf32() API. In fcft,
this results in HarfBuzz being used to shape the string.

When disabled, the string particle instead uses the simpler
fcft_rasterize_char_utf32() API, which rasterizes individual
characters.

This gives user greater control over the font rendering. One example
is bitmap fonts, which HarfBuzz often doesn’t get right.

Closes #159
2022-02-23 18:43:13 +01:00
Daniel Eklöf
5edc226c00
meson/pkgbuild: bump version to 1.8.0 2022-02-05 17:57:40 +01:00
Daniel Eklöf
ff238e62ba
fcft: adapt to API changes in fcft-3.x 2022-02-05 12:51:08 +01:00
Daniel Eklöf
d8d44b0f33
meson: generate-version: use CURRENT_SOURCE_DIR instead of SOURCE_ROOT 2021-12-21 13:41:46 +01:00
Jan Beich
ec465ba3b3 wayland: unbreak build without memfd_create
New FreeBSD versions have memfd_create but other BSDs don't.

bar/wayland.c:774:15: error: implicit declaration of function 'memfd_create' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    pool_fd = memfd_create("yambar-wayland-shm-buffer-pool", MFD_CLOEXEC);
              ^
bar/wayland.c:774:62: error: use of undeclared identifier 'MFD_CLOEXEC'
    pool_fd = memfd_create("yambar-wayland-shm-buffer-pool", MFD_CLOEXEC);
                                                             ^
2021-10-03 23:07:23 +00:00
Baptiste Daroussin
6a9f66b837 meson: add the library needed for the FreeBSD support 2021-10-01 10:52:02 +02:00
Stanislav Ochotnický
e723b039ad Make libmpdclient an optional dependency
Without this change yambar can't be installed/used without libmpdclient even for
people who do not use MPD. Let's make this optional.

We could put the optional module summary in the module meson.build but we'd have
to move summary() in main meson.build so that they appear in proper order.
2021-09-16 11:46:22 +02:00
Daniel Eklöf
42d944d020
meson/pkgbuild: bump version to 1.7.0 2021-09-03 20:39:01 +02:00
Daniel Eklöf
b8dd247111
meson: run generate_version.sh in a C locale
Previously, only the date command inside the script was run with
LC_TIME=C.

But there’s no reason to be that conservative; we absolutely do not
want _anything_ in that script to generate locale dependent output.
2021-08-25 19:03:32 +02:00
Daniel Eklöf
66ea64d826
meson/pkgbuild: bump version to 1.6.2 2021-07-24 13:38:09 +02:00
Daniel Eklöf
a5bbf0b769
particle/string: use fcft_text_run_rasterize() when available
This enables support for text shaping, and is required to render
e.g. 👩‍👩‍👧‍👧 correctly.

Since text-shaping is a fairly expensive operation, and since many
times the text is unchanged, we cache the last *rendered* string.

That is, we hash the instantiated string, and cache it along with the
text-run from fcft in the *particle* object (i.e. not the exposable).

This means two things:

* we only need to call fcft_text_run_rasterize() once per string
* if the string is the same as last time, we don’t have to call it at
  all.
2021-05-24 17:38:43 +02:00
Daniel Eklöf
18a0920ed9
meson: version.sh: SOURCE_DIR is not valid in custom_targets() 2021-05-04 13:46:20 +02:00
Daniel Eklöf
db7a4af80a
main: call fcft_log_init(). Note that this requires fcft >= 2.3.90 2021-04-17 20:35:48 +02:00
Daniel Eklöf
2563a233d7
meson/PKGBUILD: bump to 1.6.1 2021-01-14 11:13:16 +01:00
Daniel Eklöf
105409b0e0
meson/pkgbuild: bump version to 1.6.0 2020-12-19 12:21:33 +01:00
Daniel Eklöf
db53cf9245
module/alsa+backlight: round() percentage values
Closes #10
2020-09-24 13:57:05 +02:00
Daniel Eklöf
8d4e2e14a4
meson/pkgbuild: bump version to 1.5.0 2020-09-05 09:25:13 +02:00
Daniel Eklöf
a7820e1db7
meson: install LICENSE and README.md 2020-07-25 09:08:11 +02:00
Daniel Eklöf
e04b678518
meson/pkgbuild: we don't depend on wlroots 2020-07-22 17:50:24 +02:00
Daniel Eklöf
fb4db1f856
meson: fcft: only major version changes break ABI/API 2020-05-09 11:20:16 +02:00
Daniel Eklöf
bc392d8b0b
meson: use 'status()' instead of 'message()' 2020-05-01 12:28:48 +02:00
Daniel Eklöf
11095201d7
meson: bump C standard to c18 2020-04-26 19:37:54 +02:00
Daniel Eklöf
bf7cd9a617
meson: using a fallback without a variable name requires meson >= 0.53 2020-04-24 20:21:37 +02:00
Daniel Eklöf
badf9b7622
meson: use simpler variant of dependency fallback for tllist+fcft
we now require tllist>=1.0.1 and fcft>=2.0.0, which both use
meson.override_dependency(). Thus, we can use the simpler form of
fallback in our dependency() call.s

This also updates the PKGBUILD files to require tllist>=1.0.1 and
fcft>=2.0.0
2020-04-24 20:19:16 +02:00
Daniel Eklöf
60a8bc7fb0
meson: we now require fcft 2.0.x 2020-04-23 11:25:58 +02:00
Daniel Eklöf
f37fc3c1d6
meson/PKGBUILD: bump version to 1.4.0 2020-03-29 11:51:26 +02:00
Daniel Eklöf
6db8925feb
meson: strip build+source relative path prefix from __FILE__ macros 2020-02-20 19:50:08 +01:00
Daniel Eklöf
ebc7511706
fcft: update to 1.1.0 2020-02-01 20:14:29 +01:00
Daniel Eklöf
8294eb5a80
fcft: update to 1.0.0
Allow/disallow subpixel antialiasing in font_glyph_for_wc(), not using
font_enable_subpixel_antialias().
2020-01-19 12:35:29 +01:00
Daniel Eklöf
54a31f8745
meson/PKGBUILD: font kerning requires fcft >= 0.4.2 2020-01-18 09:27:32 +01:00
Daniel Eklöf
7685199038
meson/PKGBUILD: bump version to 1.3.1 2020-01-15 14:19:42 +01:00
Daniel Eklöf
b6da4492a9
meson/PKGBUILD: bump version to 1.3.0 2020-01-15 13:57:09 +01:00
Daniel Eklöf
d4201723a6
PKGBUILD/meson: require fcft 0.4.x 2019-12-05 19:40:23 +01:00
Daniel Eklöf
4a9530881a
fcft: update to 0.3.0 2019-12-03 21:05:32 +01:00
Daniel Eklöf
d6d4ee2fbd
meson: require fcft 0.2.0 2019-12-01 19:29:47 +01:00
Daniel Eklöf
da46c8c49c
meson: fcft: version must be 0.1.x 2019-12-01 18:46:21 +01:00
Daniel Eklöf
075b095271
PKGBUILD/meson: add version requirements to tllist+fcft 2019-12-01 17:43:12 +01:00
Daniel Eklöf
331f7d0be2
meson: group tllist/fcft with the other system dependencies 2019-12-01 16:09:49 +01:00
Daniel Eklöf
64844a8937
meson: tllist/fcft: use system dependency first, fallback to subprojects 2019-12-01 16:07:56 +01:00
Daniel Eklöf
51a6631c19
fcft: use fcft instead of local copy of font.{c,h} 2019-12-01 16:00:15 +01:00
Daniel Eklöf
75d9c9a12d
tllist: add git submodule directly under subprojects
Meson now falls back to a system dependency if the subproject isn't
available.
2019-12-01 15:51:57 +01:00
Daniel Eklöf
8e9c4376e3
meson/PKGBUILD: bump version to 1.2.0 2019-11-24 14:10:36 +01:00
Daniel Eklöf
0550d2799d
tllist: use tllist from external git repository 2019-11-17 19:17:34 +01:00
Daniel Eklöf
c4f9168191
meson: fix version generation from git
run_command() was only run at configure time, meaning the generated
version (that was passed on to the sources via -DYAMBAR_VERSION)
became stale.

Fix by implementing a shell script that generates a header file, and
wrap this in a custom target that is run every time (but the generated
file is only updated when the version changes)
2019-10-19 21:47:21 +02:00
Daniel Eklöf
e9d5c620a4
desktop: add Desktop Entry file 2019-09-29 20:58:15 +02:00
Daniel Eklöf
9dbbc480e4
Rename project: f00bar -> yambar 2019-09-28 20:39:45 +02:00
Daniel Eklöf
85c06a427f
Bump version to 1.1.1 2019-09-27 22:13:18 +02:00
Daniel Eklöf
43157e42cc
Bump version to 1.1.0 2019-09-24 19:56:09 +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