1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
#pragma once
#include <i3ipc++/ipc.hpp>
#include "common.hpp"
#include "utils/restack.hpp"
#include "x11/extensions/randr.hpp"
POLYBAR_NS
class connection;
namespace i3_util {
using connection_t = i3ipc::connection;
using workspace_t = i3ipc::workspace_t;
const auto ws_numsort = [](shared_ptr<workspace_t> a, shared_ptr<workspace_t> b) { return a->num < b->num; };
vector<shared_ptr<workspace_t>> workspaces(const connection_t& conn, const string& output = "", const bool show_urgent = false);
shared_ptr<workspace_t> focused_workspace(const connection_t&);
vector<xcb_window_t> root_windows(connection& conn, const string& output_name = "");
restack_util::params get_restack_params(connection& conn);
}
namespace {
inline bool operator==(i3_util::workspace_t& a, i3_util::workspace_t& b) {
return a.num == b.num && a.output == b.output;
}
inline bool operator!=(i3_util::workspace_t& a, i3_util::workspace_t& b) {
return !(a == b);
}
}
POLYBAR_NS_END
|