# picom, the X compositor (module picom, novox/hq ADR 0208). Owned by the mesh: this file is # replaced at every push. Adopted from the two workstations' file of 2026-10-04 and moved to # picom's window rules, which supersede opacity-rule, inactive-opacity and inactive-dim. # The backend and damage tracking are each machine's settings (backend, use-damage; novox/hq research # 037, issue 345): the right ones depend on the machine's graphics driver. The defaults are what every # machine ran before: glx, and picom's own default of repainting only what changed. xrender, or # use-damage false (repaint the whole screen each frame), is what to try on a machine where a window is # left unpainted or stale. backend = "${setting:backend}"; use-damage = ${setting:use-damage}; vsync = true; fading = true; fade-in-step = 0.05; fade-out-step = 0.05; # Tiled windows hide their shadows and corners, so neither is drawn. shadow = false; corner-radius = 0; blur-method = "none"; # "Focused" is i3's _NET_ACTIVE_WINDOW, not X focus events: under i3 those do not reliably reach # the toplevel picom tracks, and a terminal then never lifts to its focused opacity. use-ewmh-active-win = true; # Window rules are applied in order, and a later match wins. Only terminals are translucent: # nothing else on screen (browsers, video, games) is touched. A terminal is matched by its class; # the node's terminal emulator today is xterm (class XTerm). A window's own opacity property is # used wherever no rule sets one, which is what the window-opacity tool sets. rules = ( { match = "window_type = 'tooltip'"; fade = false; opacity = 0.95; }, { match = "window_type = 'dock' || window_type = 'desktop'"; fade = false; }, { match = "class_g = 'XTerm' && focused"; opacity = 0.95; }, { match = "class_g = 'XTerm' && !focused"; opacity = 0.75; }, # A full-screen window is opaque, a terminal included: a video or a game is never see-through. { match = "fullscreen"; opacity = 1; } );