Full screen mode with configurable hidden elements via modal - including sidebars. Hidden elements appear on hover.
- Single full screen mode with individually configurable hidden elements
- Hover-to-reveal: move cursor to viewport edges to temporarily show hidden elements
- Left sidebar: collapses on activation, reveals on ribbon hover, hides on editor return
- Right sidebar: collapses on activation, auto-closes when leaving the sidebar area
- Persistent state: remembers whether full screen was active before a restart (optional)
Hidden elements (configurable)
| Element | Hover zone |
|---|---|
| Title bar + tab strip | Top edge |
| View header (file title inside editor) | Top area |
| Ribbon | Left edge |
| Status bar | Bottom edge |
| Left sidebar | Revealed with ribbon on left hover |
| Right sidebar | Collapses on activation |
For toggling sidebars with shortcuts or mouse movements, check out these companion plugins:
- Obsidian Easy Toggle Sidebars: Easily toggle left and right sidebars using modifier keys and mouse movement.
- Obsidian Gesture Commander: Trigger sidebar toggles and other actions by mapping commands to custom mouse gestures.
Access via the plugin settings tab or the quick modal ("Configure hidden elements" in command palette or editor context menu):
- Persistent full screen: restore full screen mode on restart if it was active when Obsidian closed
- Per-element toggles (changes apply immediately if mode is active)
N.B: Enabling hide left sidebar also enables hide ribbon
All actions are accessible via the command palette or right-click. Hotkeys can be assigned in Obsidian settings.
This plugin uses a template that automates the development and publication processes on GitHub, including releases. You can develop either inside or outside your Obsidian vault.
src/
types.ts — enums, interfaces
constants.ts — element configs, default settings
hoverDetector.ts — mouse movement + edge detection + reveal/hide logic
sidebarUtils.ts — sidebar collapse/expand helpers
modal.ts — quick-settings modal
menuManager.ts — context menus (editor + reading mode)
settings.ts — PluginSettingTab
main.ts
styles.css
Note: If
styles.cssis accidentally placed in the root folder instead ofsrc, it will be automatically moved to the correct location when running any development command. After building, a copy ofstyles.csswill appear in the root folder as part of the normal release process.
This plugin shares its reading mode context menu with Obsidian Smart Print using a cooperative pattern:
- Both plugins listen to the native
contextmenuevent ondocument - The first plugin to respond creates a shared menu stored at
window._sharedReadingMenu - It then defers menu display using
setTimeout(0)— this allows all othercontextmenulisteners to run first and add their own items - Subsequent plugins detect the existing menu and append their items
- After the event loop completes, the menu is displayed with all items combined
This approach avoids conflicts and ensures a unified context menu experience for users.
-
Inside the vault's plugins folder:
- Delete the
.envfile - Run npm commands as usual
- Delete the
-
Outside the vault:
- Set the paths in the
.envfile:TestVaultfor developmentRealVaultfor production simulation
- Necessary files will be automatically copied to the targeted vault
- Set the paths in the
npm run start: Opens VS Code, runsnpm install, thennpm run devnpm run dev: For developmentnpm run build: Builds the projectnpm run real: Simulates a traditional plugin installation in your REAL vaultnpm run bacp: Builds, adds, commits, and pushes (prompts for commit message)npm run acp: Adds, commits, and pushes (without building)npm run version: Updates version, modifies relevant files, then adds, commits, and pushesnpm run release: Creates a GitHub release (prompts for release title, can be multiline using\n)
npm run startnpm run bacpnpm run versionnpm run release
- obsidian-typings: This template automatically includes obsidian-typings, providing access to additional types not present in the official API.