# Mimir Splash Plays a short pixel-art animation over the vault as Obsidian opens, once, then takes itself away. Any key, a click or Escape dismisses it early, and it never traps focus or blocks the workspace behind it. The animation is decoration, and it leaves on its own when it ends. ## What it does When the workspace has finished laying itself out, the plugin draws a curtain over the window and plays one clip on it. The clip runs once and holds its last frame; there is no loop. - **One frame, one build.** A light Obsidian plays the light build, a dark one plays the dark build. The two are not the same kind of file: the light build is a transparent WebM with an alpha plane, so it composites over the paper, and the dark build is an opaque MP4. Each build has a poster still, which is what plays when motion is reduced. - **The curtain wears the animation's own ground.** The piece was drawn on a near-black and on a lavender grey, neither of which is the vault's paper. The curtain uses the piece's colour while it is on screen, and the vault's own paper is what is revealed when it leaves. No theme token is changed. - **It leaves on its own.** The end of the clip closes it. If playback never starts, a ceiling of 12 seconds closes it instead. - **It can be dismissed at any moment.** Any key leaves, and the key press is swallowed, so the first press belongs to the splash rather than to the app. A click and Escape leave as well. - **Reduced motion is respected.** Where `prefers-reduced-motion: reduce` is set, the still poster is shown for 1.5 seconds and then faded out. - **It is marked as decoration.** No text is shown, nothing takes focus, and the curtain is hidden from assistive technology. ### The animation files live in your vault, not in the plugin The plugin reads four files from a fixed folder in the vault, and the folder is not configurable: ```text /Tools/splash/ mimir_startup_dark.mp4 mimir_startup_dark_poster.png mimir_startup_light.webm mimir_startup_light_poster.png ``` They are not downloaded and not bundled into `main.js`: a copy has to be in each vault that should play it. The four files are in this repository under [`media/`](media), so copy that folder to `/Tools/splash/`. If you use the [Mimir vault](https://github.com/tommyhedgerow/Mimir) they are already there and there is nothing to do. If a file is missing, nothing is drawn and one line is written to the developer console; the vault is not interrupted with a notice. The folder name is the `DIR` constant at the top of `src/main.js` for anyone who needs to move it. Mimir Splash is part of the Mimir learning vault; the project is at https://github.com/tommyhedgerow/Mimir. ## Install Mimir Splash is not in the community directory yet. Submission is pending, so the manual path is the one that works today. Manual install: 1. Download `main.js`, `manifest.json` and `styles.css` from the latest release at https://github.com/tommyhedgerow/obsidian-mimir-splash/releases. 2. Put the three files in `/.obsidian/plugins/mimir-splash/`. 3. Copy the four animation files from [`media/`](media) into `/Tools/splash/`. 4. Reload Obsidian, then enable **Mimir Splash** in Settings → Community plugins. Once the listing is live, the plugin can be installed from Settings → Community plugins → Browse, by searching for "Mimir Splash". ## Usage The animation plays when the vault opens, if that is switched on. Two commands are the whole interface: - `Play the startup animation` plays it now. - `Play the startup animation when the vault opens` switches the on-open behaviour on and off, and says which way it went. ## Settings There is no settings tab. The one setting, whether to play when the vault opens, is stored through Obsidian's data API in the plugin's own `data.json`, and it is toggled by the second command above. It is on by default. ## Disclosures - **Network use:** none. Nothing is downloaded or uploaded, and no remote media is requested. - **Files read:** the four files listed above, read from inside your vault through Obsidian's vault adapter, and no others. - **Files outside the vault:** none. The plugin never uses Node's filesystem modules. - **Data stored:** one boolean, whether to play on open, in the plugin's `data.json`. - **What it adds to the page:** one element covering the window while the animation plays. It is removed when the animation ends or is dismissed, and again if the plugin is unloaded. The object URLs made for the media are revoked when the plugin unloads. - **Accounts and payments:** none. - **Ads:** none. - **Telemetry:** none. Nothing is collected or sent anywhere. ## Licence MIT. See [LICENSE](LICENSE).