Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions include/modules/hyprland/language.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ class Language : public waybar::ALabel, public EventHandler {
std::mutex mutex_;
const Bar& bar_;
util::JsonParser parser_;
std::string tooltip_format_;

Layout layout_;

Expand Down
11 changes: 11 additions & 0 deletions man/waybar-hyprland-language.5.scd
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,16 @@ Addressed by *hyprland/language*
typeof: string ++
Specifies which keyboard to use from hyprctl devices output. Using the option that begins with "at-translated-set..." is recommended.

*tooltip*: ++
typeof: bool ++
default: true ++
Option to disable tooltip on hover.

*tooltip-format*: ++
typeof: string ++
default: same as *format* ++
The format, how information should be displayed in the tooltip.

*menu*: ++
typeof: string ++
Action that popups the menu.
Expand Down Expand Up @@ -60,6 +70,7 @@ Addressed by *hyprland/language*
```
"hyprland/language": {
"format": "Lang: {long}",
"tooltip-format": "Layout: {long}",
"format-en": "AMERICA, HELL YEAH!",
"format-tr": "As bayrakları",
"keyboard-name": "at-translated-set-2-keyboard"
Expand Down
17 changes: 17 additions & 0 deletions src/modules/hyprland/language.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@ namespace waybar::modules::hyprland {

Language::Language(const std::string& id, const Bar& bar, const Json::Value& config)
: ALabel(config, "language", id, "{}", 0, true), bar_(bar), m_ipc(IPC::inst()) {
if (config_["tooltip-format"].isString()) {
tooltip_format_ = config_["tooltip-format"].asString();
}
Comment on lines +14 to +18

// get the active layout when open
initLanguage();

Expand Down Expand Up @@ -58,6 +62,19 @@ auto Language::update() -> void {
label_.hide();
}

if (tooltipEnabled()) {
if (!tooltip_format_.empty()) {
auto tooltip = trim(fmt::format(fmt::runtime(tooltip_format_),
fmt::arg("long", layout_.full_name),
fmt::arg("short", layout_.short_name),
fmt::arg("shortDescription", layout_.short_description),
fmt::arg("variant", layout_.variant)));
label_.set_tooltip_markup(tooltip);
} else {
label_.set_tooltip_markup(layoutName);
}
}

ALabel::update();
}

Expand Down