Merge pull request #402 from 0xdec/on-update

feat(modules): call user on-update if configured
This commit is contained in:
Alex 2020-04-12 18:49:00 +02:00 committed by GitHub
commit 7859bf2c60
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
34 changed files with 124 additions and 22 deletions

View File

@ -10,29 +10,29 @@ The *backlight* module displays the current backlight level.
# CONFIGURATION # CONFIGURATION
*interval* ++ *interval*: ++
typeof: integer ++ typeof: integer ++
default: 2 ++ default: 2 ++
The interval in which information gets polled. The interval in which information gets polled.
*format* ++ *format*: ++
typeof: string ++ typeof: string ++
default: {percent}% ++ default: {percent}% ++
The format, how information should be displayed. On {} data gets inserted. The format, how information should be displayed. On {} data gets inserted.
*max-length* ++ *max-length*: ++
typeof: integer ++ typeof: integer ++
The maximum length in characters the module should display. The maximum length in characters the module should display.
*rotate* ++ *rotate*: ++
typeof: integer ++ typeof: integer ++
Positive value to rotate the text label. Positive value to rotate the text label.
*states* ++ *states*: ++
typeof: array ++ typeof: array ++
A number of backlight states which get activated on certain brightness levels. A number of backlight states which get activated on certain brightness levels.
*on-click* ++ *on-click*: ++
typeof: string ++ typeof: string ++
Command to execute when the module is clicked. Command to execute when the module is clicked.
@ -40,19 +40,23 @@ The *backlight* module displays the current backlight level.
typeof: string ++ typeof: string ++
Command to execute when middle-clicked on the module using mousewheel. Command to execute when middle-clicked on the module using mousewheel.
*on-click-right* ++ *on-click-right*: ++
typeof: string ++ typeof: string ++
Command to execute when the module is right clicked. Command to execute when the module is right clicked.
*on-scroll-up* ++ *on-update*: ++
typeof: string ++
Command to execute when the module is updated.
*on-scroll-up*: ++
typeof: string ++ typeof: string ++
Command to execute when performing a scroll up on the module. Command to execute when performing a scroll up on the module.
*on-scroll-down* ++ *on-scroll-down*: ++
typeof: string typeof: string
Command to execute when performing a scroll down on the module. Command to execute when performing a scroll down on the module.
*smooth-scrolling-threshold* ++ *smooth-scrolling-threshold*: ++
typeof: double typeof: double
Threshold to be used when scrolling. Threshold to be used when scrolling.

View File

@ -10,33 +10,33 @@ The *battery* module displays the current capacity and state (eg. charging) of y
# CONFIGURATION # CONFIGURATION
*bat* ++ *bat*: ++
typeof: string ++ typeof: string ++
The battery to monitor, as in /sys/class/power_supply/ instead of auto detect. The battery to monitor, as in /sys/class/power_supply/ instead of auto detect.
*adapter* ++ *adapter*: ++
typeof: string ++ typeof: string ++
The adapter to monitor, as in /sys/class/power_supply/ instead of auto detect. The adapter to monitor, as in /sys/class/power_supply/ instead of auto detect.
*full-at* ++ *full-at*: ++
typeof: integer ++ typeof: integer ++
Define the max percentage of the battery, usefull for an old battery, e.g. 96 Define the max percentage of the battery, usefull for an old battery, e.g. 96
*interval* ++ *interval*: ++
typeof: integer ++ typeof: integer ++
default: 60 ++ default: 60 ++
The interval in which the information gets polled. The interval in which the information gets polled.
*states* ++ *states*: ++
typeof: array ++ typeof: array ++
A number of battery states which get activated on certain capacity levels. See *waybar-states(5)*. A number of battery states which get activated on certain capacity levels. See *waybar-states(5)*.
*format* ++ *format*: ++
typeof: string ++ typeof: string ++
default: {capacity}% ++ default: {capacity}% ++
The format, how the time should be displayed. The format, how the time should be displayed.
*format-time* ++ *format-time*: ++
typeof: string ++ typeof: string ++
default: {H} h {M} min ++ default: {H} h {M} min ++
The format, how the time should be displayed. The format, how the time should be displayed.
@ -62,10 +62,14 @@ The *battery* module displays the current capacity and state (eg. charging) of y
typeof: string ++ typeof: string ++
Command to execute when middle-clicked on the module using mousewheel. Command to execute when middle-clicked on the module using mousewheel.
*on-click-right* ++ *on-click-right*: ++
typeof: string ++ typeof: string ++
Command to execute when you right clicked on the module. Command to execute when you right clicked on the module.
*on-update*: ++
typeof: string ++
Command to execute when the module is updated.
*on-scroll-up*: ++ *on-scroll-up*: ++
typeof: string ++ typeof: string ++
Command to execute when scrolling up on the module. Command to execute when scrolling up on the module.
@ -74,11 +78,11 @@ The *battery* module displays the current capacity and state (eg. charging) of y
typeof: string ++ typeof: string ++
Command to execute when scrolling down on the module. Command to execute when scrolling down on the module.
*smooth-scrolling-threshold* ++ *smooth-scrolling-threshold*: ++
typeof: double ++ typeof: double ++
Threshold to be used when scrolling. Threshold to be used when scrolling.
*tooltip* ++ *tooltip*: ++
typeof: bool ++ typeof: bool ++
default: true ++ default: true ++
Option to disable tooltip on hover. Option to disable tooltip on hover.

View File

@ -51,6 +51,10 @@ The *clock* module displays the current date and time.
typeof: string ++ typeof: string ++
Command to execute when you right clicked on the module. Command to execute when you right clicked on the module.
*on-update*: ++
typeof: string ++
Command to execute when the module is updated.
*on-scroll-up*: ++ *on-scroll-up*: ++
typeof: string ++ typeof: string ++
Command to execute when scrolling up on the module. Command to execute when scrolling up on the module.

View File

@ -44,6 +44,10 @@ The *cpu* module displays the current cpu utilization.
typeof: string ++ typeof: string ++
Command to execute when you right clicked on the module. Command to execute when you right clicked on the module.
*on-update*: ++
typeof: string ++
Command to execute when the module is updated.
*on-scroll-up*: ++ *on-scroll-up*: ++
typeof: string ++ typeof: string ++
Command to execute when scrolling up on the module. Command to execute when scrolling up on the module.

View File

@ -73,6 +73,10 @@ Addressed by *custom/<name>*
typeof: string ++ typeof: string ++
Command to execute when you right clicked on the module. Command to execute when you right clicked on the module.
*on-update*: ++
typeof: string ++
Command to execute when the module is updated.
*on-scroll-up*: ++ *on-scroll-up*: ++
typeof: string ++ typeof: string ++
Command to execute when scrolling up on the module. Command to execute when scrolling up on the module.

View File

@ -47,6 +47,10 @@ Addressed by *disk*
typeof: string ++ typeof: string ++
Command to execute when you right clicked on the module. Command to execute when you right clicked on the module.
*on-update*: ++
typeof: string ++
Command to execute when the module is updated.
*on-scroll-up*: ++ *on-scroll-up*: ++
typeof: string ++ typeof: string ++
Command to execute when scrolling up on the module. Command to execute when scrolling up on the module.

View File

@ -39,6 +39,10 @@ screensaving, also known as "presentation mode".
typeof: string ++ typeof: string ++
Command to execute when you right clicked on the module. Command to execute when you right clicked on the module.
*on-update*: ++
typeof: string ++
Command to execute when the module is updated.
*on-scroll-up*: ++ *on-scroll-up*: ++
typeof: string ++ typeof: string ++
Command to execute when scrolling up on the module. Command to execute when scrolling up on the module.

View File

@ -46,6 +46,10 @@ Addressed by *memory*
typeof: string ++ typeof: string ++
Command to execute when you right clicked on the module. Command to execute when you right clicked on the module.
*on-update*: ++
typeof: string ++
Command to execute when the module is updated.
*on-scroll-up*: ++ *on-scroll-up*: ++
typeof: string ++ typeof: string ++
Command to execute when scrolling up on the module. Command to execute when scrolling up on the module.

View File

@ -89,6 +89,10 @@ Addressed by *mpd*
typeof: string ++ typeof: string ++
Command to execute when you right clicked on the module. Command to execute when you right clicked on the module.
*on-update*: ++
typeof: string ++
Command to execute when the module is updated.
*on-scroll-up*: ++ *on-scroll-up*: ++
typeof: string ++ typeof: string ++
Command to execute when scrolling up on the module. Command to execute when scrolling up on the module.

View File

@ -72,6 +72,10 @@ Addressed by *network*
typeof: string ++ typeof: string ++
Command to execute when you right clicked on the module. Command to execute when you right clicked on the module.
*on-update*: ++
typeof: string ++
Command to execute when the module is updated.
*on-scroll-up*: ++ *on-scroll-up*: ++
typeof: string ++ typeof: string ++
Command to execute when scrolling up on the module. Command to execute when scrolling up on the module.

View File

@ -67,6 +67,10 @@ Additionally you can control the volume by scrolling *up* or *down* while the cu
typeof: string ++ typeof: string ++
Command to execute when you right clicked on the module. Command to execute when you right clicked on the module.
*on-update*: ++
typeof: string ++
Command to execute when the module is updated.
*on-scroll-up*: ++ *on-scroll-up*: ++
typeof: string ++ typeof: string ++
Command to execute when scrolling up on the module. This replaces the default behaviour of volume control. Command to execute when scrolling up on the module. This replaces the default behaviour of volume control.

View File

@ -37,6 +37,10 @@ Addressed by *sway/mode*
typeof: string ++ typeof: string ++
Command to execute when you right clicked on the module. Command to execute when you right clicked on the module.
*on-update*: ++
typeof: string ++
Command to execute when the module is updated.
*on-scroll-up*: ++ *on-scroll-up*: ++
typeof: string ++ typeof: string ++
Command to execute when scrolling up on the module. Command to execute when scrolling up on the module.

View File

@ -37,6 +37,10 @@ Addressed by *sway/window*
typeof: string ++ typeof: string ++
Command to execute when you right clicked on the module. Command to execute when you right clicked on the module.
*on-update*: ++
typeof: string ++
Command to execute when the module is updated.
*on-scroll-up*: ++ *on-scroll-up*: ++
typeof: string ++ typeof: string ++
Command to execute when scrolling up on the module. Command to execute when scrolling up on the module.

View File

@ -60,6 +60,10 @@ Addressed by *sway/workspaces*
default: empty ++ default: empty ++
Lists workspaces that should always be shown, even when non existent Lists workspaces that should always be shown, even when non existent
*on-update*: ++
typeof: string ++
Command to execute when the module is updated.
# FORMAT REPLACEMENTS # FORMAT REPLACEMENTS
*{value}*: Name of the workspace, as defined by sway. *{value}*: Name of the workspace, as defined by sway.

View File

@ -70,6 +70,10 @@ Addressed by *temperature*
typeof: string ++ typeof: string ++
Command to execute when you right clicked on the module. Command to execute when you right clicked on the module.
*on-update*: ++
typeof: string ++
Command to execute when the module is updated.
*on-scroll-up*: ++ *on-scroll-up*: ++
typeof: string ++ typeof: string ++
Command to execute when scrolling up on the module. Command to execute when scrolling up on the module.

View File

@ -20,6 +20,10 @@ Addressed by *tray*
typeof: integer ++ typeof: integer ++
Defines the spacing between the tray icons. Defines the spacing between the tray icons.
*on-update*: ++
typeof: string ++
Command to execute when the module is updated.
# EXAMPLES # EXAMPLES
``` ```

View File

@ -31,7 +31,7 @@ ALabel::ALabel(const Json::Value& config, const std::string& name, const std::st
} }
auto ALabel::update() -> void { auto ALabel::update() -> void {
// Nothing here AModule::update();
} }
std::string ALabel::getIcon(uint16_t percentage, const std::string& alt, uint16_t max) { std::string ALabel::getIcon(uint16_t percentage, const std::string& alt, uint16_t max) {

View File

@ -29,7 +29,10 @@ AModule::~AModule() {
} }
auto AModule::update() -> void { auto AModule::update() -> void {
// Nothing here // Run user-provided update handler if configured
if (config_["on-update"].isString()) {
pid_.push_back(util::command::forkExec(config_["on-update"].asString()));
}
} }
bool AModule::handleToggle(GdkEventButton* const& e) { bool AModule::handleToggle(GdkEventButton* const& e) {

View File

@ -187,6 +187,8 @@ auto waybar::modules::Backlight::update() -> void {
} }
previous_best_ = best == nullptr ? std::nullopt : std::optional{*best}; previous_best_ = best == nullptr ? std::nullopt : std::optional{*best};
previous_format_ = format_; previous_format_ = format_;
// Call parent update
ALabel::update();
} }
template <class ForwardIt> template <class ForwardIt>

View File

@ -202,4 +202,6 @@ auto waybar::modules::Battery::update() -> void {
fmt::arg("icon", getIcon(capacity, state)), fmt::arg("icon", getIcon(capacity, state)),
fmt::arg("time", formatTimeRemaining(time_remaining)))); fmt::arg("time", formatTimeRemaining(time_remaining))));
} }
// Call parent update
ALabel::update();
} }

View File

@ -54,6 +54,8 @@ auto waybar::modules::Clock::update() -> void {
label_.set_tooltip_markup(text); label_.set_tooltip_markup(text);
} }
} }
// Call parent update
ALabel::update();
} }
auto waybar::modules::Clock::calendar_text(const waybar_time& wtime) -> std::string { auto waybar::modules::Clock::calendar_text(const waybar_time& wtime) -> std::string {

View File

@ -18,6 +18,8 @@ auto waybar::modules::Cpu::update() -> void {
} }
label_.set_markup(fmt::format(format_, fmt::arg("load", cpu_load), fmt::arg("usage", cpu_usage))); label_.set_markup(fmt::format(format_, fmt::arg("load", cpu_load), fmt::arg("usage", cpu_usage)));
getState(cpu_usage); getState(cpu_usage);
// Call parent update
ALabel::update();
} }
uint16_t waybar::modules::Cpu::getCpuLoad() { uint16_t waybar::modules::Cpu::getCpuLoad() {

View File

@ -141,6 +141,8 @@ auto waybar::modules::Custom::update() -> void {
event_box_.show(); event_box_.show();
} }
} }
// Call parent update
ALabel::update();
} }
void waybar::modules::Custom::parseOutputRaw() { void waybar::modules::Custom::parseOutputRaw() {

View File

@ -73,4 +73,6 @@ auto waybar::modules::Disk::update() -> void {
)); ));
} }
event_box_.show(); event_box_.show();
// Call parent update
ALabel::update();
} }

View File

@ -32,6 +32,8 @@ auto waybar::modules::IdleInhibitor::update() -> void {
if (tooltipEnabled()) { if (tooltipEnabled()) {
label_.set_tooltip_text(status_); label_.set_tooltip_text(status_);
} }
// Call parent update
ALabel::update();
} }
bool waybar::modules::IdleInhibitor::handleToggle(GdkEventButton* const& e) { bool waybar::modules::IdleInhibitor::handleToggle(GdkEventButton* const& e) {

View File

@ -42,6 +42,8 @@ auto waybar::modules::Memory::update() -> void {
} else { } else {
event_box_.hide(); event_box_.hide();
} }
// Call parent update
ALabel::update();
} }
void waybar::modules::Memory::parseMeminfo() { void waybar::modules::Memory::parseMeminfo() {

View File

@ -56,6 +56,9 @@ auto waybar::modules::MPD::update() -> void {
} }
setLabel(); setLabel();
// Call parent update
ALabel::update();
} }
std::thread waybar::modules::MPD::event_listener() { std::thread waybar::modules::MPD::event_listener() {

View File

@ -315,6 +315,9 @@ auto waybar::modules::Network::update() -> void {
label_.set_tooltip_text(text); label_.set_tooltip_text(text);
} }
} }
// Call parent update
ALabel::update();
} }
// Based on https://gist.github.com/Yawning/c70d804d4b8ae78cc698 // Based on https://gist.github.com/Yawning/c70d804d4b8ae78cc698

View File

@ -245,4 +245,7 @@ auto waybar::modules::Pulseaudio::update() -> void {
if (tooltipEnabled()) { if (tooltipEnabled()) {
label_.set_tooltip_text(desc_); label_.set_tooltip_text(desc_);
} }
// Call parent update
ALabel::update();
} }

View File

@ -40,6 +40,8 @@ auto Tray::update() -> void {
} else { } else {
box_.show_all(); box_.show_all();
} }
// Call parent update
AModule::update();
} }
} // namespace waybar::modules::SNI } // namespace waybar::modules::SNI

View File

@ -47,6 +47,8 @@ auto Mode::update() -> void {
} }
event_box_.show(); event_box_.show();
} }
// Call parent update
ALabel::update();
} }
} // namespace waybar::modules::sway } // namespace waybar::modules::sway

View File

@ -60,6 +60,8 @@ auto Window::update() -> void {
if (tooltipEnabled()) { if (tooltipEnabled()) {
label_.set_tooltip_text(window_); label_.set_tooltip_text(window_);
} }
// Call parent update
ALabel::update();
} }
std::tuple<std::size_t, int, std::string, std::string> Window::getFocusedNode( std::tuple<std::size_t, int, std::string, std::string> Window::getFocusedNode(

View File

@ -173,6 +173,8 @@ auto Workspaces::update() -> void {
} }
onButtonReady(*it, button); onButtonReady(*it, button);
} }
// Call parent update
AModule::update();
} }
Gtk::Button &Workspaces::addButton(const Json::Value &node) { Gtk::Button &Workspaces::addButton(const Json::Value &node) {

View File

@ -36,6 +36,8 @@ auto waybar::modules::Temperature::update() -> void {
fmt::arg("temperatureC", temperature_c), fmt::arg("temperatureC", temperature_c),
fmt::arg("temperatureF", temperature_f), fmt::arg("temperatureF", temperature_f),
fmt::arg("icon", getIcon(temperature_c, "", max_temp)))); fmt::arg("icon", getIcon(temperature_c, "", max_temp))));
// Call parent update
ALabel::update();
} }
std::tuple<uint16_t, uint16_t> waybar::modules::Temperature::getTemperature() { std::tuple<uint16_t, uint16_t> waybar::modules::Temperature::getTemperature() {