Mimir Splash

approvedunreviewed

by tommyhedgerow

Play a short pixel-art animation over the vault as it opens, then get out of the way.

↓ 50 downloadsUpdated 24d agoMIT

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:

<Vault>/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/, so copy that folder to <Vault>/Tools/splash/. If you use the Mimir vault 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 <Vault>/.obsidian/plugins/mimir-splash/.
  3. Copy the four animation files from media/ into <Vault>/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.

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.