#include "bar/protocol.h" #include "bar/util.h" #include protocol_t *sway_compositor_new(void); protocol_t *niri_compositor_new(void); protocol_t *protocol_detect(void) { protocol_t *p = nullptr; if (getenv("NIRI_SOCKET")) p = niri_compositor_new(); else if (getenv("SWAYSOCK")) p = sway_compositor_new(); if (p) { if (p->connect(p)) return p; protocol_destroy(p); } warn("no supported compositor (SWAYSOCK / NIRI_SOCKET unset)"); return nullptr; } void protocol_destroy(protocol_t *p) { if (!p) return; if (p->disconnect) p->disconnect(p); free(p->internal); free(p); }