text: #pragma once
  
  #include "settings.hpp"
  
  #if not WITH_XCURSOR
  #error "Not built with support for xcb-cursor..."
  #endif
  
  #include <xcb/xcb_cursor.h>
  
  #include "common.hpp"
  #include "utils/string.hpp"
  #include "x11/connection.hpp"
  
  POLYBAR_NS
  
  namespace cursor_util {
    static const std::map<string, vector<string>> cursors = {
        {"pointer", {"pointing_hand", "pointer", "hand", "hand1", "hand2", "e29285e634086352946a0e7090d73106",
                        "9d800788f1b08800ae810202380a0822"}},
        {"default", {"left_ptr", "arrow", "dnd-none", "op_left_arrow"}},
        {"ns-resize", {"size_ver", "sb_v_double_arrow", "v_double_arrow", "n-resize", "s-resize", "col-resize",
                          "top_side", "bottom_side", "base_arrow_up", "base_arrow_down", "based_arrow_down",
                          "based_arrow_up", "00008160000006810000408080010102"}}};
    bool valid(const string& name);
    bool set_cursor(xcb_connection_t* c, xcb_screen_t* screen, xcb_window_t w, const string& name);
  } // namespace cursor_util
  
  POLYBAR_NS_END
  