diff --git a/meson.build b/meson.build index 0089fa7..09255a1 100644 --- a/meson.build +++ b/meson.build @@ -144,6 +144,7 @@ yambar = executable( plugin_i3_enabled ? '-DPLUGIN_ENABLED_I3' : [], plugin_label_enabled ? '-DPLUGIN_ENABLED_LABEL' : [], plugin_network_enabled ? '-DPLUGIN_ENABLED_NETWORK' : [], + plugin_removables_enabled ? '-DPLUGIN_ENABLED_REMOVABLES' : [], plugin_pipewire_enabled ? '-DPLUGIN_ENABLED_PIPEWIRE' : [], plugin_pulse_enabled ? '-DPLUGIN_ENABLED_PULSE' : [], ], @@ -196,6 +197,7 @@ summary( 'i3+Sway': plugin_i3_enabled, 'Label': plugin_label_enabled, 'Network monitoring': plugin_network_enabled, + 'Removables monitoring': plugin_removables_enabled, 'Pipewire': plugin_pipewire_enabled, 'PulseAudio': plugin_pulse_enabled, }, diff --git a/meson_options.txt b/meson_options.txt index d64f85b..e130a0a 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -30,6 +30,8 @@ option('plugin-label', type: 'feature', value: 'auto', description: 'Label support') option('plugin-network', type: 'feature', value: 'auto', description: 'Network monitoring support') +option('plugin-removables', type: 'feature', value: 'auto', + description: 'Removables (USB sticks, CD-ROM etc) monitoring support') option('plugin-pipewire', type: 'feature', value: 'auto', description: 'Pipewire support') option('plugin-pulse', type: 'feature', value: 'auto', diff --git a/modules/meson.build b/modules/meson.build index ba5647e..7eba966 100644 --- a/modules/meson.build +++ b/modules/meson.build @@ -2,7 +2,6 @@ module_sdk = declare_dependency(dependencies: [pixman, threads, tllist, fcft]) modules = [] -udev = dependency('udev') json = dependency('json-c') xcb_xkb = dependency('xcb-xkb', required: get_option('backend-x11')) @@ -30,6 +29,9 @@ plugin_i3_enabled = json_i3.found() plugin_label_enabled = get_option('plugin-label').allowed() plugin_network_enabled = get_option('plugin-network').allowed() +udev_removables = dependency('udev', required: get_option('plugin-removables')) +plugin_removables_enabled = udev_removables.found() + pipewire = dependency('libpipewire-0.3', required: get_option('plugin-pipewire')) plugin_pipewire_enabled = pipewire.found() @@ -40,7 +42,6 @@ plugin_dwl_enabled = get_option('plugin-dwl').allowed() # Module name -> (source-list, dep-list) mod_data = { - 'removables': [[], [dynlist, udev]], 'script': [[], []], 'sway-xkb': [['i3-common.c', 'i3-common.h'], [dynlist, json]], } @@ -93,6 +94,10 @@ if plugin_network_enabled mod_data += {'network': [[], []]} endif +if plugin_removables_enabled + mod_data += {'removables': [[], [dynlist, udev_removables]]} +endif + if plugin_pipewire_enabled mod_data += {'pipewire': [[], [pipewire, dynlist, json]]} endif diff --git a/plugin.c b/plugin.c index b08d5c5..95fcff1 100644 --- a/plugin.c +++ b/plugin.c @@ -69,13 +69,15 @@ EXTERN_MODULE(label); #if defined(PLUGIN_ENABLED_NETWORK) EXTERN_MODULE(network); #endif +#if defined(PLUGIN_ENABLED_REMOVABLES) +EXTERN_MODULE(removables); +#endif #if defined(PLUGIN_ENABLED_PULSE) EXTERN_MODULE(pulse); #endif #if defined(PLUGIN_ENABLED_PIPEWIRE) EXTERN_MODULE(pipewire); #endif -EXTERN_MODULE(removables); EXTERN_MODULE(river); EXTERN_MODULE(sway_xkb); EXTERN_MODULE(script); @@ -183,13 +185,15 @@ init(void) #if defined(PLUGIN_ENABLED_NETWORK) REGISTER_CORE_MODULE(network, network); #endif +#if defined(PLUGIN_ENABLED_REMOVABLES) + REGISTER_CORE_MODULE(removables, removables); +#endif #if defined(PLUGIN_ENABLED_PULSE) REGISTER_CORE_MODULE(pulse, pulse); #endif #if defined(PLUGIN_ENABLED_PIPEWIRE) REGISTER_CORE_MODULE(pipewire, pipewire); #endif - REGISTER_CORE_MODULE(removables, removables); #if defined(HAVE_PLUGIN_river) REGISTER_CORE_MODULE(river, river); #endif