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

feat(modules): call user on-update if configured
pull/665/head
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
*interval* ++
*interval*: ++
typeof: integer ++
default: 2 ++
The interval in which information gets polled.
*format* ++
*format*: ++
typeof: string ++
default: {percent}% ++
The format, how information should be displayed. On {} data gets inserted.
*max-length* ++
*max-length*: ++
typeof: integer ++
The maximum length in characters the module should display.
*rotate* ++
*rotate*: ++
typeof: integer ++
Positive value to rotate the text label.
*states* ++
*states*: ++
typeof: array ++
A number of backlight states which get activated on certain brightness levels.
*on-click* ++
*on-click*: ++
typeof: string ++
Command to execute when the module is clicked.
@ -40,19 +40,23 @@ The *backlight* module displays the current backlight level.
typeof: string ++
Command to execute when middle-clicked on the module using mousewheel.
*on-click-right* ++
*on-click-right*: ++
typeof: string ++
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 ++
Command to execute when performing a scroll up on the module.
*on-scroll-down* ++
*on-scroll-down*: ++
typeof: string
Command to execute when performing a scroll down on the module.
*smooth-scrolling-threshold* ++
*smooth-scrolling-threshold*: ++
typeof: double
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
*bat* ++
*bat*: ++
typeof: string ++
The battery to monitor, as in /sys/class/power_supply/ instead of auto detect.
*adapter* ++
*adapter*: ++
typeof: string ++
The adapter to monitor, as in /sys/class/power_supply/ instead of auto detect.
*full-at* ++
*full-at*: ++
typeof: integer ++
Define the max percentage of the battery, usefull for an old battery, e.g. 96
*interval* ++
*interval*: ++
typeof: integer ++
default: 60 ++
The interval in which the information gets polled.
*states* ++
*states*: ++
typeof: array ++
A number of battery states which get activated on certain capacity levels. See *waybar-states(5)*.
*format* ++
*format*: ++
typeof: string ++
default: {capacity}% ++
The format, how the time should be displayed.
*format-time* ++
*format-time*: ++
typeof: string ++
default: {H} h {M} min ++
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 ++
Command to execute when middle-clicked on the module using mousewheel.
*on-click-right* ++
*on-click-right*: ++
typeof: string ++
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*: ++
typeof: string ++
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 ++
Command to execute when scrolling down on the module.
*smooth-scrolling-threshold* ++
*smooth-scrolling-threshold*: ++
typeof: double ++
Threshold to be used when scrolling.
*tooltip* ++
*tooltip*: ++
typeof: bool ++
default: true ++
Option to disable tooltip on hover.

View File

@ -51,6 +51,10 @@ The *clock* module displays the current date and time.
typeof: string ++
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*: ++
typeof: string ++
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 ++
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*: ++
typeof: string ++
Command to execute when scrolling up on the module.

View File

@ -73,6 +73,10 @@ Addressed by *custom/<name>*
typeof: string ++
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*: ++
typeof: string ++
Command to execute when scrolling up on the module.

View File

@ -47,6 +47,10 @@ Addressed by *disk*
typeof: string ++
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*: ++
typeof: string ++
Command to execute when scrolling up on the module.

View File

@ -39,6 +39,10 @@ screensaving, also known as "presentation mode".
typeof: string ++
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*: ++
typeof: string ++
Command to execute when scrolling up on the module.

View File

@ -46,6 +46,10 @@ Addressed by *memory*
typeof: string ++
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*: ++
typeof: string ++
Command to execute when scrolling up on the module.

View File

@ -89,6 +89,10 @@ Addressed by *mpd*
typeof: string ++
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*: ++
typeof: string ++
Command to execute when scrolling up on the module.

View File

@ -72,6 +72,10 @@ Addressed by *network*
typeof: string ++
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*: ++
typeof: string ++
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 ++
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*: ++
typeof: string ++
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 ++
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*: ++
typeof: string ++
Command to execute when scrolling up on the module.

View File

@ -37,6 +37,10 @@ Addressed by *sway/window*
typeof: string ++
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*: ++
typeof: string ++
Command to execute when scrolling up on the module.

View File

@ -60,6 +60,10 @@ Addressed by *sway/workspaces*
default: empty ++
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
*{value}*: Name of the workspace, as defined by sway.

View File

@ -70,6 +70,10 @@ Addressed by *temperature*
typeof: string ++
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*: ++
typeof: string ++
Command to execute when scrolling up on the module.

View File

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

View File

@ -31,7 +31,7 @@ ALabel::ALabel(const Json::Value& config, const std::string& name, const std::st
}
auto ALabel::update() -> void {
// Nothing here
AModule::update();
}
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 {
// 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) {

View File

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

View File

@ -202,4 +202,6 @@ auto waybar::modules::Battery::update() -> void {
fmt::arg("icon", getIcon(capacity, state)),
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);
}
}
// Call parent update
ALabel::update();
}
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)));
getState(cpu_usage);
// Call parent update
ALabel::update();
}
uint16_t waybar::modules::Cpu::getCpuLoad() {

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -60,6 +60,8 @@ auto Window::update() -> void {
if (tooltipEnabled()) {
label_.set_tooltip_text(window_);
}
// Call parent update
ALabel::update();
}
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);
}
// Call parent update
AModule::update();
}
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("temperatureF", temperature_f),
fmt::arg("icon", getIcon(temperature_c, "", max_temp))));
// Call parent update
ALabel::update();
}
std::tuple<uint16_t, uint16_t> waybar::modules::Temperature::getTemperature() {