Daniel Eklöf
f7fd305821
build: install targets for f00bar binary + module plugins
...
Module plugins are (still) built in <build-dir>/modules.
When installing, f00bar binary is installed to <install-dir>/bin, and
the module plugins to <install-dir>/lib/f00bar.
For this to work, we now also set RPATH correctly. Since the installed
module plugins end up in a different location then when building,
different settings is required for BUILD_RPATH and INSTALL_RPATH.
2019-01-12 21:07:48 +01:00
Daniel Eklöf
7f2501334d
modules: use the same name for the module_info in all modules
2019-01-12 20:34:43 +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
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
e54e19e2c4
module/mpd: expose repeat/random/consume state
2019-01-11 20:10:36 +01:00
Daniel Eklöf
7b2dfd1399
module/i3: implement 'urgent' event handling
2019-01-11 20:05:38 +01:00
Daniel Eklöf
b9b90d8b9e
module/i3: 'reload' events don't have a 'current' element
2019-01-11 20:01:36 +01:00
Daniel Eklöf
67767e6f54
module/backlight: expose brightness as percent too
2019-01-09 21:17:27 +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
9037aadd04
module/xwindow: some windows have a zero-length PID property
2019-01-09 18:50:26 +01:00
Daniel Eklöf
128716c8aa
module/i3: if there's no specific workspace template, try a default one
...
If the user hasn't specified a specific template for a workspace, try
to lookup a default one (the empty string).
This allows the user to configure a "fallback" template to be used for
"extra", or not-often-used workspaces.
2019-01-09 18:50:26 +01:00
Daniel Eklöf
54798567c0
module/alsa: track all channels
...
Warn if volume and/or muted state is inconsistent (as we only expose a
single volume/muted state).
Also, don't query for current volume if max == 0 (i.e. typically a
digital output).
Finally, make absolutely sure that volume min is really less (or
equal) to volume max, and that the current volume level is between min
and max.
2019-01-09 18:50:26 +01:00
Daniel Eklöf
91826ff176
module/removables: handle optical media (CDROMs)
2019-01-07 18:32:09 +01:00
Daniel Eklöf
af13df3045
module/i3: trigger a bar refresh after a workspace event
2019-01-07 18:31:55 +01:00
Daniel Eklöf
072a508291
module/i3: add more debug logging
2019-01-07 18:31:47 +01:00
Daniel Eklöf
552739fa20
module/i3: fix gcc warning
...
Gcc (correctly) figured out that we may end up truncating the socket
path. In practice, it's something that should never happen.
Never the less, silence the warning by writing the socket path
directly into the sockaddr_un object.
2019-01-07 18:30:30 +01:00
Daniel Eklöf
efe3dd06ab
alsa: initialize values, fixes valgrind warning
...
When snd_mixer_selem_get_*() fails, the values were left
uninitialized, trigger a valgrind warning.
In addition to fixing this, the error(s) are now logged (but only as
warnings, as they are not fatal).
2019-01-07 18:29:03 +01:00
Daniel Eklöf
bf5ad4d6b7
module/network: both thrd_current() and getpid() are 32-bit
2019-01-06 20:41:34 +01:00
Daniel Eklöf
45e5f11fea
modules: remove "connected to " prefix from info logs
2019-01-02 18:14:49 +01:00
Daniel Eklöf
43aeb1c224
module/alsa: include volume min/max/cur and muted state in info log
2019-01-02 18:14:26 +01:00
Daniel Eklöf
64a52656b1
module/alsa: log info message when up and running
2019-01-02 18:11:39 +01:00
Daniel Eklöf
2d5d1d5a46
module/alsa: disable debug logging
2019-01-02 18:08:32 +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
ed4716a600
module/removables: remove debug logging
2019-01-01 20:37:04 +01:00
Daniel Eklöf
7dd35f1159
module/xkb: remove assert: variable has been removed
2019-01-01 20:34:39 +01:00
Daniel Eklöf
aa477eaa32
module/xkb: remove unused variable
2019-01-01 20:31:54 +01:00
Daniel Eklöf
c01806d6fa
module/xkb: declare and initialize 'symbols' before first goto err
...
This ensures we don't free() an invalid value.
2019-01-01 20:31:00 +01:00
Daniel Eklöf
a8a9ab28bd
module/removables: log warning if action is something we didn't expect
2019-01-01 20:30:27 +01:00
Daniel Eklöf
bdd760a40b
module/removables: cleanup
2019-01-01 20:18:48 +01:00
Daniel Eklöf
14f9aec088
module/removables: monitors removable devices using udev
2019-01-01 20:07:50 +01:00
Daniel Eklöf
0ab8dad7b9
module/network: initialize MAC address to 0
...
This fixes a valgrind "uninitialized value(s)" warning.
2019-01-01 13:10:44 +01:00
Daniel Eklöf
a96f901a15
module/network: disable debug logging
2019-01-01 13:10:35 +01:00
Daniel Eklöf
ea2cc50194
module/network: process_reply() -> parse_reply()
2018-12-31 13:44:49 +01:00
Daniel Eklöf
b2af90abbc
module/network: IFA_ADDRESS: include add/del in log message
2018-12-31 13:42:32 +01:00
Daniel Eklöf
24842d9b28
module/network: RTM_NEWLINK/DELLINK: don't do anything if nothing's changed
...
We're only interrested in a few of the attributes. Thus, there's no
need to log or update anything, if none of those attributes haven't
changed.
2018-12-31 13:40:43 +01:00
Daniel Eklöf
dcf8051f1a
module/network: break out message parsing code
...
This also allows us to actually handle errors (by aborting run())
2018-12-31 13:36:44 +01:00
Daniel Eklöf
8352d89491
module/network: break out message receiving code
2018-12-31 13:27:37 +01:00