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
Daniel Eklöf
473802cab8
bar: allow explicit backend selection
2019-05-11 10:43:14 +02:00
Daniel Eklöf
50d6afab6a
bar: add margin properties to the border
2019-02-17 15:45:02 +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
f26892d938
bar: allow user to specify _which_ monitor to place the bar on
...
If not specified, the primary monitor will be used.
2019-01-20 22:05:12 +01:00
Daniel Eklöf
b1453fd65e
font: simplify configuration format; it's just a string now
2019-01-20 09:51:44 +01:00
Daniel Eklöf
1c18dbf1a0
decorations: remove header files
2019-01-13 17:45:09 +01:00
Daniel Eklöf
7754ef3661
decorations: are now plugins
2019-01-13 17:43:25 +01:00
Daniel Eklöf
bc62843c91
modules: get rid of struct module_info
...
Since this struct only contained function pointers, make all modules
export those functions directly.
The plugin manager now defines a module interface struct, and fills it
it by dlsym:ing the functions that used to be in module_info.
2019-01-13 17:09:11 +01:00
Daniel Eklöf
07b1615a41
particles: get rid of struct particle_info
...
Since this struct only contained function pointers, make all particles
export those functions directly.
The plugin manager now defines a particle interface struct, and fills
it it by dlsym:ing the functions that used to be in particle_info.
2019-01-13 17:03:35 +01:00
Daniel Eklöf
a425378576
config: allow font/foreground attributes on modules too
...
Previously we allowed it on the bar, and on all particles. Now we also
allow it on all modules.
This allows us to specify a "default" font/foreground on a per-module
basis, having it applied to all the modules particles.
2019-01-13 14:24:44 +01:00
Daniel Eklöf
8dc278aaf2
config: pass a struct with inheritable values
...
For now, font and foreground color
2019-01-13 14:13:14 +01:00
Daniel Eklöf
7776135454
particles: caller of from_conf() must provide base particle instance
2019-01-13 13:25:14 +01:00
Daniel Eklöf
47018104da
particles: compile as shared libraries (plugins)
2019-01-13 11:13:47 +01:00
Daniel Eklöf
7b98ea2b7c
particle/string: expose info through the new struct particle_info struct
2019-01-13 10:49:10 +01:00
Daniel Eklöf
9f8000b047
particle/ramp: expose info through the new struct particle_info struct
2019-01-13 10:40:47 +01:00
Daniel Eklöf
21e28315e3
particle/progress-bar: expose info through the new struct particle_info struct
2019-01-13 10:38:25 +01:00
Daniel Eklöf
73b8bf1346
particle/map: expose info through the new struct particle_info struct
2019-01-13 10:34:15 +01:00
Daniel Eklöf
6379b1939f
particle/list: expose info through the new struct particle_info struct
2019-01-12 22:56:00 +01:00
Daniel Eklöf
0f8f21510a
particle/empty: expose info through the new struct particle_info struct
2019-01-12 22:48:23 +01:00
Daniel Eklöf
962252467f
plugins: only dlopen() each plugin once. dlcose() in destructor
2019-01-12 19:38:06 +01:00
Daniel Eklöf
64b77a0efc
config: dlopen() modules on-demand
...
TODO: optimizations and proper cleanup
* We currently reload the shared library for each *instance* of the
module, and we do it twice; once when verifying, and once when
instantiating.
* The shared libraries are never dlclosed()
2019-01-12 19:03:49 +01:00
Daniel Eklöf
731ab848e1
config: fix: attributes always use dash, not underscore
2019-01-12 13:56:02 +01:00
Daniel Eklöf
6f9e48698e
module/xwindow: export module info through the new module_info struct type
2019-01-12 13:03:41 +01:00
Daniel Eklöf
905f289659
module/xkb: export module info through the new module_info struct type
2019-01-12 13:01:24 +01:00
Daniel Eklöf
87640339e1
module/removables: export module info through the new module_info struct type
2019-01-12 12:59:21 +01:00
Daniel Eklöf
697e613b2e
module/network: export module info through the new module_info struct type
2019-01-12 12:56:54 +01:00
Daniel Eklöf
a16e2f5a53
module/mpd: export module info through the new module_info struct type
2019-01-12 12:52:42 +01:00
Daniel Eklöf
fb9f07dcad
module/label: export module info through the new module_info struct type
2019-01-12 12:52:36 +01:00
Daniel Eklöf
f3721d9d80
module/i3: export module info through the new module_info struct type
2019-01-12 12:12:14 +01:00
Daniel Eklöf
550d4ad534
module/clock: export module info through the new module_info struct type
2019-01-12 12:05:39 +01:00
Daniel Eklöf
e24923e7cc
module/battery: export module info through the new module_info struct type
2019-01-12 12:02:41 +01:00
Daniel Eklöf
3d36735f88
module/backlight: export module info through the new module_info struct type
2019-01-12 11:59:01 +01:00
Daniel Eklöf
e536391df6
module/alsa: export module info through the new module_info struct type
2019-01-12 11:58:57 +01:00
Daniel Eklöf
3c870f759a
config: verify: config_verify_bar() -> conf_verify_bar()
2019-01-12 11:47:01 +01:00
Daniel Eklöf
6cb2f52328
config: conf_particle_from() -> conf_to_particle()
2019-01-12 11:28:20 +01:00
Daniel Eklöf
8809cbb481
Put each module in its own subdirectory
2019-01-12 11:19:57 +01:00
Daniel Eklöf
75bdd2ad3c
config: use dashes, '-', instead of underscores, '_' in attribute names
2019-01-12 10:32:52 +01:00
Daniel Eklöf
b0705578b0
config: remove asserts
...
Since the config is now fully verified, before we start loading
anything, there's no longer any need to assert on thing.
2019-01-12 10:27:02 +01:00
Daniel Eklöf
3f578d30eb
config: bar: no need to check for NULL on required attributes
2019-01-11 22:51:01 +01:00
Daniel Eklöf
706313b1e5
config: backlight: content doesn't have to be a dictionary
...
And, particle_from_config() will take care of asserting on the correct
type anyway.
2019-01-09 21:17:41 +01:00
Daniel Eklöf
73c93bad5a
config: implicit lists now have the same default right-spacing as explicit ones
2019-01-09 18:50:26 +01:00
Daniel Eklöf
2562d94f24
config: remove extra ';'
2019-01-09 18:50:26 +01:00
Daniel Eklöf
7fc9749c28
module/clock: user can now specify the date/time format strings
2019-01-09 18:50:26 +01:00
Daniel Eklöf
f6977417e0
font: use font-config to load font
...
This allows us to a) move away from cairo's "toy" API, and b) let the
user specify font options in a single font "name" string:
Serif:size=10:weight=bold:slant=italic
This also allows us to simplify the font code significantly (except
for the fontconfig parts...); the font no longer sets itself in a
cairo surface - font users do that; the font simply returns a
cairo_scaled_font_t.
Furthermore, font_clone() has now been simplified to basically just
refcount the scaled font. I.e. there's no need to run the full
constructor and lookup and instantiate the cairo scaled font again.
2019-01-09 18:50:16 +01:00
Daniel Eklöf
2b2c5bbf4d
config: not true
2019-01-07 18:32:27 +01:00
Daniel Eklöf
aa38063e37
wip: verify configuration
...
We now verify the configuration (currently down to module level, but
not including particles) that are present are of the expected type.
2019-01-06 20:04:01 +01:00
Daniel Eklöf
0d8704737e
module/alsa: monitors volume and muted state of selected card/mixer
2019-01-02 18:07:16 +01:00
Daniel Eklöf
a9110cc936
config: allow simple lists without actually declaring a list node
...
That is, instead of writing:
content:
list:
items:
- string: ..
- string: ..
It is now possible to write:
content:
- string: ...
- string: ...
Obviously, this means it's not possible to assign spacing, margin or
on-click handlers to such a list.
2019-01-01 20:50:49 +01:00
Daniel Eklöf
e711a6f103
config: deco_from_config() return NULL if we didn't match a deco
2019-01-01 20:29:55 +01:00