mohammad118 downloadsControl the transparency and always-on-top behavior of Obsidian windows with per-window settings, Smart Fade, Contrast Shield, and quick note overlays.
Keep your notes in view without losing sight of what is behind them.
Lacewing Window Transparency is a macOS-first Obsidian plugin for making the main vault window or any pop-out translucent and keeping selected windows above other apps. It adds per-window controls, reading-aware Smart Fade, a Contrast Shield, and a quick way to open the current note as an overlay.
Lacewing is useful when you want to:
Lacewing is desktop-only because it uses guarded Electron window APIs. Windows, Linux, and Obsidian Mobile are not currently supported.
After Lacewing is listed in the Community Plugins directory:
main.js, manifest.json, and styles.css from the
latest GitHub release.<your-vault>/.obsidian/plugins/lacewing/.Changes apply immediately. The main window and every pop-out are controlled independently.
Run Open current note as overlay from the Command Palette. Lacewing copies the active Markdown note into a new single-note pop-out without moving the original tab. The pop-out starts at 85% opacity by default and is pinned using macOS's normal floating level.
Running the command again for the same note focuses the existing Lacewing overlay instead of opening a duplicate. Change the starting opacity under Settings → Lacewing Window Transparency → Overlay defaults.
Each card represents one Obsidian window and shows whether it is the main window or a pop-out, focused, pinned, and using Smart Fade or a Contrast Shield.
Controls for an unambiguous target are saved automatically:
Saved note preferences follow file and folder renames and are removed after deletion.
Smart Fade switches a window between a readable active opacity and a more transparent idle opacity. Enable and configure the global default under Settings → Lacewing Window Transparency → Global smart fade, or use the Global smart fade toggle at the top of the Window Manager. Expand Smart fade on any Window Manager card to inherit the global behavior or override it for that window.
New installations start with Focus loss only and a 5-second idle delay if an inactivity trigger is selected. Existing saved settings are preserved.
Three triggers are available:
Typing, navigation keys such as arrows and Page Up or Down, clicks, and mouse, trackpad, or scrollbar scrolling can all count as reading activity. These activity types can be enabled independently.
Opacity changes can be instant or smoothly animated from 0–500 ms. Lacewing can also honor the macOS Reduce Motion accessibility setting.
Whole-window opacity affects text as well as the window background. Contrast Shield adds a theme-aware backing surface behind Markdown content to improve separation from a busy call or video behind the note.
Choose None, Subtle, Medium, or Strong globally under Settings → Lacewing Window Transparency → Readability, then override the level on individual windows in the Window Manager.
Contrast Shield affects Markdown source, Live Preview, and Reading view. It does not alter your theme, links, selection, embeds, sidebars, window chrome, or Obsidian's built-in translucency setting.
Lacewing does not claim hotkeys automatically. To assign one, open Settings → Hotkeys, search for Lacewing Window Transparency, select the plus button beside a command, and press the shortcut you want.
The following macOS suggestions use one memorable Command–Option–Shift family. They also appear beside the relevant actions in Lacewing settings and the Window Manager.
| Command | Suggested shortcut |
|---|---|
| Open window manager | ⌘⌥⇧O |
| Open current note as overlay | ⌘⌥⇧N |
| Increase active-window opacity | ⌘⌥⇧] |
| Decrease active-window opacity | ⌘⌥⇧[ |
| Toggle active-window pinning | ⌘⌥⇧P |
| Restore active window to 100% | ⌘⌥⇧0 |
| Restore every managed overlay | ⌘⌥⇧R |
The opacity commands change fixed opacity when Smart Fade is off. When Smart Fade is on, they change the active opacity for the current window.
Lacewing has no analytics, accounts, network requests, or remote services. It stores settings locally in the vault's plugin data and never reads note contents beyond the file identity Obsidian exposes for window tracking.
Confirm that you are using Obsidian Desktop on macOS and Obsidian 1.13.0 or newer. Reload Obsidian after installation. If a card says native controls are unavailable, restart Obsidian and try again.
Raise the window opacity or enable Contrast shield. For calls and videos, a good starting point is 85–90% active opacity, 60–70% idle opacity, and a Subtle or Medium shield.
Turn off Always on top for that window or run Restore every managed overlay. Disabling Lacewing also restores the native window state captured when it loaded.
Only a pop-out containing one unique Markdown note has a persistent identity. Mixed-tab, duplicate-note, and non-note pop-outs are labeled Session only in the Window Manager.
Requirements: Node.js 20 or 22 and pnpm 9.6.0.
pnpm install --frozen-lockfile
pnpm check
For real-vault development, create an ignored .env.local:
OBSIDIAN_VAULT_PATH=/absolute/path/to/vault
Then run:
pnpm dev:install
Use a test vault when possible. pnpm dev:install overwrites Lacewing's
installed runtime files in the configured vault.
The installer copies only main.js, manifest.json, and styles.css to
.obsidian/plugins/lacewing. It never copies source files or node_modules
into the vault.
Useful scripts:
pnpm lint — run the Obsidian ESLint rules.pnpm typecheck — type-check without emitting files.pnpm test — run the Vitest suite.pnpm build — produce a minified main.js.pnpm check — run lint, type-checking, tests, and a production build.pnpm dev — watch and rebuild during development.pnpm dev:install — build and install the three runtime artifacts.pnpm release:check — run every check and validate release artifacts.See Architecture, Testing, and Releasing for contributor documentation.
Contributions are welcome. For substantial changes, please open an issue first so the approach can be discussed.
By submitting a contribution, you confirm that you have the right to contribute it and agree that it will be licensed under the MIT License.
Lacewing is available under the MIT License. You may use, modify, redistribute, sublicense, and sell copies, including for commercial purposes, provided that the copyright and license notices are retained.
Lacewing is an independent community plugin and is not affiliated with or endorsed by Obsidian.