Overview
dsh-plugin-background-image
README / EN
Package documentation
Registry summary
dsh.pub verifies the pinned bundle contract, runtime facts, and distribution semantics. The complete README remains in the source repository.
Read the full README on GitHubLIMITATIONS
Known limitations
This plugin works by **overriding DSH theme tokens** and **injecting CSS**, which changes the global interface appearance. Keep the following in mind: 1. **Overrides the global background token `--dsw-alias-bg-base`**: every interface region referencing this token will show the background image. The plugin forces known panels/buttons back to surface colors (`--dsw-alias-bg-layer-2`) via CSS, but elements added by future DSH updates that reference the token may need follow-up rules. 2. **Depends on DSH internal hashed class names**: the continuous background, glass effects, and chat content offset rely on internal class names such as `.pI_x6G_frame`, `.wSkVaW_root`, `.ydkMvW_root`, `.hHd-Xa_root`, `.pI_x6G_sidebarCol`, `.uV2eYG_card`, `.wSkVaW_composerSeat`, `.wSkVaW_viewArea`, and `.wSkVaW_composerHero`. If a DSH update renames them, the corresponding effects break or misalign. 3. **Sidebar frosted glass relies on a pseudo-element approach**: the sidebar glass is not applied to the sidebar ancestor itself but to the `.pI_x6G_sidebarCol::before` pseudo-element (an absolutely positioned overlay carrying the translucent fill and `backdrop-filter`). This way `backdrop-filter` lands on a pseudo-element without `fixed` descendants, so the sidebar ancestor never becomes the containing block for fixed descendants — the `position: fixed` settings overlay (`.VOzbGW_overlay`) is not trapped inside the sidebar. The approach still depends on internal class names such as `.pI_x6G_sidebarCol` and `.hHd-Xa_root`; if a DSH update renames them, the sidebar glass breaks or misaligns. 4. **Local image route**: local images depend on the host-side read-only route (loopback only, reference-as-authorization). If the image file is moved or deleted, the background stops working until the path is set again. The plugin probes silently with HEAD requests on page load and whenever the settings page opens (no file content is transferred), and shows a hint at the top of the settings page and in the status line when invalid. 5. **Clean disable**: the token overrides and internal-class styles above exist on the page only while the plugin is enabled (sidebar rules additionally require immersive fullscreen mode). Turning the plugin off or switching to "Conversation area only" removes the corresponding stylesheets entirely, fully restoring native DSH styles without leftover `!important` overrides.
