Commit Graph
12 Commits
Author SHA1 Message Date
Kenny Levinsen 24ec63a178 widgets: Allow widgets to fill remaining space
This is implemented by propagating the expected remaining space to all
widget draw calls. It is not currently as smart as it could be, but it
works well enough to let the last widget in a row/column fill things.

BarWidget-type widgets and the Launcher widget now fill remaining space
if their length is set to 0.
2020-06-14 17:01:42 +02:00
Kenny Levinsen 2f61da8690 clock: Use font metrics for size 2020-06-14 17:01:42 +02:00
Hilmar Gústafsson 48985c470a Configurable font support
Use fontconfig to load fonts. Fonts can be added to the `fonts` map in
the config, and referenced from individual widgets' configurations for
customizability.

Fonts default to values "mono" and "sans" if nothing is set.
2020-06-14 17:01:42 +02:00
Kenny Levinsen 319bcdd355 Reduce cargo clippy warnings 2020-04-22 01:31:22 +02:00
Kenny Levinsen 300711affe Convert DateTime<Local> to NaiveDateTime
Use of DateTime<Local> can lead to excessive inspection of the system
timezone.

Instead, propagate only a timezone-compensated NaiveDateTime throughout
the widgets.
2020-04-22 00:52:08 +02:00
Kenny Levinsen 0577c023b8 clock/date: Feb 29 bug in nonsensical code 2020-02-29 00:11:49 +01:00
Kenny Levinsen 8877674f43 cargo fmt 2020-01-08 11:31:56 +01:00
Kenny Levinsen b51fc8a1b0 Use global poll for UpowerBattery 2019-10-05 22:42:26 +02:00
Kenny Levinsen 0de3da162b widget: Add wait support
Widgets can now specify that they wish to wait on an fd or for a target
time to be reached.

This can be used to save a few worker threads.
2019-10-05 01:07:06 +02:00
Kenny Levinsen 3572d22ba8 Add modifier support, enter/leave events 2019-10-02 16:20:10 +02:00
Kenny Levinsen 9908392af1 clock: Sizing error 2019-09-07 00:37:01 +02:00
Kenny Levinsen b53a909e1c Dynamic widget configuration and layout
1. Implement new layout API, replacing previous hard-coded layout.
2. Make the widgets (previously modules) configurable.
3. Split some widgets into smaller modules.
4. Configuration file (reluctantly JSON at time of writing).
5. More correct damage handling, copying damage to next buffer.
2019-09-06 21:54:04 +02:00