comparison gbwm.c @ 4:f1f332156693

feat/fix: builtin root window bg/overlay bg always black
author Atarwn Gard <a@qwa.su>
date Sun, 12 Oct 2025 21:04:11 +0500
parents 3726f37deac1
children 180e42b65105
comparison
equal deleted inserted replaced
3:3726f37deac1 4:f1f332156693
422 memset(overlay_input, 0, sizeof(overlay_input)); 422 memset(overlay_input, 0, sizeof(overlay_input));
423 423
424 if (!overlay_win) { 424 if (!overlay_win) {
425 XSetWindowAttributes wa = { 425 XSetWindowAttributes wa = {
426 .override_redirect = True, 426 .override_redirect = True,
427 .background_pixel = BlackPixel(dpy, DefaultScreen(dpy)), 427 .background_pixel = xft_col_bg.pixel,
428 .event_mask = ExposureMask | KeyPressMask 428 .event_mask = ExposureMask | KeyPressMask
429 }; 429 };
430 overlay_win = XCreateWindow(dpy, root, 0, 0, sw, sh, 0, 430 overlay_win = XCreateWindow(dpy, root, 0, 0, sw, sh, 0,
431 CopyFromParent, InputOutput, CopyFromParent, 431 CopyFromParent, InputOutput, CopyFromParent,
432 CWOverrideRedirect | CWBackPixel | CWEventMask, &wa); 432 CWOverrideRedirect | CWBackPixel | CWEventMask, &wa);
705 wm_delete_window = XInternAtom(dpy, "WM_DELETE_WINDOW", False); 705 wm_delete_window = XInternAtom(dpy, "WM_DELETE_WINDOW", False);
706 wm_state = XInternAtom(dpy, "WM_STATE", False); 706 wm_state = XInternAtom(dpy, "WM_STATE", False);
707 wm_take_focus = XInternAtom(dpy, "WM_TAKE_FOCUS", False); 707 wm_take_focus = XInternAtom(dpy, "WM_TAKE_FOCUS", False);
708 } 708 }
709 709
710 static void setrootbackground(void) {
711 Colormap cmap = DefaultColormap(dpy, DefaultScreen(dpy));
712 XColor color;
713
714 if (XParseColor(dpy, cmap, root_bg, &color) &&
715 XAllocColor(dpy, cmap, &color)) {
716 XSetWindowBackground(dpy, root, color.pixel);
717 XClearWindow(dpy, root);
718 }
719 }
720
710 int main(void) { 721 int main(void) {
711 signal(SIGCHLD, sigchld); 722 signal(SIGCHLD, sigchld);
712 if (!(dpy = XOpenDisplay(NULL))) { 723 if (!(dpy = XOpenDisplay(NULL))) {
713 fprintf(stderr, "eowm: cannot open display\n"); 724 fprintf(stderr, "eowm: cannot open display\n");
714 exit(1); 725 exit(1);
720 root = RootWindow(dpy, DefaultScreen(dpy)); 731 root = RootWindow(dpy, DefaultScreen(dpy));
721 Cursor cursor = XCreateFontCursor(dpy, XC_left_ptr); 732 Cursor cursor = XCreateFontCursor(dpy, XC_left_ptr);
722 XDefineCursor(dpy, root, cursor); 733 XDefineCursor(dpy, root, cursor);
723 734
724 setup_colors(); 735 setup_colors();
736 setrootbackground();
725 setup_icccm(); 737 setup_icccm();
726 738
727 XSelectInput(dpy, root, 739 XSelectInput(dpy, root,
728 SubstructureRedirectMask | SubstructureNotifyMask | 740 SubstructureRedirectMask | SubstructureNotifyMask |
729 EnterWindowMask | LeaveWindowMask | FocusChangeMask); 741 EnterWindowMask | LeaveWindowMask | FocusChangeMask);