From bc9a49787a444202ec915694711b87750d498f87 Mon Sep 17 00:00:00 2001 From: Alex Date: Mon, 15 Apr 2019 10:55:44 +0200 Subject: [PATCH] feat: enable pango markup on sway workspaces --- include/modules/sway/workspaces.hpp | 1 + src/modules/sway/workspaces.cpp | 13 ++++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/include/modules/sway/workspaces.hpp b/include/modules/sway/workspaces.hpp index 89854d3e..2884efd0 100644 --- a/include/modules/sway/workspaces.hpp +++ b/include/modules/sway/workspaces.hpp @@ -8,6 +8,7 @@ #include "IModule.hpp" #include "modules/sway/ipc/client.hpp" #include +#include namespace waybar::modules::sway { diff --git a/src/modules/sway/workspaces.cpp b/src/modules/sway/workspaces.cpp index 01a7db0f..3f1bcef6 100644 --- a/src/modules/sway/workspaces.cpp +++ b/src/modules/sway/workspaces.cpp @@ -81,13 +81,17 @@ auto waybar::modules::sway::Workspaces::update() -> void box_.reorder_child(button, getWorkspaceIndex(node["name"].asString())); } auto icon = getIcon(node["name"].asString(), node); + std::string output = icon; if (config_["format"].isString()) { auto format = config_["format"].asString(); - button.set_label(fmt::format(format, fmt::arg("icon", icon), + output = fmt::format(format, fmt::arg("icon", icon), fmt::arg("name", trimWorkspaceName(node["name"].asString())), - fmt::arg("index", node["num"].asString()))); + fmt::arg("index", node["num"].asString())); + } + if (!config_["disable-markup"].asBool()) { + static_cast(button.get_children()[0])->set_markup(output); } else { - button.set_label(icon); + button.set_label(output); } onButtonReady(node, button); } @@ -107,6 +111,9 @@ void waybar::modules::sway::Workspaces::addWorkspace(const Json::Value &node) : icon; auto pair = buttons_.emplace(node["name"].asString(), format); auto &button = pair.first->second; + if (!config_["disable-markup"].asBool()) { + static_cast(button.get_children()[0])->set_markup(format); + } box_.pack_start(button, false, false, 0); button.set_relief(Gtk::RELIEF_NONE); button.signal_clicked().connect([this, pair] {