ballz
unlistedby chip44
Obsidian Plugins
A collection of personal plugins for Obsidian.
Not published on the community store and I don't plan to (unless there's enough demand).
Installation
Currently, you'll need to build plugins manually.
Clone the repository, run pnpm i, then build a plugin with PLUGIN=foo pnpm run build.
See Development for more info.
Available Plugins
Autopair
Customize auto-pairing characters.
The plugin uses CodeMirror's native auto-pairing feature and exposes the configuration.
[!IMPORTANT] Enable
Auto-pair bracketsandAuto-pair Markdown syntaxoptions in Obsidian settings, otherwise the functionality might become inconsistent.
[!NOTE] If you plan on using this only for
$, you're probably better off binding Obsidian's built-inToggle inline mathcommand to a hotkey (e.g.Ctrl+M).
Breathing Room
Allow spaces before and after $ in inline math.
This is a better alternative to No more flickering inline math since it doesn't rely on custom text processing and transactions, and instead allows a seamless experience without modifying the source text.
Glovebox
Automatically expand snippets while typing.
The plugin uses CodeMirror's native snippets feature and exposes the configuration.
Kanban Confetti
An extension to Bases' Kanban view that adds a confetti animation to matching columns, similar to the confetti celebrations in Trello.
Keystone
Force QWERTY layout inside math and code blocks, regardless of system layout.
This fixes an annoying issue for people who use a non-English keyboard layout (Cyrillic, Hebrew, Arabic, etc.) and frequently write math or code, forcing them to constantly switch layouts when entering or leaving math and code blocks.
[!TIP] Works best alongside Breathing Room, which keeps inline math in math mode (something this plugin relies on for proper context detection).
[!IMPORTANT] If you're using LaTeX Suite, Autopair, or other similar plugins that transform input text, make sure to enable
Compatibility modein settings to allow other input handlers to run (without it, they might not work at all in math/code contexts).
Otherwise, it's best to leave it disabled for stability and performance reasons.
Match Brackets
Enable and customize highlighting of matching brackets.
Use the .cm-editor.cm-focused .cm-matchingBracket and .cm-editor.cm-focused .cm-nonmatchingBracket CSS selectors to change their appearance.
The plugin uses CodeMirror's native bracket matching feature and exposes the configuration.
Plumb
Format notes using dprint.
dprint strictly follows the CommonMark specification so unfortunately it's not very customizable, but hey at least it's fast and consistent!
[!NOTE] The bundle size is quite large (~750 KB) due to WASM (which may impact Sync users), but the plugin loads it at runtime, so startup time is unaffected.
Development
Use PLUGIN=foo pnpm run dev to start the development server which automatically rebuilds the specified plugin as you make changes.
Alternatively, you can run pnpm run dev:all to watch all plugins at once.
To create a release build, use PLUGIN=foo pnpm run build or pnpm run build:all.
If the VAULT environment variable is set, the built plugin files are automatically copied to <VAULT>/.obsidian/plugins/<plugin-id>/ after each built.
.env files are also supported.
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.