Commit graph

25 commits

Author SHA1 Message Date
Jordan Isaacs
6113f9b94e
particles/icon: init
Introduce a new icon particle. It follows the icon
spec (https://specifications.freedesktop.org/icon-theme-spec/latest/index.html).
Rendering logic is taken from fuzzel (using nanosvg + libpng), while loading
logic is taken from sway. Standard usage is with `use-tag = false` which expands
the provided string template and then loads the string as the icon name. There
are settings to manually override the base paths, themes, etc. The second usage
which is required for tray support is a special icon tag that transfers raw
pixmaps. With `use-tag = true` it first expands the string, and then uses that
output to find an icon pixmap tag. To reduce memory usage, themes are reference
counted so they can be passed down the configuration stack without having to
load them in multiple times.

For programmability, a fallback particle can be specified if no icon/tag is
found `fallback: ...`. And the new icon pixmap tag can be existence checked in
map conditions using `+{tag_name}`.

Future work to be done in follow up diffs:
1. Icon caching. Currently performs an icon lookup on each instantiation & a
   render on each refresh.
2. Theme caching. Changing theme directories results in a new "theme collection"
   being created resulting in the possibility of duplicated theme loading.
2024-07-23 22:58:23 -07:00
Leonardo Hernández Hernández
60671da2ca
lowercase DWL (dwl is the preferred form) 2024-01-03 15:11:09 +01:00
Daniel Eklöf
9ef6d73663
meson: make ‘foreign-toplevel’ plugin compile time optional 2022-12-14 10:08:48 +01:00
Daniel Eklöf
56b0047004
meson: make ‘river’ plugin compile time optional 2022-12-14 10:05:23 +01:00
Daniel Eklöf
1a81255579
meson: make ‘xwindow’ plugin compile time optional 2022-12-14 10:02:13 +01:00
Daniel Eklöf
a14d38b0cb
meson: make ‘xkb’ plugin compile time optional 2022-12-14 09:58:45 +01:00
Daniel Eklöf
b6450446a8
meson: make ‘sway-xkb’ plugin compile time optional 2022-12-14 09:53:24 +01:00
Daniel Eklöf
ec9ed66b6b
meson: make ‘script’ plugin compile time optional 2022-12-14 09:48:50 +01:00
Daniel Eklöf
eb26f64ea7
meson: make ‘removables’ plugin compile time optional 2022-12-14 09:46:08 +01:00
Daniel Eklöf
b901ac50ee
meson: make ‘network’ plugin compile time optional 2022-12-14 09:43:14 +01:00
Daniel Eklöf
8d5e8b5f20
meson: make ‘label’ plugin compile time optional 2022-12-14 09:41:44 +01:00
Daniel Eklöf
f54f583be1
meson: make ‘i3’ plugin compile time optional 2022-12-14 09:39:47 +01:00
Daniel Eklöf
85d55905f9
meson: make ‘mem’ plugin compile time optional 2022-12-14 09:36:48 +01:00
Daniel Eklöf
659b282445
meson: make ‘disk-io’ plugin compile time optional 2022-12-14 09:36:45 +01:00
Daniel Eklöf
b23365ccac
meson: make ‘cpu’ plugin compile time optional 2022-12-14 09:32:04 +01:00
Daniel Eklöf
25e123fbe6
meson: make ‘clock’ plugin compile time optional 2022-12-14 09:32:04 +01:00
Daniel Eklöf
881359183f
meson: make ‘backlight’ plugin compile time optional 2022-12-13 16:47:48 +01:00
Daniel Eklöf
4c1398f1a5
meson: make ‘alsa’ plugin compile time optional 2022-12-13 16:41:50 +01:00
Daniel Eklöf
f8f0d7ae99
meson_options: sort plugin options 2022-12-13 16:36:55 +01:00
Ogromny
f5cfc103d0
modules/dwl: new module 2022-12-13 15:56:16 +01:00
Ogromny
19a9f099e2 modules/pipewire: new module 2022-12-13 10:16:58 +01:00
Willem van de Krol
dcf21f0b06 modules: add pulse
The pulse module shows information about PulseAudio sinks and sources.
2022-12-12 18:51:28 +01: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
fdb9a9bc1c meson: initial support for building plugins as shared libraries 2019-05-01 18:21:35 +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