Current View

approved

by Lucas Ostmann

Automatically set the view mode (Reading, Live Preview, Source) for notes using folder rules, file patterns, or frontmatter

18 stars2,358 downloadsUpdated 1d agoMIT
View on GitHub

Current View for Obsidian

Automatically control view modes (Reading, Live Preview, Source) for your notes based on smart rules and patterns.

GitHub Release Downloads CI Status License


✨ Features

📖 Automatic View Mode Control

Automatically applies the right view mode when opening notes based on your rules:

  • Reading mode for documentation and finished content
  • Live Preview for active note-taking
  • Source mode for templates and technical notes

Automatic view mode switching

🎯 Flexible Rule System

Configure view modes based on:

  • 📁 Folder paths – All notes in Templates/ open in Source mode
  • 🔍 File patterns – Match files using RegEx (e.g., all daily notes)
  • 🏷️ Tag rules – Match notes by Obsidian tags (e.g., all notes tagged sent open in Reading mode)
  • 📋 Frontmatter – Per-note control with custom metadata field

Rules configuration in settings

🔒 Quick Lock from Context Menu

Right-click any file or folder in the File Explorer or Notebook Navigator to instantly lock it to a specific view mode.

Lock view mode from context menu

🏷️ Visual Lock Indicators

See at a glance which files and folders are locked with inline icon badges:

  • 📖 Book icon – Locked to Reading mode
  • 🖊️ Pen icon – Locked to Live Preview
  • 💻 Code icon – Locked to Source mode

Lock icons in File Explorer Lock icons in Notebook Navigator

Lock icons in File Explorer (left) and Notebook Navigator (right)

🔌 Notebook Navigator Integration

Full support for Notebook Navigator plugin:

  • ✅ Context menu integration using official API (v1.2.0+)
  • ✅ Lock icons in both navigation pane and file list
  • ✅ Real-time updates when locking/unlocking

🧠 How It Works

View Mode Priority

When you open a note, Current View checks for view mode rules in this order:

1. File Pattern Rules  →  Exact path match or RegEx pattern
2. Tag Rules           →  Any matching tag in frontmatter
3. Folder Rules        →  Deepest matching folder wins
4. Frontmatter         →  Per-note override
5. Obsidian Default    →  Your global Obsidian setting

Example:

  • You have a folder rule: Templates/ → Source mode
  • You open Templates/meeting-note.md
  • The note has frontmatter: current view: reading
  • Result: Opens in Reading mode (frontmatter wins)

Example with tag rule:

  • You have a tag rule: sent → Reading mode
  • You open a note with tags: [sent] in its frontmatter
  • Result: Opens in Reading mode (tag rule applies automatically)

📑 Usage Examples

Frontmatter Control

Add a frontmatter field to any note for per-note control:

---
current view: reading     # Options: reading, source, live
---

You can customize the frontmatter key in plugin settings (e.g., change it to view-mode or display).

Common Use Cases

📚 Documentation vault:

# Lock all files in Docs/ to Reading mode
Folder: Docs/
Mode: reading

🗓️ Daily notes:

# Match pattern like "2024-01-15.md"
Pattern: ^\d{4}-\d{2}-\d{2}\.md$
Mode: live

⚙️ Templates:

# All templates open in Source mode for editing
Folder: Templates/
Mode: source

📬 Published/sent notes:

# Notes tagged with 'sent' or 'published' open in Reading mode
Tag: sent
Mode: reading

Any note with tags: [sent] in its frontmatter will automatically open in Reading mode.


⚙️ Settings

Plugin settings panel

Core Settings

SettingDescriptionDefault
Frontmatter keyWhich frontmatter field to read for view modecurrent view
Debounce timeoutDelay (ms) before applying view mode to prevent rapid switching0

Behavior Options

SettingDescriptionDefault
Ignore opened filesDon't change view mode for notes already open in workspacefalse
Ignore force view when not in frontmatterOnly apply rules if frontmatter explicitly sets a view modefalse

Visual Feedback

SettingDescriptionDefault
Show explorer iconsDisplay lock icons next to files/folders in File Explorer and Notebook Navigatortrue
Show lock notificationsShow notice when locking/unlocking via context menutrue

Rules Configuration

  • Folder Rules: Apply view mode to all notes in a folder (context menu locks write here)
  • Tag Rules: Apply view mode to notes that have a specific tag
  • File Patterns: RegEx patterns or exact file paths (context menu file locks write here)

📦 Installation

From Obsidian Community Plugins (Recommended)

  1. Open SettingsCommunity Plugins in Obsidian
  2. Click Browse and search for "Current View"
  3. Click Install, then Enable

Via BRAT

  1. Install BRAT plugin
  2. In BRAT settings, click Add Beta Plugin
  3. Enter: LucEast/obsidian-current-view
  4. Enable the plugin in Community Plugins

Manual Installation

  1. Download the latest main.js, manifest.json, and styles.css from Releases
  2. Create folder: <vault>/.obsidian/plugins/obsidian-current-view/
  3. Copy the downloaded files into this folder
  4. Reload Obsidian and enable the plugin in SettingsCommunity Plugins

🔗 Compatibility

Supported Plugins

  • Notebook Navigator (v1.2.0+) – Full integration with context menus and lock icons
  • File Explorer – Native Obsidian file explorer support

Requirements

  • Obsidian v1.0.0 or higher

🛠 Development

Setup

git clone https://github.com/LucEast/obsidian-current-view.git
cd obsidian-current-view
npm install

Build Commands

npm run dev          # Watch mode - auto-rebuild on changes
npm run build        # Production build

Testing

npm run test         # Run unit tests once
npm run test:watch   # Watch mode during development
npm run coverage     # Generate V8 coverage report

Architecture

See CLAUDE.md for development guidelines and architecture overview.


🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes using conventional commits (git commit -m 'feat: add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

💡 Support

If you encounter issues or have feature requests:


🙏 Acknowledgments

  • Built for Obsidian
  • Integrated with Notebook Navigator by Johan Sanneblad
  • Inspired by the Obsidian community's need for better view mode control

📝 License

MIT – Free to use and modify.

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.