Daniel Eklöf
c3930ef60a
xcb: create atom if it doesn't exist
...
Fixes a bug where not all atoms have (yet) been created when starting
f00bar as part of the WM startup (for example, with an 'exec' in i3's
config).
2019-01-15 19:14:52 +01:00
Daniel Eklöf
ceb4770d7f
Merge branch 'plugins-builtin'
2019-01-14 20:57:20 +01:00
Daniel Eklöf
0d591fe5a1
allow plugins to be compiled into the f00bar main binary
2019-01-14 20:57:03 +01:00
Daniel Eklöf
00679dbeeb
decorations: cmake: compact CMakeLists.txt by using foreach()
2019-01-13 21:55:48 +01:00
Daniel Eklöf
c6b83ac7dc
particles: cmake: compact CMakeLists.txt by using foreach()
2019-01-13 21:55:42 +01:00
Daniel Eklöf
c6ce536cff
particle/string: explicitly link against cairo
...
Because it's the right thing to do. It worked without it, since the
f00bar main binary is linked with -rdynamic (to give plugins access to
core functions).
2019-01-13 21:49:24 +01:00
Daniel Eklöf
bc9c33c187
particle/dynlist: link particle-sdk PRIVATE:ly
2019-01-13 21:45:49 +01:00
Daniel Eklöf
2f83ed1fc3
particle/dynlist: compile as a shared library
2019-01-13 21:43:56 +01:00
Daniel Eklöf
1cce649f06
Reduce header intra-dependencies
2019-01-13 19:42:16 +01:00
Daniel Eklöf
5e107414e4
Merge branch 'decorations-as-plugins'
2019-01-13 17:51:15 +01:00
Daniel Eklöf
7cf6735363
plugin: typedef for configuration verification function pointer
2019-01-13 17:46:24 +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
4eee71eaf4
particles: cmake: header files have been removed
2019-01-13 17:41:48 +01:00
Daniel Eklöf
4a26664d8d
particles: remove config-verify.h from particle.h
2019-01-13 17:41:39 +01:00
Daniel Eklöf
f952347c84
module/backlight: don't divide by zero
2019-01-13 17:40:17 +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
d35695e98a
particle: we no longer count the attributes
...
Since the attribute lists are now NULL-terminated.
2019-01-13 16:50:16 +01:00
Daniel Eklöf
74b0722d2f
particles: remove header files
2019-01-13 16:49:46 +01:00
Daniel Eklöf
8d26ff7de2
module: module->begin_expose() have been removed
2019-01-13 16:45:35 +01:00
Daniel Eklöf
76d135e257
module: remove module_run_context
...
Store abort_fd directly in the module struct instead. This then allows
us to pass the module pointer as-is to the modules' run functions.
2019-01-13 15:34:59 +01:00
Daniel Eklöf
acdeff3b6e
module: remove ready_fd
...
All modules are expected to handle a call to content() after having
been instantiated.
I.e. modules *cannot* even expect run() to have started running.
2019-01-13 15:25:39 +01:00
Daniel Eklöf
65cfcfb2de
module/battery: initialize state in constructor
2019-01-13 15:08:09 +01:00
Daniel Eklöf
f04ff31d0f
module/xkb: lock in content, and handle no layout available
2019-01-13 15:04:18 +01:00
Daniel Eklöf
825b0a16f8
module: remove module->begin_expose()
...
Replace with module_begin_expose()
2019-01-13 14:58:30 +01:00
Daniel Eklöf
4c577766d1
module: remove module->expose() and module->end_expose()
...
Bar now calls exposable->expose() and exposable->destroy() directly
2019-01-13 14:55:21 +01:00
Daniel Eklöf
33cba8b0ba
module: remove module_expose_context
2019-01-13 14:52:28 +01:00
Daniel Eklöf
9276724113
module: remove 'with' from expose-context
2019-01-13 14:33:58 +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
770f2a0e7c
font: allow font_destroy() to be called with a NULL pointer
2019-01-13 13:24:56 +01:00
Daniel Eklöf
8bc6a0b783
oarticles: don't assume particle content is a dictionary
...
This is done by having each particle implement a top-level verifier
function.
2019-01-13 12:47:20 +01:00
Daniel Eklöf
9944a8f972
modules: don't assume module content is a dictionary
...
This is done by having each module implement a top-level verifier
function.
2019-01-13 11:54:57 +01:00
Daniel Eklöf
e471c2357d
cmake: set _GNU_SOURCE globally, and only once
2019-01-13 11:40:09 +01:00
Daniel Eklöf
71515e4079
config: conf_verify_dict() now assumes attr list is NULL-terminated
2019-01-13 11:37:05 +01:00
Daniel Eklöf
2df419efc2
plugin: remove TODO
2019-01-13 11:29:10 +01:00
Daniel Eklöf
f066ba055e
Merge branch 'particles-as-plugins'
2019-01-13 11:28:06 +01:00
Daniel Eklöf
45280416ff
modules, particles: type-specific filename prefix
...
Instead of naming the shared libraries libfoo.so, add a type-specific
prefix: module_foo.so, or particle_foo.so
2019-01-13 11:26:31 +01:00
Daniel Eklöf
ec4a47e5db
modules: rename module_info -> plugin_info
...
This is the same name used by particles.
2019-01-13 11:18:32 +01:00
Daniel Eklöf
307a1f5ec8
particles: all particles can have a decoration
2019-01-13 11:16:52 +01:00
Daniel Eklöf
311193751c
particles: install target
2019-01-13 11:14:57 +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