#include "scapx.h" Scr_info *init_XCB_server() { Scr_info *info = malloc(sizeof(Scr_info)); if (!info) { fprintf(stderr, "memory allocation failed.\n"); return NULL; } info->con = xcb_connect(NULL, NULL); if (xcb_connection_has_error(info->con) > 0) { fprintf(stderr, "Error opening display.\n"); free(info); return NULL; } const xcb_setup_t *setup = xcb_get_setup(info->con); info->scr = xcb_setup_roots_iterator(setup).data; return info; } int main() { Scr_info *info = init_XCB_server(); if (!info || !info->scr) { fprintf(stderr, "Error opening display.\n"); if (info) { xcb_disconnect(info->con); free(info); } exit(EXIT_FAILURE); } // TODO: event loop xcb_disconnect(info->con); free(info); return 0; }