Mercurial > gbwm
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); |