mirror of
https://github.com/rad4day/Waybar.git
synced 2023-12-21 10:22:59 +01:00
328573332f
Provides CSS classes empty, floating, tabbed, tiled, solo, stacked and app_id. Adds offscreen-css bool option (default false), only effective when "all-outputs" is true. This adds styles on outputs without focused node, according to its focused workspaces window situation. Adds an "offscreen-css-text" string option (default empty), only effective when "all-outputs" and "offscreen-style" are set. This is shown as a text on outputs without a focused node. Adds a "show-focused-workspace" bool option (default false) to indicate the workspace name if the whole workspace is focused when nodes are also present. If not set, empty text is shown, but css classes according to nodes in the workspace are still applied. Limitation: When the top level layout changes, there is no sway event so the module cannot react. Perhaps in the future recurring polling can be added to go around this limitation.
50 lines
1.2 KiB
C++
50 lines
1.2 KiB
C++
#pragma once
|
|
|
|
#include <fmt/format.h>
|
|
|
|
#include <tuple>
|
|
|
|
#include "AIconLabel.hpp"
|
|
#include "bar.hpp"
|
|
#include "client.hpp"
|
|
#include "modules/sway/ipc/client.hpp"
|
|
#include "util/json.hpp"
|
|
|
|
namespace waybar::modules::sway {
|
|
|
|
class Window : public AIconLabel, public sigc::trackable {
|
|
public:
|
|
Window(const std::string&, const waybar::Bar&, const Json::Value&);
|
|
~Window() = default;
|
|
auto update() -> void;
|
|
|
|
private:
|
|
void setClass(std::string classname, bool enable);
|
|
void onEvent(const struct Ipc::ipc_response&);
|
|
void onCmd(const struct Ipc::ipc_response&);
|
|
std::tuple<std::size_t, int, int, std::string, std::string, std::string, std::string, std::string>
|
|
getFocusedNode(const Json::Value& nodes, std::string& output);
|
|
void getTree();
|
|
void updateAppIconName();
|
|
void updateAppIcon();
|
|
|
|
const Bar& bar_;
|
|
std::string window_;
|
|
int windowId_;
|
|
std::string app_id_;
|
|
std::string app_class_;
|
|
std::string layout_;
|
|
std::string old_app_id_;
|
|
std::size_t app_nb_;
|
|
std::string shell_;
|
|
unsigned app_icon_size_{24};
|
|
bool update_app_icon_{true};
|
|
std::string app_icon_name_;
|
|
int floating_count_;
|
|
util::JsonParser parser_;
|
|
std::mutex mutex_;
|
|
Ipc ipc_;
|
|
};
|
|
|
|
} // namespace waybar::modules::sway
|