Remove config singleton (#2951)
* Remove unused function * Refactor deprecation warning * Modules take config as parameter instead of using the singleton * Bar take config as parameter instead of using the singleton * Renderer take config as parameter instead of using the singleton * Legacy Tray Manager take config as parameter instead of using the singleton * Screen take config as parameter instead of using the singleton * Controller take config as parameter instead of using the singleton * Remove the config singleton * Apply review suggestion Co-authored-by: Patrick Ziegler <p.ziegler96@gmail.com> * Apply style suggestion Co-authored-by: Patrick Ziegler <p.ziegler96@gmail.com> * Apply style suggestion Co-authored-by: Patrick Ziegler <p.ziegler96@gmail.com> * Apply style suggestion Co-authored-by: Patrick Ziegler <p.ziegler96@gmail.com> * Apply style suggestion Co-authored-by: Patrick Ziegler <p.ziegler96@gmail.com> * Apply style suggestion Co-authored-by: Patrick Ziegler <p.ziegler96@gmail.com> * Apply style suggestion Co-authored-by: Patrick Ziegler <p.ziegler96@gmail.com> * Apply style suggestion Co-authored-by: Patrick Ziegler <p.ziegler96@gmail.com> * Apply style suggestion Co-authored-by: Patrick Ziegler <p.ziegler96@gmail.com> * Apply style suggestion Co-authored-by: Patrick Ziegler <p.ziegler96@gmail.com> --------- Co-authored-by: Patrick Ziegler <p.ziegler96@gmail.com>
This commit is contained in:
parent
61f0e9dd5d
commit
0caa30683c
@ -37,7 +37,7 @@ class bar : public xpp::event::sink<evt::button_press, evt::expose, evt::propert
|
|||||||
public signal_receiver<SIGN_PRIORITY_BAR, signals::ui::dim_window> {
|
public signal_receiver<SIGN_PRIORITY_BAR, signals::ui::dim_window> {
|
||||||
public:
|
public:
|
||||||
using make_type = unique_ptr<bar>;
|
using make_type = unique_ptr<bar>;
|
||||||
static make_type make(eventloop::loop&, bool only_initialize_values = false);
|
static make_type make(eventloop::loop&, const config&, bool only_initialize_values = false);
|
||||||
|
|
||||||
explicit bar(connection&, signal_emitter&, const config&, const logger&, eventloop::loop&, unique_ptr<screen>&&,
|
explicit bar(connection&, signal_emitter&, const config&, const logger&, eventloop::loop&, unique_ptr<screen>&&,
|
||||||
unique_ptr<tags::dispatch>&&, unique_ptr<tags::action_context>&&, bool only_initialize_values);
|
unique_ptr<tags::dispatch>&&, unique_ptr<tags::action_context>&&, bool only_initialize_values);
|
||||||
|
@ -24,10 +24,7 @@ using file_list = vector<string>;
|
|||||||
|
|
||||||
class config {
|
class config {
|
||||||
public:
|
public:
|
||||||
using make_type = const config&;
|
explicit config(const logger& logger, string&& path, string&& bar)
|
||||||
static make_type make(string path = "", string bar = "");
|
|
||||||
|
|
||||||
explicit config(const logger& logger, string&& path = "", string&& bar = "")
|
|
||||||
: m_log(logger), m_file(move(path)), m_barname(move(bar)){};
|
: m_log(logger), m_file(move(path)), m_barname(move(bar)){};
|
||||||
|
|
||||||
const string& filepath() const;
|
const string& filepath() const;
|
||||||
@ -46,7 +43,7 @@ class config {
|
|||||||
|
|
||||||
file_list get_included_files() const;
|
file_list get_included_files() const;
|
||||||
|
|
||||||
void warn_deprecated(const string& section, const string& key, string replacement) const;
|
void warn_deprecated(const string& section, const string& key, string replacement = "") const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns true if a given parameter exists
|
* Returns true if a given parameter exists
|
||||||
@ -212,8 +209,6 @@ class config {
|
|||||||
return default_value;
|
return default_value;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ignore_key(const string& section, const string& key) const;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Attempt to load value using the deprecated key name. If successful show a
|
* Attempt to load value using the deprecated key name. If successful show a
|
||||||
* warning message. If it fails load the value using the new key and given
|
* warning message. If it fails load the value using the new key and given
|
||||||
@ -234,20 +229,6 @@ class config {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @see deprecated<T>
|
|
||||||
*/
|
|
||||||
template <typename T = string>
|
|
||||||
T deprecated_list(const string& section, const string& old, const string& newkey, const vector<T>& fallback) const {
|
|
||||||
try {
|
|
||||||
vector<T> value{get_list<T>(section, old)};
|
|
||||||
warn_deprecated(section, old, newkey);
|
|
||||||
return value;
|
|
||||||
} catch (const key_error& err) {
|
|
||||||
return get_list<T>(section, newkey, fallback);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void copy_inherited();
|
void copy_inherited();
|
||||||
|
|
||||||
|
@ -105,7 +105,7 @@ class config_parser {
|
|||||||
* @throws syntax_error If there was any kind of syntax error
|
* @throws syntax_error If there was any kind of syntax error
|
||||||
* @throws parser_error If aynthing else went wrong
|
* @throws parser_error If aynthing else went wrong
|
||||||
*/
|
*/
|
||||||
config::make_type parse(string barname);
|
config parse(string barname);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
/**
|
/**
|
||||||
@ -229,7 +229,7 @@ class config_parser {
|
|||||||
/**
|
/**
|
||||||
* @brief Absolute path to the main config file
|
* @brief Absolute path to the main config file
|
||||||
*/
|
*/
|
||||||
string m_config;
|
string m_config_file;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief List of all the lines in the config (with included files)
|
* @brief List of all the lines in the config (with included files)
|
||||||
|
@ -39,7 +39,7 @@ class controller : public signal_receiver<SIGN_PRIORITY_CONTROLLER, signals::eve
|
|||||||
signals::ipc::hook, signals::ui::button_press, signals::ui::update_background> {
|
signals::ipc::hook, signals::ui::button_press, signals::ui::update_background> {
|
||||||
public:
|
public:
|
||||||
using make_type = unique_ptr<controller>;
|
using make_type = unique_ptr<controller>;
|
||||||
static make_type make(bool has_ipc, eventloop::loop&);
|
static make_type make(bool has_ipc, eventloop::loop&, const config&);
|
||||||
|
|
||||||
explicit controller(connection&, signal_emitter&, const logger&, const config&, bool has_ipc, eventloop::loop&);
|
explicit controller(connection&, signal_emitter&, const logger&, const config&, bool has_ipc, eventloop::loop&);
|
||||||
~controller();
|
~controller();
|
||||||
|
@ -46,7 +46,7 @@ class renderer : public renderer_interface,
|
|||||||
public signal_receiver<SIGN_PRIORITY_RENDERER, signals::ui::request_snapshot> {
|
public signal_receiver<SIGN_PRIORITY_RENDERER, signals::ui::request_snapshot> {
|
||||||
public:
|
public:
|
||||||
using make_type = unique_ptr<renderer>;
|
using make_type = unique_ptr<renderer>;
|
||||||
static make_type make(const bar_settings& bar, tags::action_context& action_ctxt);
|
static make_type make(const bar_settings& bar, tags::action_context& action_ctxt, const config&);
|
||||||
|
|
||||||
explicit renderer(connection& conn, signal_emitter& sig, const config&, const logger& logger, const bar_settings& bar,
|
explicit renderer(connection& conn, signal_emitter& sig, const config&, const logger& logger, const bar_settings& bar,
|
||||||
background_manager& background_manager, tags::action_context& action_ctxt);
|
background_manager& background_manager, tags::action_context& action_ctxt);
|
||||||
|
@ -19,7 +19,7 @@ class signal_emitter;
|
|||||||
class screen : public xpp::event::sink<evt::map_notify, evt::randr_screen_change_notify> {
|
class screen : public xpp::event::sink<evt::map_notify, evt::randr_screen_change_notify> {
|
||||||
public:
|
public:
|
||||||
using make_type = unique_ptr<screen>;
|
using make_type = unique_ptr<screen>;
|
||||||
static make_type make();
|
static make_type make(const config&);
|
||||||
|
|
||||||
explicit screen(connection& conn, signal_emitter& emitter, const logger& logger, const config& conf);
|
explicit screen(connection& conn, signal_emitter& emitter, const logger& logger, const config& conf);
|
||||||
~screen();
|
~screen();
|
||||||
|
@ -20,7 +20,7 @@ namespace modules {
|
|||||||
|
|
||||||
class alsa_module : public event_module<alsa_module> {
|
class alsa_module : public event_module<alsa_module> {
|
||||||
public:
|
public:
|
||||||
explicit alsa_module(const bar_settings&, string);
|
explicit alsa_module(const bar_settings&, string, const config&);
|
||||||
|
|
||||||
void teardown();
|
void teardown();
|
||||||
bool has_event();
|
bool has_event();
|
||||||
|
@ -20,7 +20,7 @@ namespace modules {
|
|||||||
string get_output();
|
string get_output();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit backlight_module(const bar_settings&, string);
|
explicit backlight_module(const bar_settings&, string, const config&);
|
||||||
|
|
||||||
void idle();
|
void idle();
|
||||||
bool on_event(const inotify_event& event);
|
bool on_event(const inotify_event& event);
|
||||||
|
@ -46,7 +46,7 @@ namespace modules {
|
|||||||
using consumption_reader = mutex_wrapper<value_reader<string /* watts */>>;
|
using consumption_reader = mutex_wrapper<value_reader<string /* watts */>>;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit battery_module(const bar_settings&, string);
|
explicit battery_module(const bar_settings&, string, const config&);
|
||||||
|
|
||||||
void start() override;
|
void start() override;
|
||||||
void teardown();
|
void teardown();
|
||||||
|
@ -39,7 +39,7 @@ namespace modules {
|
|||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit bspwm_module(const bar_settings&, string);
|
explicit bspwm_module(const bar_settings&, string, const config&);
|
||||||
|
|
||||||
void stop() override;
|
void stop() override;
|
||||||
bool has_event();
|
bool has_event();
|
||||||
|
@ -7,7 +7,7 @@ POLYBAR_NS
|
|||||||
namespace modules {
|
namespace modules {
|
||||||
class counter_module : public timer_module<counter_module> {
|
class counter_module : public timer_module<counter_module> {
|
||||||
public:
|
public:
|
||||||
explicit counter_module(const bar_settings&, string);
|
explicit counter_module(const bar_settings&, string, const config&);
|
||||||
|
|
||||||
bool update();
|
bool update();
|
||||||
bool build(builder* builder, const string& tag) const;
|
bool build(builder* builder, const string& tag) const;
|
||||||
|
@ -20,7 +20,7 @@ namespace modules {
|
|||||||
|
|
||||||
class cpu_module : public timer_module<cpu_module> {
|
class cpu_module : public timer_module<cpu_module> {
|
||||||
public:
|
public:
|
||||||
explicit cpu_module(const bar_settings&, string);
|
explicit cpu_module(const bar_settings&, string, const config&);
|
||||||
|
|
||||||
bool update();
|
bool update();
|
||||||
string get_format() const;
|
string get_format() const;
|
||||||
|
@ -12,7 +12,7 @@ POLYBAR_NS
|
|||||||
namespace modules {
|
namespace modules {
|
||||||
class date_module : public timer_module<date_module> {
|
class date_module : public timer_module<date_module> {
|
||||||
public:
|
public:
|
||||||
explicit date_module(const bar_settings&, string);
|
explicit date_module(const bar_settings&, string, const config&);
|
||||||
|
|
||||||
bool update();
|
bool update();
|
||||||
bool build(builder* builder, const string& tag) const;
|
bool build(builder* builder, const string& tag) const;
|
||||||
|
@ -35,7 +35,7 @@ namespace modules {
|
|||||||
*/
|
*/
|
||||||
class fs_module : public timer_module<fs_module> {
|
class fs_module : public timer_module<fs_module> {
|
||||||
public:
|
public:
|
||||||
explicit fs_module(const bar_settings&, string);
|
explicit fs_module(const bar_settings&, string, const config&);
|
||||||
|
|
||||||
bool update();
|
bool update();
|
||||||
string get_format() const;
|
string get_format() const;
|
||||||
|
@ -14,7 +14,7 @@ namespace modules {
|
|||||||
*/
|
*/
|
||||||
class github_module : public timer_module<github_module> {
|
class github_module : public timer_module<github_module> {
|
||||||
public:
|
public:
|
||||||
explicit github_module(const bar_settings&, string);
|
explicit github_module(const bar_settings&, string, const config&);
|
||||||
|
|
||||||
bool update();
|
bool update();
|
||||||
bool build(builder* builder, const string& tag) const;
|
bool build(builder* builder, const string& tag) const;
|
||||||
|
@ -44,7 +44,7 @@ namespace modules {
|
|||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit i3_module(const bar_settings&, string);
|
explicit i3_module(const bar_settings&, string, const config&);
|
||||||
|
|
||||||
void stop() override;
|
void stop() override;
|
||||||
bool has_event();
|
bool has_event();
|
||||||
|
@ -24,7 +24,7 @@ namespace modules {
|
|||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit ipc_module(const bar_settings&, string);
|
explicit ipc_module(const bar_settings&, string, const config&);
|
||||||
|
|
||||||
void start() override;
|
void start() override;
|
||||||
void update();
|
void update();
|
||||||
|
@ -10,7 +10,7 @@ namespace modules {
|
|||||||
enum class memory_state { NORMAL = 0, WARN };
|
enum class memory_state { NORMAL = 0, WARN };
|
||||||
class memory_module : public timer_module<memory_module> {
|
class memory_module : public timer_module<memory_module> {
|
||||||
public:
|
public:
|
||||||
explicit memory_module(const bar_settings&, string);
|
explicit memory_module(const bar_settings&, string, const config&);
|
||||||
|
|
||||||
bool update();
|
bool update();
|
||||||
string get_format() const;
|
string get_format() const;
|
||||||
|
@ -17,7 +17,7 @@ namespace modules {
|
|||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit menu_module(const bar_settings&, string);
|
explicit menu_module(const bar_settings&, string, const config&);
|
||||||
|
|
||||||
bool build(builder* builder, const string& tag) const;
|
bool build(builder* builder, const string& tag) const;
|
||||||
void update() {}
|
void update() {}
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
#include <mutex>
|
#include <mutex>
|
||||||
|
|
||||||
#include "common.hpp"
|
#include "common.hpp"
|
||||||
|
#include "components/config.hpp"
|
||||||
#include "components/types.hpp"
|
#include "components/types.hpp"
|
||||||
#include "errors.hpp"
|
#include "errors.hpp"
|
||||||
#include "utils/concurrency.hpp"
|
#include "utils/concurrency.hpp"
|
||||||
@ -142,7 +143,7 @@ namespace modules {
|
|||||||
template <class Impl>
|
template <class Impl>
|
||||||
class module : public module_interface {
|
class module : public module_interface {
|
||||||
public:
|
public:
|
||||||
module(const bar_settings& bar, string name);
|
module(const bar_settings& bar, string name, const config&);
|
||||||
~module() noexcept;
|
~module() noexcept;
|
||||||
|
|
||||||
static constexpr auto EVENT_MODULE_TOGGLE = "module_toggle";
|
static constexpr auto EVENT_MODULE_TOGGLE = "module_toggle";
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
#include <cassert>
|
#include <cassert>
|
||||||
|
|
||||||
#include "components/builder.hpp"
|
#include "components/builder.hpp"
|
||||||
#include "components/config.hpp"
|
|
||||||
#include "components/logger.hpp"
|
#include "components/logger.hpp"
|
||||||
#include "events/signal.hpp"
|
#include "events/signal.hpp"
|
||||||
#include "events/signal_emitter.hpp"
|
#include "events/signal_emitter.hpp"
|
||||||
@ -16,11 +15,11 @@ namespace modules {
|
|||||||
// module<Impl> public {{{
|
// module<Impl> public {{{
|
||||||
|
|
||||||
template <typename Impl>
|
template <typename Impl>
|
||||||
module<Impl>::module(const bar_settings& bar, string name)
|
module<Impl>::module(const bar_settings& bar, string name, const config& conf)
|
||||||
: m_sig(signal_emitter::make())
|
: m_sig(signal_emitter::make())
|
||||||
, m_bar(bar)
|
, m_bar(bar)
|
||||||
, m_log(logger::make())
|
, m_log(logger::make())
|
||||||
, m_conf(config::make())
|
, m_conf(conf)
|
||||||
, m_router(make_unique<action_router>())
|
, m_router(make_unique<action_router>())
|
||||||
, m_name("module/" + name)
|
, m_name("module/" + name)
|
||||||
, m_name_raw(name)
|
, m_name_raw(name)
|
||||||
|
@ -17,8 +17,9 @@ namespace modules {
|
|||||||
* @param bar An instance of the @ref bar_settings
|
* @param bar An instance of the @ref bar_settings
|
||||||
* @param module_name The user-specified module name
|
* @param module_name The user-specified module name
|
||||||
* @param log A @ref logger instance
|
* @param log A @ref logger instance
|
||||||
|
* @param config A @ref config instance
|
||||||
*/
|
*/
|
||||||
module_t make_module(string&& type, const bar_settings& bar, string module_name, const logger& log);
|
module_t make_module(string&& type, const bar_settings& bar, string module_name, const logger& log, const config& config);
|
||||||
} // namespace modules
|
} // namespace modules
|
||||||
|
|
||||||
POLYBAR_NS_END
|
POLYBAR_NS_END
|
||||||
|
@ -13,7 +13,7 @@ using namespace mpd;
|
|||||||
namespace modules {
|
namespace modules {
|
||||||
class mpd_module : public event_module<mpd_module> {
|
class mpd_module : public event_module<mpd_module> {
|
||||||
public:
|
public:
|
||||||
explicit mpd_module(const bar_settings&, string);
|
explicit mpd_module(const bar_settings&, string, const config&);
|
||||||
|
|
||||||
void teardown();
|
void teardown();
|
||||||
inline bool connected() const;
|
inline bool connected() const;
|
||||||
|
@ -11,7 +11,7 @@ namespace modules {
|
|||||||
|
|
||||||
class network_module : public timer_module<network_module> {
|
class network_module : public timer_module<network_module> {
|
||||||
public:
|
public:
|
||||||
explicit network_module(const bar_settings&, string);
|
explicit network_module(const bar_settings&, string, const config&);
|
||||||
|
|
||||||
void teardown();
|
void teardown();
|
||||||
bool update();
|
bool update();
|
||||||
|
@ -13,7 +13,7 @@ namespace modules {
|
|||||||
|
|
||||||
class pulseaudio_module : public event_module<pulseaudio_module> {
|
class pulseaudio_module : public event_module<pulseaudio_module> {
|
||||||
public:
|
public:
|
||||||
explicit pulseaudio_module(const bar_settings&, string);
|
explicit pulseaudio_module(const bar_settings&, string, const config&);
|
||||||
|
|
||||||
void teardown();
|
void teardown();
|
||||||
bool has_event();
|
bool has_event();
|
||||||
|
@ -10,7 +10,7 @@ POLYBAR_NS
|
|||||||
namespace modules {
|
namespace modules {
|
||||||
class script_module : public module<script_module> {
|
class script_module : public module<script_module> {
|
||||||
public:
|
public:
|
||||||
explicit script_module(const bar_settings&, string);
|
explicit script_module(const bar_settings&, string, const config&);
|
||||||
|
|
||||||
void start() override;
|
void start() override;
|
||||||
void stop() override;
|
void stop() override;
|
||||||
|
@ -12,7 +12,7 @@ namespace modules {
|
|||||||
|
|
||||||
class temperature_module : public timer_module<temperature_module> {
|
class temperature_module : public timer_module<temperature_module> {
|
||||||
public:
|
public:
|
||||||
explicit temperature_module(const bar_settings&, string);
|
explicit temperature_module(const bar_settings&, string, const config&);
|
||||||
|
|
||||||
bool update();
|
bool update();
|
||||||
string get_format() const;
|
string get_format() const;
|
||||||
|
@ -7,7 +7,7 @@ POLYBAR_NS
|
|||||||
namespace modules {
|
namespace modules {
|
||||||
class text_module : public static_module<text_module> {
|
class text_module : public static_module<text_module> {
|
||||||
public:
|
public:
|
||||||
explicit text_module(const bar_settings&, string);
|
explicit text_module(const bar_settings&, string, const config&);
|
||||||
|
|
||||||
void update() {}
|
void update() {}
|
||||||
string get_format() const;
|
string get_format() const;
|
||||||
|
@ -9,7 +9,7 @@ POLYBAR_NS
|
|||||||
namespace modules {
|
namespace modules {
|
||||||
class tray_module : public static_module<tray_module> {
|
class tray_module : public static_module<tray_module> {
|
||||||
public:
|
public:
|
||||||
explicit tray_module(const bar_settings& bar_settings, string name_);
|
explicit tray_module(const bar_settings& bar_settings, string name_, const config&);
|
||||||
string get_format() const;
|
string get_format() const;
|
||||||
|
|
||||||
void start() override;
|
void start() override;
|
||||||
|
@ -11,7 +11,7 @@ namespace modules {
|
|||||||
#define DEFINE_UNSUPPORTED_MODULE(MODULE_NAME, MODULE_TYPE) \
|
#define DEFINE_UNSUPPORTED_MODULE(MODULE_NAME, MODULE_TYPE) \
|
||||||
class MODULE_NAME : public module_interface { \
|
class MODULE_NAME : public module_interface { \
|
||||||
public: \
|
public: \
|
||||||
MODULE_NAME(const bar_settings, string) { \
|
MODULE_NAME(const bar_settings, string, const config&) { \
|
||||||
throw application_error("No built-in support for '" + string{MODULE_TYPE} + "'"); \
|
throw application_error("No built-in support for '" + string{MODULE_TYPE} + "'"); \
|
||||||
} \
|
} \
|
||||||
static constexpr auto TYPE = MODULE_TYPE; \
|
static constexpr auto TYPE = MODULE_TYPE; \
|
||||||
|
@ -24,7 +24,7 @@ namespace modules {
|
|||||||
*/
|
*/
|
||||||
class xbacklight_module : public static_module<xbacklight_module>, public event_handler<evt::randr_notify> {
|
class xbacklight_module : public static_module<xbacklight_module>, public event_handler<evt::randr_notify> {
|
||||||
public:
|
public:
|
||||||
explicit xbacklight_module(const bar_settings& bar, string name_);
|
explicit xbacklight_module(const bar_settings& bar, string name_, const config&);
|
||||||
|
|
||||||
void update();
|
void update();
|
||||||
string get_output();
|
string get_output();
|
||||||
|
@ -21,7 +21,7 @@ namespace modules {
|
|||||||
: public static_module<xkeyboard_module>,
|
: public static_module<xkeyboard_module>,
|
||||||
public event_handler<evt::xkb_new_keyboard_notify, evt::xkb_state_notify, evt::xkb_indicator_state_notify> {
|
public event_handler<evt::xkb_new_keyboard_notify, evt::xkb_state_notify, evt::xkb_indicator_state_notify> {
|
||||||
public:
|
public:
|
||||||
explicit xkeyboard_module(const bar_settings& bar, string name_);
|
explicit xkeyboard_module(const bar_settings& bar, string name_, const config&);
|
||||||
|
|
||||||
string get_output();
|
string get_output();
|
||||||
void update();
|
void update();
|
||||||
|
@ -33,7 +33,7 @@ namespace modules {
|
|||||||
class xwindow_module : public static_module<xwindow_module>, public event_handler<evt::property_notify> {
|
class xwindow_module : public static_module<xwindow_module>, public event_handler<evt::property_notify> {
|
||||||
public:
|
public:
|
||||||
enum class state { NONE, ACTIVE, EMPTY };
|
enum class state { NONE, ACTIVE, EMPTY };
|
||||||
explicit xwindow_module(const bar_settings&, string);
|
explicit xwindow_module(const bar_settings&, string, const config&);
|
||||||
|
|
||||||
void update();
|
void update();
|
||||||
bool build(builder* builder, const string& tag) const;
|
bool build(builder* builder, const string& tag) const;
|
||||||
|
@ -44,7 +44,7 @@ namespace modules {
|
|||||||
*/
|
*/
|
||||||
class xworkspaces_module : public static_module<xworkspaces_module>, public event_handler<evt::property_notify> {
|
class xworkspaces_module : public static_module<xworkspaces_module>, public event_handler<evt::property_notify> {
|
||||||
public:
|
public:
|
||||||
explicit xworkspaces_module(const bar_settings& bar, string name_);
|
explicit xworkspaces_module(const bar_settings& bar, string name_, const config&);
|
||||||
|
|
||||||
void update();
|
void update();
|
||||||
string get_output();
|
string get_output();
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
#include "cairo/context.hpp"
|
#include "cairo/context.hpp"
|
||||||
#include "cairo/surface.hpp"
|
#include "cairo/surface.hpp"
|
||||||
#include "common.hpp"
|
#include "common.hpp"
|
||||||
|
#include "components/config.hpp"
|
||||||
#include "components/logger.hpp"
|
#include "components/logger.hpp"
|
||||||
#include "components/types.hpp"
|
#include "components/types.hpp"
|
||||||
#include "events/signal_fwd.hpp"
|
#include "events/signal_fwd.hpp"
|
||||||
@ -134,7 +135,7 @@ class tray_manager
|
|||||||
|
|
||||||
const tray_settings settings() const;
|
const tray_settings settings() const;
|
||||||
|
|
||||||
void setup(const string& tray_module_name);
|
void setup(const config&, const string& tray_module_name);
|
||||||
void activate();
|
void activate();
|
||||||
void activate_delayed(chrono::duration<double, std::milli> delay = 1s);
|
void activate_delayed(chrono::duration<double, std::milli> delay = 1s);
|
||||||
void deactivate(bool clear_selection = true);
|
void deactivate(bool clear_selection = true);
|
||||||
|
@ -38,17 +38,17 @@ using namespace eventloop;
|
|||||||
/**
|
/**
|
||||||
* Create instance
|
* Create instance
|
||||||
*/
|
*/
|
||||||
bar::make_type bar::make(loop& loop, bool only_initialize_values) {
|
bar::make_type bar::make(loop& loop, const config& config, bool only_initialize_values) {
|
||||||
auto action_ctxt = make_unique<tags::action_context>();
|
auto action_ctxt = make_unique<tags::action_context>();
|
||||||
|
|
||||||
// clang-format off
|
// clang-format off
|
||||||
return std::make_unique<bar>(
|
return std::make_unique<bar>(
|
||||||
connection::make(),
|
connection::make(),
|
||||||
signal_emitter::make(),
|
signal_emitter::make(),
|
||||||
config::make(),
|
config,
|
||||||
logger::make(),
|
logger::make(),
|
||||||
loop,
|
loop,
|
||||||
screen::make(),
|
screen::make(config),
|
||||||
tags::dispatch::make(*action_ctxt),
|
tags::dispatch::make(*action_ctxt),
|
||||||
std::move(action_ctxt),
|
std::move(action_ctxt),
|
||||||
only_initialize_values);
|
only_initialize_values);
|
||||||
@ -889,7 +889,7 @@ void bar::handle(const evt::configure_notify& evt) {
|
|||||||
|
|
||||||
void bar::start(const string& tray_module_name) {
|
void bar::start(const string& tray_module_name) {
|
||||||
m_log.trace("bar: Create renderer");
|
m_log.trace("bar: Create renderer");
|
||||||
m_renderer = renderer::make(m_opts, *m_action_ctxt);
|
m_renderer = renderer::make(m_opts, *m_action_ctxt, m_conf);
|
||||||
|
|
||||||
m_opts.x_data.window = m_renderer->window();
|
m_opts.x_data.window = m_renderer->window();
|
||||||
m_opts.x_data.visual = m_renderer->visual();
|
m_opts.x_data.visual = m_renderer->visual();
|
||||||
@ -918,7 +918,7 @@ void bar::start(const string& tray_module_name) {
|
|||||||
m_renderer->end();
|
m_renderer->end();
|
||||||
|
|
||||||
m_log.trace("bar: Setup tray manager");
|
m_log.trace("bar: Setup tray manager");
|
||||||
m_tray->setup(tray_module_name);
|
m_tray->setup(m_conf, tray_module_name);
|
||||||
|
|
||||||
if (m_tray->settings().tray_position == legacy_tray::tray_postition::MODULE ||
|
if (m_tray->settings().tray_position == legacy_tray::tray_postition::MODULE ||
|
||||||
m_tray->settings().tray_position == legacy_tray::tray_postition::NONE) {
|
m_tray->settings().tray_position == legacy_tray::tray_postition::NONE) {
|
||||||
|
@ -16,13 +16,6 @@ POLYBAR_NS
|
|||||||
|
|
||||||
namespace chrono = std::chrono;
|
namespace chrono = std::chrono;
|
||||||
|
|
||||||
/**
|
|
||||||
* Create instance
|
|
||||||
*/
|
|
||||||
config::make_type config::make(string path, string bar) {
|
|
||||||
return *factory_util::singleton<std::remove_reference_t<config::make_type>>(logger::make(), move(path), move(bar));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get path of loaded file
|
* Get path of loaded file
|
||||||
*/
|
*/
|
||||||
@ -63,24 +56,20 @@ file_list config::get_included_files() const {
|
|||||||
return m_included;
|
return m_included;
|
||||||
}
|
}
|
||||||
|
|
||||||
void config::ignore_key(const string& section, const string& key) const {
|
|
||||||
if (has(section, key)) {
|
|
||||||
m_log.warn(
|
|
||||||
"The config parameter '%s.%s' is deprecated, it will be removed in the future. Please remove it from your "
|
|
||||||
"config",
|
|
||||||
section, key);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Print a deprecation warning if the given parameter is set
|
* Print a deprecation warning if the given parameter is set
|
||||||
*/
|
*/
|
||||||
void config::warn_deprecated(const string& section, const string& key, string replacement) const {
|
void config::warn_deprecated(const string& section, const string& key, string replacement) const {
|
||||||
try {
|
if (has(section, key)) {
|
||||||
auto value = get<string>(section, key);
|
if (replacement.empty()) {
|
||||||
|
m_log.warn(
|
||||||
|
"The config parameter '%s.%s' is deprecated, it will be removed in the future. Please remove it from your "
|
||||||
|
"config",
|
||||||
|
section, key);
|
||||||
|
} else {
|
||||||
m_log.warn(
|
m_log.warn(
|
||||||
"The config parameter `%s.%s` is deprecated, use `%s.%s` instead.", section, key, section, move(replacement));
|
"The config parameter `%s.%s` is deprecated, use `%s.%s` instead.", section, key, section, move(replacement));
|
||||||
} catch (const key_error& err) {
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11,12 +11,12 @@
|
|||||||
POLYBAR_NS
|
POLYBAR_NS
|
||||||
|
|
||||||
config_parser::config_parser(const logger& logger, string&& file)
|
config_parser::config_parser(const logger& logger, string&& file)
|
||||||
: m_log(logger), m_config(file_util::expand(file)) {}
|
: m_log(logger), m_config_file(file_util::expand(file)) {}
|
||||||
|
|
||||||
config::make_type config_parser::parse(string barname) {
|
config config_parser::parse(string barname) {
|
||||||
m_log.notice("Parsing config file: %s", m_config);
|
m_log.notice("Parsing config file: %s", m_config_file);
|
||||||
|
|
||||||
parse_file(m_config, {});
|
parse_file(m_config_file, {});
|
||||||
|
|
||||||
sectionmap_t sections = create_sectionmap();
|
sectionmap_t sections = create_sectionmap();
|
||||||
|
|
||||||
@ -45,18 +45,15 @@ config::make_type config_parser::parse(string barname) {
|
|||||||
* second element onwards for the included list
|
* second element onwards for the included list
|
||||||
*/
|
*/
|
||||||
file_list included(m_files.begin() + 1, m_files.end());
|
file_list included(m_files.begin() + 1, m_files.end());
|
||||||
config::make_type result = config::make(m_config, barname);
|
config conf(m_log, move(m_config_file), move(barname));
|
||||||
|
|
||||||
// Cast to non-const to set sections, included and xrm
|
conf.set_sections(move(sections));
|
||||||
config& m_conf = const_cast<config&>(result);
|
conf.set_included(move(included));
|
||||||
|
|
||||||
m_conf.set_sections(move(sections));
|
|
||||||
m_conf.set_included(move(included));
|
|
||||||
if (use_xrm) {
|
if (use_xrm) {
|
||||||
m_conf.use_xrm();
|
conf.use_xrm();
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return conf;
|
||||||
}
|
}
|
||||||
|
|
||||||
sectionmap_t config_parser::create_sectionmap() {
|
sectionmap_t config_parser::create_sectionmap() {
|
||||||
|
@ -31,9 +31,9 @@ using namespace modules;
|
|||||||
/**
|
/**
|
||||||
* Build controller instance
|
* Build controller instance
|
||||||
*/
|
*/
|
||||||
controller::make_type controller::make(bool has_ipc, loop& loop) {
|
controller::make_type controller::make(bool has_ipc, loop& loop, const config& config) {
|
||||||
return std::make_unique<controller>(
|
return std::make_unique<controller>(
|
||||||
connection::make(), signal_emitter::make(), logger::make(), config::make(), has_ipc, loop);
|
connection::make(), signal_emitter::make(), logger::make(), config, has_ipc, loop);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -46,13 +46,13 @@ controller::controller(
|
|||||||
, m_log(logger)
|
, m_log(logger)
|
||||||
, m_conf(config)
|
, m_conf(config)
|
||||||
, m_loop(loop)
|
, m_loop(loop)
|
||||||
, m_bar(bar::make(m_loop))
|
, m_bar(bar::make(m_loop, config))
|
||||||
, m_has_ipc(has_ipc) {
|
, m_has_ipc(has_ipc) {
|
||||||
m_conf.ignore_key("settings", "throttle-input-for");
|
m_conf.warn_deprecated("settings", "throttle-input-for");
|
||||||
m_conf.ignore_key("settings", "throttle-output");
|
m_conf.warn_deprecated("settings", "throttle-output");
|
||||||
m_conf.ignore_key("settings", "throttle-output-for");
|
m_conf.warn_deprecated("settings", "throttle-output-for");
|
||||||
m_conf.ignore_key("settings", "eventqueue-swallow");
|
m_conf.warn_deprecated("settings", "eventqueue-swallow");
|
||||||
m_conf.ignore_key("settings", "eventqueue-swallow-time");
|
m_conf.warn_deprecated("settings", "eventqueue-swallow-time");
|
||||||
|
|
||||||
m_log.trace("controller: Setup user-defined modules");
|
m_log.trace("controller: Setup user-defined modules");
|
||||||
size_t created_modules{0};
|
size_t created_modules{0};
|
||||||
@ -630,7 +630,7 @@ size_t controller::setup_modules(alignment align) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
m_log.notice("Loading module '%s' of type '%s'", module_name, type);
|
m_log.notice("Loading module '%s' of type '%s'", module_name, type);
|
||||||
module_t module = modules::make_module(move(type), m_bar->settings(), module_name, m_log);
|
module_t module = modules::make_module(move(type), m_bar->settings(), module_name, m_log, m_conf);
|
||||||
|
|
||||||
m_modules.push_back(module);
|
m_modules.push_back(module);
|
||||||
m_blocks[align].push_back(module);
|
m_blocks[align].push_back(module);
|
||||||
|
@ -21,12 +21,12 @@ static constexpr double BLOCK_GAP{20.0};
|
|||||||
/**
|
/**
|
||||||
* Create instance
|
* Create instance
|
||||||
*/
|
*/
|
||||||
renderer::make_type renderer::make(const bar_settings& bar, tags::action_context& action_ctxt) {
|
renderer::make_type renderer::make(const bar_settings& bar, tags::action_context& action_ctxt, const config& conf) {
|
||||||
// clang-format off
|
// clang-format off
|
||||||
return std::make_unique<renderer>(
|
return std::make_unique<renderer>(
|
||||||
connection::make(),
|
connection::make(),
|
||||||
signal_emitter::make(),
|
signal_emitter::make(),
|
||||||
config::make(),
|
conf,
|
||||||
logger::make(),
|
logger::make(),
|
||||||
forward<decltype(bar)>(bar),
|
forward<decltype(bar)>(bar),
|
||||||
background_manager::make(),
|
background_manager::make(),
|
||||||
|
@ -22,8 +22,8 @@ using namespace signals::eventqueue;
|
|||||||
/**
|
/**
|
||||||
* Create instance
|
* Create instance
|
||||||
*/
|
*/
|
||||||
screen::make_type screen::make() {
|
screen::make_type screen::make(const config& config) {
|
||||||
return std::make_unique<screen>(connection::make(), signal_emitter::make(), logger::make(), config::make());
|
return std::make_unique<screen>(connection::make(), signal_emitter::make(), logger::make(), config);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -128,7 +128,7 @@ int main(int argc, char** argv) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
config_parser parser{logger, move(confpath)};
|
config_parser parser{logger, move(confpath)};
|
||||||
config::make_type conf = parser.parse(move(barname));
|
config conf = parser.parse(move(barname));
|
||||||
|
|
||||||
//==================================================
|
//==================================================
|
||||||
// Dump requested data
|
// Dump requested data
|
||||||
@ -138,7 +138,7 @@ int main(int argc, char** argv) {
|
|||||||
return EXIT_SUCCESS;
|
return EXIT_SUCCESS;
|
||||||
}
|
}
|
||||||
if (cli->has("print-wmname")) {
|
if (cli->has("print-wmname")) {
|
||||||
printf("%s\n", bar::make(loop, true)->settings().wmname.c_str());
|
printf("%s\n", bar::make(loop, conf, true)->settings().wmname.c_str());
|
||||||
return EXIT_SUCCESS;
|
return EXIT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -156,7 +156,7 @@ int main(int argc, char** argv) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
auto ctrl = controller::make((bool)ipc, loop);
|
auto ctrl = controller::make((bool)ipc, loop, conf);
|
||||||
|
|
||||||
if (!ctrl->run(cli->has("stdout"), cli->get("png"), cli->has("reload"))) {
|
if (!ctrl->run(cli->has("stdout"), cli->get("png"), cli->has("reload"))) {
|
||||||
reload = true;
|
reload = true;
|
||||||
|
@ -17,7 +17,8 @@ using namespace alsa;
|
|||||||
namespace modules {
|
namespace modules {
|
||||||
template class module<alsa_module>;
|
template class module<alsa_module>;
|
||||||
|
|
||||||
alsa_module::alsa_module(const bar_settings& bar, string name_) : event_module<alsa_module>(bar, move(name_)) {
|
alsa_module::alsa_module(const bar_settings& bar, string name_, const config& config)
|
||||||
|
: event_module<alsa_module>(bar, move(name_), config) {
|
||||||
if (m_handle_events) {
|
if (m_handle_events) {
|
||||||
m_router->register_action(EVENT_DEC, [this]() { action_dec(); });
|
m_router->register_action(EVENT_DEC, [this]() { action_dec(); });
|
||||||
m_router->register_action(EVENT_INC, [this]() { action_inc(); });
|
m_router->register_action(EVENT_INC, [this]() { action_inc(); });
|
||||||
|
@ -23,8 +23,8 @@ namespace modules {
|
|||||||
return std::strtof(file_util::contents(m_path).c_str(), nullptr);
|
return std::strtof(file_util::contents(m_path).c_str(), nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
backlight_module::backlight_module(const bar_settings& bar, string name_)
|
backlight_module::backlight_module(const bar_settings& bar, string name_, const config& config)
|
||||||
: inotify_module<backlight_module>(bar, move(name_)) {
|
: inotify_module<backlight_module>(bar, move(name_), config) {
|
||||||
m_router->register_action(EVENT_DEC, [this]() { action_dec(); });
|
m_router->register_action(EVENT_DEC, [this]() { action_dec(); });
|
||||||
m_router->register_action(EVENT_INC, [this]() { action_inc(); });
|
m_router->register_action(EVENT_INC, [this]() { action_inc(); });
|
||||||
auto card = m_conf.get(name(), "card", ""s);
|
auto card = m_conf.get(name(), "card", ""s);
|
||||||
|
@ -23,8 +23,8 @@ namespace modules {
|
|||||||
/**
|
/**
|
||||||
* Bootstrap module by setting up required components
|
* Bootstrap module by setting up required components
|
||||||
*/
|
*/
|
||||||
battery_module::battery_module(const bar_settings& bar, string name_)
|
battery_module::battery_module(const bar_settings& bar, string name_, const config& config)
|
||||||
: inotify_module<battery_module>(bar, move(name_)) {
|
: inotify_module<battery_module>(bar, move(name_), config) {
|
||||||
// Load configuration values
|
// Load configuration values
|
||||||
m_fullat = std::min(m_conf.get(name(), "full-at", m_fullat), 100);
|
m_fullat = std::min(m_conf.get(name(), "full-at", m_fullat), 100);
|
||||||
m_lowat = std::max(m_conf.get(name(), "low-at", m_lowat), 0);
|
m_lowat = std::max(m_conf.get(name(), "low-at", m_lowat), 0);
|
||||||
|
@ -39,7 +39,8 @@ namespace {
|
|||||||
namespace modules {
|
namespace modules {
|
||||||
template class module<bspwm_module>;
|
template class module<bspwm_module>;
|
||||||
|
|
||||||
bspwm_module::bspwm_module(const bar_settings& bar, string name_) : event_module<bspwm_module>(bar, move(name_)) {
|
bspwm_module::bspwm_module(const bar_settings& bar, string name_, const config& config)
|
||||||
|
: event_module<bspwm_module>(bar, move(name_), config) {
|
||||||
m_router->register_action_with_data(EVENT_FOCUS, [this](const std::string& data) { action_focus(data); });
|
m_router->register_action_with_data(EVENT_FOCUS, [this](const std::string& data) { action_focus(data); });
|
||||||
m_router->register_action(EVENT_NEXT, [this]() { action_next(); });
|
m_router->register_action(EVENT_NEXT, [this]() { action_next(); });
|
||||||
m_router->register_action(EVENT_PREV, [this]() { action_prev(); });
|
m_router->register_action(EVENT_PREV, [this]() { action_prev(); });
|
||||||
|
@ -7,8 +7,8 @@ POLYBAR_NS
|
|||||||
namespace modules {
|
namespace modules {
|
||||||
template class module<counter_module>;
|
template class module<counter_module>;
|
||||||
|
|
||||||
counter_module::counter_module(const bar_settings& bar, string name_)
|
counter_module::counter_module(const bar_settings& bar, string name_, const config& config)
|
||||||
: timer_module<counter_module>(bar, move(name_)) {
|
: timer_module<counter_module>(bar, move(name_), config) {
|
||||||
set_interval(1s);
|
set_interval(1s);
|
||||||
m_formatter->add(DEFAULT_FORMAT, TAG_COUNTER, {TAG_COUNTER});
|
m_formatter->add(DEFAULT_FORMAT, TAG_COUNTER, {TAG_COUNTER});
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,8 @@ POLYBAR_NS
|
|||||||
namespace modules {
|
namespace modules {
|
||||||
template class module<cpu_module>;
|
template class module<cpu_module>;
|
||||||
|
|
||||||
cpu_module::cpu_module(const bar_settings& bar, string name_) : timer_module<cpu_module>(bar, move(name_)) {
|
cpu_module::cpu_module(const bar_settings& bar, string name_, const config& config)
|
||||||
|
: timer_module<cpu_module>(bar, move(name_), config) {
|
||||||
set_interval(1s);
|
set_interval(1s);
|
||||||
m_totalwarn = m_conf.get(name(), "warn-percentage", m_totalwarn);
|
m_totalwarn = m_conf.get(name(), "warn-percentage", m_totalwarn);
|
||||||
m_ramp_padding = m_conf.get(name(), "ramp-coreload-spacing", m_ramp_padding);
|
m_ramp_padding = m_conf.get(name(), "ramp-coreload-spacing", m_ramp_padding);
|
||||||
|
@ -8,7 +8,8 @@ POLYBAR_NS
|
|||||||
namespace modules {
|
namespace modules {
|
||||||
template class module<date_module>;
|
template class module<date_module>;
|
||||||
|
|
||||||
date_module::date_module(const bar_settings& bar, string name_) : timer_module<date_module>(bar, move(name_)) {
|
date_module::date_module(const bar_settings& bar, string name_, const config& config)
|
||||||
|
: timer_module<date_module>(bar, move(name_), config) {
|
||||||
if (!m_bar.locale.empty()) {
|
if (!m_bar.locale.empty()) {
|
||||||
datetime_stream.imbue(std::locale(m_bar.locale.c_str()));
|
datetime_stream.imbue(std::locale(m_bar.locale.c_str()));
|
||||||
}
|
}
|
||||||
|
@ -26,7 +26,8 @@ namespace modules {
|
|||||||
* Bootstrap the module by reading config values and
|
* Bootstrap the module by reading config values and
|
||||||
* setting up required components
|
* setting up required components
|
||||||
*/
|
*/
|
||||||
fs_module::fs_module(const bar_settings& bar, string name_) : timer_module<fs_module>(bar, move(name_)) {
|
fs_module::fs_module(const bar_settings& bar, string name_, const config& config)
|
||||||
|
: timer_module<fs_module>(bar, move(name_), config) {
|
||||||
m_mountpoints = m_conf.get_list(name(), "mount", {});
|
m_mountpoints = m_conf.get_list(name(), "mount", {});
|
||||||
if (m_mountpoints.empty()) {
|
if (m_mountpoints.empty()) {
|
||||||
m_log.info("%s: No mountpoints specified, using fallback \"/\"", name());
|
m_log.info("%s: No mountpoints specified, using fallback \"/\"", name());
|
||||||
|
@ -14,7 +14,8 @@ namespace modules {
|
|||||||
/**
|
/**
|
||||||
* Construct module
|
* Construct module
|
||||||
*/
|
*/
|
||||||
github_module::github_module(const bar_settings& bar, string name_) : timer_module<github_module>(bar, move(name_)) {
|
github_module::github_module(const bar_settings& bar, string name_, const config& config)
|
||||||
|
: timer_module<github_module>(bar, move(name_), config) {
|
||||||
m_accesstoken = m_conf.get(name(), "token");
|
m_accesstoken = m_conf.get(name(), "token");
|
||||||
m_user = m_conf.get(name(), "user", ""s);
|
m_user = m_conf.get(name(), "user", ""s);
|
||||||
m_api_url = m_conf.get(name(), "api-url", "https://api.github.com/"s);
|
m_api_url = m_conf.get(name(), "api-url", "https://api.github.com/"s);
|
||||||
|
@ -12,7 +12,8 @@ POLYBAR_NS
|
|||||||
namespace modules {
|
namespace modules {
|
||||||
template class module<i3_module>;
|
template class module<i3_module>;
|
||||||
|
|
||||||
i3_module::i3_module(const bar_settings& bar, string name_) : event_module<i3_module>(bar, move(name_)) {
|
i3_module::i3_module(const bar_settings& bar, string name_, const config& conf)
|
||||||
|
: event_module<i3_module>(bar, move(name_), conf) {
|
||||||
m_router->register_action_with_data(EVENT_FOCUS, [this](const std::string& data) { action_focus(data); });
|
m_router->register_action_with_data(EVENT_FOCUS, [this](const std::string& data) { action_focus(data); });
|
||||||
m_router->register_action(EVENT_NEXT, [this]() { action_next(); });
|
m_router->register_action(EVENT_NEXT, [this]() { action_next(); });
|
||||||
m_router->register_action(EVENT_PREV, [this]() { action_prev(); });
|
m_router->register_action(EVENT_PREV, [this]() { action_prev(); });
|
||||||
|
@ -14,7 +14,8 @@ namespace modules {
|
|||||||
* Load user-defined ipc hooks and
|
* Load user-defined ipc hooks and
|
||||||
* create formatting tags
|
* create formatting tags
|
||||||
*/
|
*/
|
||||||
ipc_module::ipc_module(const bar_settings& bar, string name_) : module<ipc_module>(bar, move(name_)) {
|
ipc_module::ipc_module(const bar_settings& bar, string name_, const config& config)
|
||||||
|
: module<ipc_module>(bar, move(name_), config) {
|
||||||
m_router->register_action_with_data(EVENT_SEND, [this](const std::string& data) { action_send(data); });
|
m_router->register_action_with_data(EVENT_SEND, [this](const std::string& data) { action_send(data); });
|
||||||
m_router->register_action_with_data(EVENT_HOOK, [this](const std::string& data) { action_hook(data); });
|
m_router->register_action_with_data(EVENT_HOOK, [this](const std::string& data) { action_hook(data); });
|
||||||
m_router->register_action(EVENT_NEXT, [this]() { action_next(); });
|
m_router->register_action(EVENT_NEXT, [this]() { action_next(); });
|
||||||
|
@ -15,7 +15,8 @@ POLYBAR_NS
|
|||||||
namespace modules {
|
namespace modules {
|
||||||
template class module<memory_module>;
|
template class module<memory_module>;
|
||||||
|
|
||||||
memory_module::memory_module(const bar_settings& bar, string name_) : timer_module<memory_module>(bar, move(name_)) {
|
memory_module::memory_module(const bar_settings& bar, string name_, const config& config)
|
||||||
|
: timer_module<memory_module>(bar, move(name_), config) {
|
||||||
set_interval(1s);
|
set_interval(1s);
|
||||||
m_perc_memused_warn = m_conf.get(name(), "warn-percentage", 90);
|
m_perc_memused_warn = m_conf.get(name(), "warn-percentage", 90);
|
||||||
|
|
||||||
|
@ -11,7 +11,8 @@ POLYBAR_NS
|
|||||||
namespace modules {
|
namespace modules {
|
||||||
template class module<menu_module>;
|
template class module<menu_module>;
|
||||||
|
|
||||||
menu_module::menu_module(const bar_settings& bar, string name_) : static_module<menu_module>(bar, move(name_)) {
|
menu_module::menu_module(const bar_settings& bar, string name_, const config& config)
|
||||||
|
: static_module<menu_module>(bar, move(name_), config) {
|
||||||
m_expand_right = m_conf.get(name(), "expand-right", m_expand_right);
|
m_expand_right = m_conf.get(name(), "expand-right", m_expand_right);
|
||||||
|
|
||||||
m_router->register_action_with_data(EVENT_OPEN, [this](const std::string& data) { action_open(data); });
|
m_router->register_action_with_data(EVENT_OPEN, [this](const std::string& data) { action_open(data); });
|
||||||
|
@ -9,7 +9,7 @@ namespace modules {
|
|||||||
/**
|
/**
|
||||||
* Function pointer for creating a module.
|
* Function pointer for creating a module.
|
||||||
*/
|
*/
|
||||||
using factory_fun = module_t (*)(const bar_settings&, string&&);
|
using factory_fun = module_t (*)(const bar_settings&, string&&, const config&);
|
||||||
using factory_map = map<string, factory_fun>;
|
using factory_map = map<string, factory_fun>;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -19,8 +19,8 @@ namespace modules {
|
|||||||
*/
|
*/
|
||||||
template <typename M>
|
template <typename M>
|
||||||
static constexpr factory_fun get_factory() {
|
static constexpr factory_fun get_factory() {
|
||||||
return [](const bar_settings& bar, string&& module_name) -> module_t {
|
return [](const bar_settings& bar, string&& module_name, const config& config) -> module_t {
|
||||||
return make_shared<M>(bar, move(module_name));
|
return make_shared<M>(bar, move(module_name), config);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -66,7 +66,7 @@ namespace modules {
|
|||||||
map_entry<ipc_module>(),
|
map_entry<ipc_module>(),
|
||||||
};
|
};
|
||||||
|
|
||||||
module_t make_module(string&& type, const bar_settings& bar, string module_name, const logger& log) {
|
module_t make_module(string&& type, const bar_settings& bar, string module_name, const logger& log, const config& config) {
|
||||||
string actual_type = type;
|
string actual_type = type;
|
||||||
|
|
||||||
if (type == "internal/volume") {
|
if (type == "internal/volume") {
|
||||||
@ -76,7 +76,7 @@ namespace modules {
|
|||||||
|
|
||||||
auto it = factories.find(actual_type);
|
auto it = factories.find(actual_type);
|
||||||
if (it != factories.end()) {
|
if (it != factories.end()) {
|
||||||
return it->second(bar, std::move(module_name));
|
return it->second(bar, std::move(module_name), config);
|
||||||
} else {
|
} else {
|
||||||
throw application_error("Unknown module: " + type);
|
throw application_error("Unknown module: " + type);
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,8 @@ POLYBAR_NS
|
|||||||
namespace modules {
|
namespace modules {
|
||||||
template class module<mpd_module>;
|
template class module<mpd_module>;
|
||||||
|
|
||||||
mpd_module::mpd_module(const bar_settings& bar, string name_) : event_module<mpd_module>(bar, move(name_)) {
|
mpd_module::mpd_module(const bar_settings& bar, string name_, const config& config)
|
||||||
|
: event_module<mpd_module>(bar, move(name_), config) {
|
||||||
m_router->register_action(EVENT_PLAY, [this]() { action_play(); });
|
m_router->register_action(EVENT_PLAY, [this]() { action_play(); });
|
||||||
m_router->register_action(EVENT_PAUSE, [this]() { action_pause(); });
|
m_router->register_action(EVENT_PAUSE, [this]() { action_pause(); });
|
||||||
m_router->register_action(EVENT_STOP, [this]() { action_stop(); });
|
m_router->register_action(EVENT_STOP, [this]() { action_stop(); });
|
||||||
|
@ -10,8 +10,8 @@ POLYBAR_NS
|
|||||||
namespace modules {
|
namespace modules {
|
||||||
template class module<network_module>;
|
template class module<network_module>;
|
||||||
|
|
||||||
network_module::network_module(const bar_settings& bar, string name_)
|
network_module::network_module(const bar_settings& bar, string name_, const config& config)
|
||||||
: timer_module<network_module>(bar, move(name_)) {
|
: timer_module<network_module>(bar, move(name_), config) {
|
||||||
// Load configuration values
|
// Load configuration values
|
||||||
m_interface = m_conf.get(name(), "interface", m_interface);
|
m_interface = m_conf.get(name(), "interface", m_interface);
|
||||||
|
|
||||||
|
@ -13,8 +13,8 @@ POLYBAR_NS
|
|||||||
namespace modules {
|
namespace modules {
|
||||||
template class module<pulseaudio_module>;
|
template class module<pulseaudio_module>;
|
||||||
|
|
||||||
pulseaudio_module::pulseaudio_module(const bar_settings& bar, string name_)
|
pulseaudio_module::pulseaudio_module(const bar_settings& bar, string name_, const config& config)
|
||||||
: event_module<pulseaudio_module>(bar, move(name_)) {
|
: event_module<pulseaudio_module>(bar, move(name_), config) {
|
||||||
if (m_handle_events) {
|
if (m_handle_events) {
|
||||||
m_router->register_action(EVENT_DEC, [this]() { action_dec(); });
|
m_router->register_action(EVENT_DEC, [this]() { action_dec(); });
|
||||||
m_router->register_action(EVENT_INC, [this]() { action_inc(); });
|
m_router->register_action(EVENT_INC, [this]() { action_inc(); });
|
||||||
|
@ -6,8 +6,8 @@
|
|||||||
POLYBAR_NS
|
POLYBAR_NS
|
||||||
|
|
||||||
namespace modules {
|
namespace modules {
|
||||||
script_module::script_module(const bar_settings& bar, string name_)
|
script_module::script_module(const bar_settings& bar, string name_, const config& config)
|
||||||
: module<script_module>(bar, move(name_))
|
: module<script_module>(bar, move(name_), config)
|
||||||
, m_tail(m_conf.get(name(), "tail", false))
|
, m_tail(m_conf.get(name(), "tail", false))
|
||||||
, m_interval_success(m_conf.get<script_runner::interval>(name(), "interval", m_tail ? 0s : 5s))
|
, m_interval_success(m_conf.get<script_runner::interval>(name(), "interval", m_tail ? 0s : 5s))
|
||||||
, m_interval_fail(m_conf.get<script_runner::interval>(name(), "interval-fail", m_interval_success))
|
, m_interval_fail(m_conf.get<script_runner::interval>(name(), "interval-fail", m_interval_success))
|
||||||
|
@ -13,8 +13,8 @@ POLYBAR_NS
|
|||||||
namespace modules {
|
namespace modules {
|
||||||
template class module<temperature_module>;
|
template class module<temperature_module>;
|
||||||
|
|
||||||
temperature_module::temperature_module(const bar_settings& bar, string name_)
|
temperature_module::temperature_module(const bar_settings& bar, string name_, const config& config)
|
||||||
: timer_module<temperature_module>(bar, move(name_)) {
|
: timer_module<temperature_module>(bar, move(name_), config) {
|
||||||
m_zone = m_conf.get(name(), "thermal-zone", 0);
|
m_zone = m_conf.get(name(), "thermal-zone", 0);
|
||||||
m_zone_type = m_conf.get(name(), "zone-type", ""s);
|
m_zone_type = m_conf.get(name(), "zone-type", ""s);
|
||||||
m_path = m_conf.get(name(), "hwmon-path", ""s);
|
m_path = m_conf.get(name(), "hwmon-path", ""s);
|
||||||
|
@ -8,7 +8,8 @@ POLYBAR_NS
|
|||||||
namespace modules {
|
namespace modules {
|
||||||
template class module<text_module>;
|
template class module<text_module>;
|
||||||
|
|
||||||
text_module::text_module(const bar_settings& bar, string name_) : static_module<text_module>(bar, move(name_)) {
|
text_module::text_module(const bar_settings& bar, string name_, const config& config)
|
||||||
|
: static_module<text_module>(bar, move(name_), config) {
|
||||||
m_formatter->add(DEFAULT_FORMAT, TAG_LABEL, {TAG_LABEL});
|
m_formatter->add(DEFAULT_FORMAT, TAG_LABEL, {TAG_LABEL});
|
||||||
m_formatter->add_optional("content", {});
|
m_formatter->add_optional("content", {});
|
||||||
|
|
||||||
|
@ -7,8 +7,8 @@ POLYBAR_NS
|
|||||||
namespace modules {
|
namespace modules {
|
||||||
template class module<tray_module>;
|
template class module<tray_module>;
|
||||||
|
|
||||||
tray_module::tray_module(const bar_settings& bar_settings, string name_)
|
tray_module::tray_module(const bar_settings& bar_settings, string name_, const config& config)
|
||||||
: static_module<tray_module>(bar_settings, move(name_))
|
: static_module<tray_module>(bar_settings, move(name_), config)
|
||||||
, m_tray(connection::make(), signal_emitter::make(), m_log, bar_settings, [&] { this->broadcast(); }) {
|
, m_tray(connection::make(), signal_emitter::make(), m_log, bar_settings, [&] { this->broadcast(); }) {
|
||||||
m_formatter->add(DEFAULT_FORMAT, TAG_TRAY, {TAG_TRAY});
|
m_formatter->add(DEFAULT_FORMAT, TAG_TRAY, {TAG_TRAY});
|
||||||
}
|
}
|
||||||
|
@ -16,8 +16,8 @@ namespace modules {
|
|||||||
/**
|
/**
|
||||||
* Construct module
|
* Construct module
|
||||||
*/
|
*/
|
||||||
xbacklight_module::xbacklight_module(const bar_settings& bar, string name_)
|
xbacklight_module::xbacklight_module(const bar_settings& bar, string name_, const config& config)
|
||||||
: static_module<xbacklight_module>(bar, move(name_)), m_connection(connection::make()) {
|
: static_module<xbacklight_module>(bar, move(name_), config), m_connection(connection::make()) {
|
||||||
m_router->register_action(EVENT_INC, [this]() { action_inc(); });
|
m_router->register_action(EVENT_INC, [this]() { action_inc(); });
|
||||||
m_router->register_action(EVENT_DEC, [this]() { action_dec(); });
|
m_router->register_action(EVENT_DEC, [this]() { action_dec(); });
|
||||||
|
|
||||||
|
@ -22,8 +22,8 @@ namespace modules {
|
|||||||
/**
|
/**
|
||||||
* Construct module
|
* Construct module
|
||||||
*/
|
*/
|
||||||
xkeyboard_module::xkeyboard_module(const bar_settings& bar, string name_)
|
xkeyboard_module::xkeyboard_module(const bar_settings& bar, string name_, const config& config)
|
||||||
: static_module<xkeyboard_module>(bar, move(name_)), m_connection(connection::make()) {
|
: static_module<xkeyboard_module>(bar, move(name_), config), m_connection(connection::make()) {
|
||||||
m_router->register_action(EVENT_SWITCH, [this]() { action_switch(); });
|
m_router->register_action(EVENT_SWITCH, [this]() { action_switch(); });
|
||||||
|
|
||||||
// Setup extension
|
// Setup extension
|
||||||
|
@ -69,8 +69,8 @@ namespace modules {
|
|||||||
/**
|
/**
|
||||||
* Construct module
|
* Construct module
|
||||||
*/
|
*/
|
||||||
xwindow_module::xwindow_module(const bar_settings& bar, string name_)
|
xwindow_module::xwindow_module(const bar_settings& bar, string name_, const config& config)
|
||||||
: static_module<xwindow_module>(bar, move(name_)), m_connection(connection::make()) {
|
: static_module<xwindow_module>(bar, move(name_), config), m_connection(connection::make()) {
|
||||||
// Initialize ewmh atoms
|
// Initialize ewmh atoms
|
||||||
ewmh_util::initialize();
|
ewmh_util::initialize();
|
||||||
|
|
||||||
|
@ -27,8 +27,8 @@ namespace modules {
|
|||||||
/**
|
/**
|
||||||
* Construct module
|
* Construct module
|
||||||
*/
|
*/
|
||||||
xworkspaces_module::xworkspaces_module(const bar_settings& bar, string name_)
|
xworkspaces_module::xworkspaces_module(const bar_settings& bar, string name_, const config& config)
|
||||||
: static_module<xworkspaces_module>(bar, move(name_))
|
: static_module<xworkspaces_module>(bar, move(name_), config)
|
||||||
, m_connection(connection::make())
|
, m_connection(connection::make())
|
||||||
, m_ewmh(ewmh_util::initialize()) {
|
, m_ewmh(ewmh_util::initialize()) {
|
||||||
m_router->register_action_with_data(EVENT_FOCUS, [this](const std::string& data) { action_focus(data); });
|
m_router->register_action_with_data(EVENT_FOCUS, [this](const std::string& data) { action_focus(data); });
|
||||||
|
@ -8,7 +8,6 @@
|
|||||||
|
|
||||||
#include "cairo/context.hpp"
|
#include "cairo/context.hpp"
|
||||||
#include "cairo/surface.hpp"
|
#include "cairo/surface.hpp"
|
||||||
#include "components/config.hpp"
|
|
||||||
#include "errors.hpp"
|
#include "errors.hpp"
|
||||||
#include "events/signal.hpp"
|
#include "events/signal.hpp"
|
||||||
#include "utils/color.hpp"
|
#include "utils/color.hpp"
|
||||||
@ -55,8 +54,7 @@ tray_manager::~tray_manager() {
|
|||||||
deactivate();
|
deactivate();
|
||||||
}
|
}
|
||||||
|
|
||||||
void tray_manager::setup(const string& tray_module_name) {
|
void tray_manager::setup(const config& conf, const string& tray_module_name) {
|
||||||
const config& conf = config::make();
|
|
||||||
auto bs = conf.section();
|
auto bs = conf.section();
|
||||||
string position = conf.get(bs, "tray-position", "none"s);
|
string position = conf.get(bs, "tray-position", "none"s);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user