8e46e54cb3
Modules can now also be shown and hidden using ipc commands: $ polybar-msg [-p PID] cmd hide.mymodule # Hides module mymodule $ polybar-msg [-p PID] cmd show.mymodule # Shows module mymodule $ polybar-msg [-p PID] cmd toggle.mymodule # Toggles visibility of mymodule * Hopefully implement visibility checking * Implement hide command * Implement `show` and `toggle` commands * Refactor and add some logging * Run style checks and update CHANGELOG * Get around unused parameter warnings * Change `set_visible` to return nothing * Make errors more informative Co-authored-by: Patrick Ziegler <p.ziegler96@gmail.com> * Update bar when changing module visibility - Called in the module to maintain dependence on the signal emitter - Update CHANGELOG to make changes more verbose * wrong var * Update include/modules/unsupported.hpp Co-authored-by: Patrick Ziegler <p.ziegler96@gmail.com> Co-authored-by: Patrick Ziegler <p.ziegler96@gmail.com>
69 lines
3.6 KiB
C++
69 lines
3.6 KiB
C++
#pragma once
|
|
|
|
#include "modules/meta/base.hpp"
|
|
#include "modules/meta/base.inl"
|
|
|
|
POLYBAR_NS
|
|
|
|
namespace modules {
|
|
struct module_interface;
|
|
|
|
#define DEFINE_UNSUPPORTED_MODULE(MODULE_NAME, MODULE_TYPE) \
|
|
class MODULE_NAME : public module_interface { \
|
|
public: \
|
|
MODULE_NAME(const bar_settings, string) { \
|
|
throw application_error("No built-in support for '" + string{MODULE_TYPE} + "'"); \
|
|
} \
|
|
static constexpr auto TYPE = MODULE_TYPE; \
|
|
string type() const { \
|
|
return ""; \
|
|
} \
|
|
string name_raw() const { \
|
|
return ""; \
|
|
} \
|
|
string name() const { \
|
|
return ""; \
|
|
} \
|
|
bool running() const { \
|
|
return false; \
|
|
} \
|
|
bool visible() const { \
|
|
return false; \
|
|
} \
|
|
void set_visible(bool) {} \
|
|
void start() {} \
|
|
void stop() {} \
|
|
void halt(string) {} \
|
|
string contents() { \
|
|
return ""; \
|
|
} \
|
|
bool input(const string&, const string&) { \
|
|
return false; \
|
|
} \
|
|
}
|
|
|
|
#if not ENABLE_I3
|
|
DEFINE_UNSUPPORTED_MODULE(i3_module, "internal/i3");
|
|
#endif
|
|
#if not ENABLE_MPD
|
|
DEFINE_UNSUPPORTED_MODULE(mpd_module, "internal/mpd");
|
|
#endif
|
|
#if not ENABLE_NETWORK
|
|
DEFINE_UNSUPPORTED_MODULE(network_module, "internal/network");
|
|
#endif
|
|
#if not ENABLE_ALSA
|
|
DEFINE_UNSUPPORTED_MODULE(alsa_module, "internal/alsa");
|
|
#endif
|
|
#if not ENABLE_PULSEAUDIO
|
|
DEFINE_UNSUPPORTED_MODULE(pulseaudio_module, "internal/pulseaudio");
|
|
#endif
|
|
#if not ENABLE_CURL
|
|
DEFINE_UNSUPPORTED_MODULE(github_module, "internal/github");
|
|
#endif
|
|
#if not ENABLE_XKEYBOARD
|
|
DEFINE_UNSUPPORTED_MODULE(xkeyboard_module, "internal/xkeyboard");
|
|
#endif
|
|
} // namespace modules
|
|
|
|
POLYBAR_NS_END
|