Page Flow

approvedunreviewed

by shallow1992

Scroll notes page-by-page and transition to the next file with single hotkeys.

↓ 72 downloadsUpdated 14d agoMIT

Page Flow for Obsidian

Effortless note reading, inspection, and triage in Obsidian. Scroll page-by-page and seamlessly transition to the next file with single hotkeys.

Inspired by RSS readers and e-book pagers, Page Flow lets you glide through entire folders of notes without ever touching your mouse or trackpad.


✨ Key Features

1. πŸ”„ Hybrid Single-Key Navigation (Scroll or Next / Previous File)

  • Forward Navigation:
    • Press your hotkey to scroll down note content by a configurable percentage (default: 85%).
    • When the bottom of the current note is reached, pressing the hotkey again seamlessly opens the next file in the folder, positioning you right at the top.
  • Symmetrical Backward Navigation:
    • Scrolling up reaches the top of the current note, then seamlessly opens the previous fileβ€”positioned right at the bottom so you can read backwards naturally.
  • Fly-by Protection:
    • During rapid scrolling, target reaches the bottom safely while the view smoothly catches up, preventing premature or accidental file switches.

2. πŸ“‚ Visual File Explorer Order Tracking

  • Naturally follows the visual top-to-bottom file order seen in Obsidian's left sidebar File Explorer.
  • Supports manual folder file arrangements and custom sorting modes.
  • Strictly scoped to the current folderβ€”never accidentally jumps out into unrelated directories.
  • Six additional sorting rules are also available (alphabetical ascending/descending, creation time, modification time).

3. πŸš€ Continuous Momentum Physics & Tuning

  • Rapid Consecutive Tap Acceleration:
    • Rapidly tapping the hotkey seamlessly ramps up cruising speed without resetting velocity or stuttering.
    • Dynamically scales both velocity and single-tap distance in sync to maintain smooth flight.
  • Configurable Queue Cap:
    • Set the maximum queued screens (default: 5.0 screens, range: 1.0 to 15.0). Keeps deceleration crisp and predictable.
  • Configurable Acceleration Multiplier:
    • Tune maximum speed from 1.0x (steady, no acceleration) up to 5.0x (ultra-fast cruising). Default is a mild, controllable 2.2x.
  • CodeMirror 6 Layout-Shift Resistance:
    • Reliably delivers the intended scroll distance even when CodeMirror dynamically recalculates virtual line heights in long documents.

4. ⌨️ Dedicated Independent Commands

In addition to hybrid navigation, dedicated commands are available for focused workflows:

  • Scroll page down / Scroll page up: Pure in-note scrolling without switching files.
  • Go to next file in folder / Go to previous file in folder: Instant file navigation regardless of scroll position.

⌨️ Recommended Hotkey Setup

Configure your preferred hotkeys in Settings > Hotkeys (search for Page Flow):

CommandRecommended HotkeyDescription
Forward: Scroll down or go to next fileAlt + Space (or PageDown, Alt + J)Primary forward reading step
Backward: Scroll up or go to previous fileAlt + Shift + Space (or PageUp, Alt + K)Primary backward review step
Scroll page downSpace / PageDownIn-note scroll only
Scroll page upShift + Space / PageUpIn-note scroll only
Go to next file in folderAlt + DownJump to next note
Go to previous file in folderAlt + UpJump to previous note

βš™οΈ Settings & Defaults

SettingDefaultRange / OptionsDescription
Scroll amount (%)85%50% – 100% (step: 5%)Percentage of viewport height to scroll on each step. Retains 15% context for smooth reading.
Smooth scrollingONToggleAnimates scrolling smoothly between page steps.
Scroll animation duration (ms)280 ms100 – 1,000 ms (step: 20 ms)Base duration of smooth scroll animation. Accelerates on rapid taps.
Maximum queued scroll (screens)5.01.0 – 15.0 (step: 0.5)Maximum screens to queue ahead during rapid presses. At 85% scroll, 5 screens allows ~6 rapid taps.
Maximum acceleration multiplier2.21.0x – 5.0x (step: 0.1x)Maximum cruising velocity multiplier under rapid consecutive key presses.
File sort orderFile explorer order7 choicesOrder for navigating folder files. Follows sidebar layout by default.
Loop folder navigationOFFToggleWhen reaching the last file, cycles back to the first file.
Boundary threshold (px)10 px0 – 50 px (step: 5 px)Buffer in pixels to detect note top/bottom boundaries.
Reset to default settingsβ€”ButtonResets all settings back to recommended initial values with one click.

πŸ“¦ Installation

From Obsidian Community Plugins (Recommended once approved)

  1. Open Settings > Community plugins.
  2. Turn on Community plugins.
  3. Click Browse and search for Page Flow.
  4. Click Install, then Enable.

Beta Testing via BRAT

  1. Install the BRAT plugin from Community plugins.
  2. In BRAT settings, click Add Beta plugin.
  3. Enter shallow1992/obsidian-page-flow.
  4. Enable Page Flow in Community plugins.

πŸ› οΈ Development & Testing

All builds, tests, and verifications run isolated inside Docker:

# Run unit tests (Vitest)
docker compose run --rm page-flow npm test

# Build production bundle (main.js)
docker compose run --rm page-flow npm run build

# Watch mode for local development
docker compose run --rm page-flow npm run dev

πŸ”’ Privacy & Security

  • 100% Local & Offline: Page Flow performs zero network requests, contains zero telemetry or tracking code, and never accesses external services.
  • Zero Plaintext Secrets: No credentials or tokens are ever stored.
  • Safe Read-Only Navigation: Page Flow only navigates active leaves and reads folder contentsβ€”it never modifies, deletes, or overwrites your notes.

πŸ“„ License

MIT License. See LICENSE for details.

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.