feat: add idle protocol to avoid update workspace when idle

This commit is contained in:
Alexis
2018-08-09 01:10:07 +02:00
parent 193bd8a79a
commit c1e2735314
4 changed files with 43 additions and 6 deletions

View File

@ -9,6 +9,7 @@
#include <wayland-client.h>
#include "wlr-layer-shell-unstable-v1-client-protocol.h"
#include "idle-client-protocol.h"
#include "util/ptr_vec.hpp"
@ -28,6 +29,8 @@ namespace waybar {
struct wl_display *wlDisplay;
struct wl_registry *registry;
struct zwlr_layer_shell_v1 *layer_shell;
struct org_kde_kwin_idle *idle_manager;
struct wl_seat *seat;
util::ptr_vec<Bar> bars;
struct {

View File

@ -12,16 +12,18 @@ namespace waybar::modules {
public:
WorkspaceSelector(waybar::Bar &bar);
auto update() -> void;
void updateThread();
operator Gtk::Widget &();
util::SleeperThread *thread;
private:
void _addWorkspace(Json::Value node);
Json::Value _getWorkspaces();
Bar &_bar;
Gtk::Box *_box;
std::unordered_map<int, Gtk::Button> _buttons;
util::SleeperThread _thread;
int _ipcSocketfd;
int _ipcEventSocketfd;
struct org_kde_kwin_idle_timeout *_idle_timer;
};
}