commit e7be9552b798a7772e4016fd65aeb80187f2c7ec
Author: Matsuda Kenji <info@mtkn.jp>
Date: Tue, 16 Dec 2025 12:10:51 +0900
create window
Diffstat:
2 files changed, 47 insertions(+), 0 deletions(-)
diff --git a/Makefile b/Makefile
@@ -0,0 +1,5 @@
+all:
+ $(CC) -I/usr/X11R6/include win32.c -L/usr/X11R6/lib -lX11 -o win32
+
+clean:
+ rm -f win32
diff --git a/win32.c b/win32.c
@@ -0,0 +1,42 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <X11/Xlib.h>
+
+void fatal(char *msg);
+
+int main(void) {
+ Display *display = XOpenDisplay(NULL);
+ if (!display) {
+ fatal("can't open display");
+ }
+ int screen = DefaultScreen(display);
+ XSetWindowAttributes attr = {
+ .event_mask = KeyPressMask | ExposureMask,
+ };
+
+ Window window = XCreateWindow(display, DefaultRootWindow(display),
+ 0, 0, 800, 600, 0,
+ DefaultDepth(display, screen),
+ InputOutput,
+ DefaultVisual(display, screen),
+ CWEventMask,
+ &attr);
+ XMapWindow(display, window);
+ XSync(display, window);
+
+ int quit = 0;
+ XEvent event;
+ while (!quit) {
+ XNextEvent(display, &event);
+ if (event.type == KeyPress && event.xkey.keycode == 49) {
+ quit = 1;
+ }
+ }
+
+ XCloseDisplay(display);
+}
+
+void fatal(char *msg) {
+ fprintf(stderr, "%s\n", msg);
+ exit(1);
+}