#include #include #include #include #include //TODO: fix your ugly ass vim colors, I don't care if it's part of the code int main(void) { char text_prompt_buffer[32] = "testing"; //TODO: everything Display *display; Window window; XEvent event; Colormap colormap; int screen; XColor background_color; XTextItem text_prompt; XGCValues text_prompt_formatting; GC text_prompt_gc; if((display = XOpenDisplay(NULL)) == NULL) { printf("Couldn't open display due to fatal error: %s\n", strerror(errno)); exit(errno); } screen = DefaultScreen(display); colormap = DefaultColormap(display, screen); background_color.red = 0; background_color.green = 65535; background_color.blue = 0; XAllocColor(display, colormap, &background_color); window = XCreateSimpleWindow(display, RootWindow(display, screen), 10, 10, 100, 100, 0, background_color.pixel, background_color.pixel); //last arg is color XMapWindow(display, window); XSelectInput(display, window, KeyPressMask | ExposureMask); //text struct text_prompt.chars = text_prompt_buffer; text_prompt.nchars = strlen(text_prompt_buffer); text_prompt.delta = 0; //what? text_prompt.font = None; //text formatting struct text_prompt_formatting.foreground = BlackPixel(display, screen); text_prompt_formatting.background = WhitePixel(display, screen); text_prompt_gc = XCreateGC(display, window, GCForeground | GCBackground, &text_prompt_formatting); for(;;) { XNextEvent(display, &event); switch (event.type) { case KeyPress: printf("Key press\n"); break; case Expose: XDrawText(display, window, text_prompt_gc, 10, 10, &text_prompt, 1); //TODO formatting, textprompt break; default: printf("wot\n"); break; } } return 0; }