Насколько я понимаю, вы решили разобраться с X11 и научиться работать с графической средой. Поздравляю - на мой взгляд это level-up по сравнению с консольными утилитами. Но здесь есть свои нюансы.
Пара слов о графическом фреймворке X11.
X - это графическая система для большинства разновидностей UNIX. Существует множество наборов инструментов для программирования X, но обучение использованию вызовов библиотеки X - это проверенный и верный метод, который дает очень переносимый код.
Вот файлы заголовков, необходимые для выполнения многих операций в X. Порядок важен:
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Xos.h>
Эти файлы обычно находятся в /usr/include/X11
Неплохое введение в эту тему можно найти здесь (на английском).
Так же могу рекомендовать неплохую статью на https://oldshelf.ru (на русском).
Кстати, по ссылке на oldshelf, порядок включения библиотек иной:
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
#include <X11/Xlib.h>
Как вы наверное поняли, ключевым моментом для работы с Xlib будет строка обращения к этой библиотеки в заголовке вашей программы на C:
#include <X11/Xlib.h>