mirror of
https://github.com/rad4day/Waybar.git
synced 2023-12-21 10:22:59 +01:00
improve sink/source separation
Add additional fields, namely `source_volume` and `source_desc` Add `tooltip-format`, reverting to default behavior if not specified Add additional CSS classes, namely `sink-muted` and `source-muted`
This commit is contained in:
parent
29cba22405
commit
f4ffb21c8c
@ -207,6 +207,7 @@ const std::string waybar::modules::Pulseaudio::getPortIcon() const {
|
|||||||
|
|
||||||
auto waybar::modules::Pulseaudio::update() -> void {
|
auto waybar::modules::Pulseaudio::update() -> void {
|
||||||
auto format = format_;
|
auto format = format_;
|
||||||
|
std::string tooltip_format;
|
||||||
if (!alt_) {
|
if (!alt_) {
|
||||||
std::string format_name = "format";
|
std::string format_name = "format";
|
||||||
if (monitor_.find("a2dp_sink") != std::string::npos) {
|
if (monitor_.find("a2dp_sink") != std::string::npos) {
|
||||||
@ -222,28 +223,53 @@ auto waybar::modules::Pulseaudio::update() -> void {
|
|||||||
}
|
}
|
||||||
format_name = format_name + "-muted";
|
format_name = format_name + "-muted";
|
||||||
label_.get_style_context()->add_class("muted");
|
label_.get_style_context()->add_class("muted");
|
||||||
|
label_.get_style_context()->add_class("sink-muted");
|
||||||
} else {
|
} else {
|
||||||
label_.get_style_context()->remove_class("muted");
|
label_.get_style_context()->remove_class("muted");
|
||||||
|
label_.get_style_context()->remove_class("sink-muted");
|
||||||
}
|
}
|
||||||
format =
|
format =
|
||||||
config_[format_name].isString() ? config_[format_name].asString() : format;
|
config_[format_name].isString() ? config_[format_name].asString() : format;
|
||||||
}
|
}
|
||||||
// TODO: find a better way to split source/sink
|
// TODO: find a better way to split source/sink
|
||||||
std::string format_source = "{volume}%";
|
std::string format_source = "{volume}%";
|
||||||
if (source_muted_ && config_["format-source-muted"].isString()) {
|
if (source_muted_) {
|
||||||
format_source = config_["format-source-muted"].asString();
|
label_.get_style_context()->add_class("source-muted");
|
||||||
} else if (!source_muted_ && config_["format-source"].isString()) {
|
if (config_["format-source-muted"].isString()) {
|
||||||
format_source = config_["format-source"].asString();
|
format_source = config_["format-source-muted"].asString();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
label_.get_style_context()->remove_class("source-muted");
|
||||||
|
if (config_["format-source-muted"].isString()) {
|
||||||
|
format_source = config_["format-source"].asString();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
format_source = fmt::format(format_source, fmt::arg("volume", source_volume_));
|
format_source = fmt::format(format_source, fmt::arg("volume", source_volume_));
|
||||||
label_.set_markup(fmt::format(format,
|
label_.set_markup(fmt::format(format,
|
||||||
fmt::arg("desc", desc_),
|
fmt::arg("desc", desc_),
|
||||||
fmt::arg("volume", volume_),
|
fmt::arg("volume", volume_),
|
||||||
fmt::arg("format_source", format_source),
|
fmt::arg("format_source", format_source),
|
||||||
|
fmt::arg("source_volume", source_volume_),
|
||||||
|
fmt::arg("source_desc", source_desc_),
|
||||||
fmt::arg("icon", getIcon(volume_, getPortIcon()))));
|
fmt::arg("icon", getIcon(volume_, getPortIcon()))));
|
||||||
getState(volume_);
|
getState(volume_);
|
||||||
|
|
||||||
if (tooltipEnabled()) {
|
if (tooltipEnabled()) {
|
||||||
label_.set_tooltip_text(desc_);
|
if (tooltip_format.empty() && config_["tooltip-format"].isString()) {
|
||||||
|
tooltip_format = config_["tooltip-format"].asString();
|
||||||
|
}
|
||||||
|
if (!tooltip_format.empty()) {
|
||||||
|
label_.set_tooltip_text(fmt::format(
|
||||||
|
tooltip_format,
|
||||||
|
fmt::arg("desc", desc_),
|
||||||
|
fmt::arg("volume", volume_),
|
||||||
|
fmt::arg("format_source", format_source),
|
||||||
|
fmt::arg("source_volume", source_volume_),
|
||||||
|
fmt::arg("source_desc", source_desc_),
|
||||||
|
fmt::arg("icon", getIcon(volume_, getPortIcon())));
|
||||||
|
} else {
|
||||||
|
label_.set_tooltip_text(desc_);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Call parent update
|
// Call parent update
|
||||||
|
Loading…
Reference in New Issue
Block a user