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