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