Bases Lock

pending

by tcyeee

Hides the action bar at the top of the Bases view.

β˜… 4 starsUpdated 11d ago0BSDDiscovered via Obsidian Unofficial Plugins
View on GitHub

banner

English | δΈ­ζ–‡




A small Obsidian plugin to hide the Obsidian Bases toolbar and lock header interaction on demand.
You can quickly switch the state by clicking the Lock / Unlock button.

Note: The plugin only works in Reading view.

1

⬇️ Installation

From community plugins (recommended)

You can install this plugin directly from Obsidian’s community plugins browser:

  1. Open Obsidian and go to Settings β†’ Community plugins
  2. Select Browse and search for β€œBases lock”
  3. Click Install, then enable the plugin

You can also install it directly from the community plugins page:
Install from community plugins

Manual install (local/dev build)

  1. Create the plugin folder inside your vault:
<Vault>/.obsidian/plugins/obsidian-bases-lock/
  1. Copy these files into that folder:

    • main.js
    • manifest.json
    • styles.css
  2. Open Obsidian:

    • Go to Settings β†’ Community plugins β†’ Installed plugins
    • Enable Bases Lock
  3. Make sure the official Bases core plugin is enabled.

⭐ Usage

  1. Move your mouse over a Base; a locked button will appear.
  2. Click it to toggle lock / unlock.

Development & build

  • Install dependencies:
npm install
  • Development mode (watch build):
npm run dev
  • Production build:
npm run build

After building, the latest main.js will be generated in the plugin root folder for Obsidian to load.

Notes

  • The plugin only renders the button and controls toolbar / header behavior in Reading view.
  • The selectors (such as .bases-toolbar, .bases-header, .bases-thead, etc.) depend on the current Obsidian Bases DOM structure:
    • If a future Obsidian update changes these classes, you can inspect the actual classes via DevTools and adjust the selectors in styles.css.
  • The plugin only looks at the .base embed syntax (|x / |o) in the current document and does not scan or modify other notes.

Design rationale

Assume src/a.base is embedded in any of the following forms:

  • ![[src/a.base]]
  • ![My Base](src/a.base)
  • ![My Base|o](src/a.base)
  • ![My Base|x](src/a.base)

After clicking the button:

  • From unlocked β†’ locked
    • Any of the forms above will be normalized to:
![My Base|x](src/a.base)
  • If there was no display name (for example ![[src/a.base]]), the file name (without the .base suffix) will be used:
![[src/a.base]]  β†’  ![a|x](src/a.base)
  • From locked β†’ unlocked
    • If the current syntax is ![My Base|x](src/a.base), it will be changed to:
![My Base|o](src/a.base)

At the same time:

  • x β†’ hide toolbar + disable .bases-thead click, button text shows locked
  • o β†’ restore toolbar and header interaction, button text shows unlocked

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.