Popup Review for Spaced Repetition

by uzusio
5
4
3
2
1
Score: 50/100

Description

Popup Review for Spaced Repetition

Reviews

No reviews yet.

Stats

0
stars
78
downloads
0
forks
53
days
22
days
22
days
0
total PRs
0
open PRs
0
closed PRs
0
merged PRs
0
total issues
0
open issues
0
closed issues
35
commits

Latest Version

23 days ago

Changelog

1.0.5

Added

  • Options menu in the popup (⋯ next to ✕): pause until resumed, or snooze popups for 30 minutes / 1 hour / 3 hours. Snooze persists across restarts, shows in the settings schedule line, and resuming via the status-bar bell clears it.
  • New-card introduction is now an explicit three-state mode: don't introduce / up to a daily limit (default, 10/day) / unlimited — the previous numeric-only setting could not express "unlimited". Existing settings migrate automatically.

Fixed

  • Popups no longer appear back-to-back. The popup interval was measured from when a popup was shown, so one left open past the interval was immediately followed by the next after being rated. The interval now restarts when a popup ends, keeping popups at least one interval apart.

追加

  • ポップアップにオプションメニュー(✕の左の⋯):再開するまで停止/30分・1時間・3時間のスヌーズ。スヌーズは再起動をまたいで維持され、設定画面に表示、ベルアイコンでの再開で解除されます
  • 新規カードの導入が3状態の明示的なモードに:出さない/1日の上限枚数まで(デフォルト10枚)/無制限。既存設定は自動移行されます

修正

  • ポップアップが連続で表示される問題を修正。 間隔の起点が表示時刻だったため、長時間開いたままのポップアップを評価すると直後に次が出ていました。間隔はポップアップ終了時から数え直すようになり、常に設定した間隔以上空きます

README file from

Github

Popup Review for Spaced Repetition

日本語版 README はこちら / Japanese README

Review your Spaced Repetition flashcards without opening Obsidian: a small always-on-top popup appears at regular intervals, shows one due card, and lets you reveal the answer and rate it (Again / Hard / Good / Easy) right in the popup.

Ratings are written through the Spaced Repetition plugin's own review pipeline (the same code path as its review modal), so your scheduling data stays fully consistent — no re-implementation of SM-2 or FSRS.

Tested with Spaced Repetition v1.15.4.

How it works

  1. A scheduler checks at your configured interval (default: every 2 hours) whether any cards are due.
  2. If so, a frameless popup appears at the bottom-right of your primary display — without stealing focus. Obsidian can stay minimized.
  3. Read the question, click Show answer (or press Space), then rate the card with the four buttons (or keys 14).
  4. The rating is saved through Spaced Repetition itself, and the popup closes. Closing the popup without rating writes nothing — the card simply stays due.

Requirements

  • Obsidian desktop (Windows / macOS / Linux; the popup uses an Electron window, so mobile is not supported)
  • The Spaced Repetition plugin, installed and enabled

Installation

  1. Open Settings → Community plugins → Browse.
  2. Search for Popup Review and install Popup Review for Spaced Repetition.
  3. Enable it in Settings → Community plugins.

Manual

  1. Download main.js, manifest.json, and styles.css from the latest release.
  2. Put them into <your vault>/.obsidian/plugins/sr-popup-review/.
  3. Reload Obsidian and enable Popup Review for Spaced Repetition.

Using the popup

Interaction Effect
Click Show answer / press Space or Enter Reveals the answer in place
Click Again / Hard / Good / Easy / press 14 Saves the rating and closes
Click / press Esc Closes without saving anything
Click (next to ✕) Options menu: pause until resumed, or snooze popups for 30 min / 1 h / 3 h
Drag the header Moves the popup

The rating buttons use the labels you configured in the Spaced Repetition plugin. Card text is rendered as Markdown, and cloze deletions are masked exactly as in the normal review modal.

You can also open a popup at any time with the command "Show review popup now" (via the command palette).

To pause automatic popups, click the bell icon in the status bar (bottom right), use the "Toggle popup pause" command, or flip the toggle in settings — all three control the same switch. The manual show-popup-now command still works while paused.

Settings

Setting Default Description
Language Obsidian's default Interface language of this plugin (English / 日本語)
Pause popups off Temporarily stop automatic popups (also toggled by the status-bar bell icon and a command)
Popup interval (minutes) 120 How often a popup may appear (minimum 5)
Do not disturb on, 01:00–09:00 Toggle plus a time range with no popups; supports ranges across midnight
Auto-close (seconds) 90 Closes an untouched popup (nothing is written); 0 disables
New cards Up to a daily limit (10/day) When nothing is due, never-reviewed cards are introduced into the cycle: don't introduce / up to a daily limit / unlimited
Randomize deck order on Pick each popup card from a random deck (weighted by due count) so every due card has a roughly equal chance; off follows Spaced Repetition's sequential deck order
Skip popups during fullscreen apps on Postpones popups while Windows reports a fullscreen app or presentation (games, slideshows, F11); the card appears within a minute after fullscreen ends. Windows only
Deck filter All decks All decks or Only listed decks
Deck list Dual-list picker: move decks between available and target with the add/remove buttons (double-click works too); a target deck also covers its subdecks. Empty target list = all decks
Show deck name on Shows the deck path and due count in the popup header
Check shortly after startup off Runs one check ~15 s after Obsidian starts

The settings tab also shows whether the Spaced Repetition integration is working, and why not if it isn't.

Data safety

  • Ratings go through Spaced Repetition's own review sequencer — identical writes to pressing the buttons in its modal (scheduling comment, sibling burying, load balancing, FSRS/SM-2, all of it).
  • This plugin depends on internals of the Spaced Repetition plugin, so it probes every internal it needs before each use. If a future Spaced Repetition version changes them, popup reviews are disabled with a notice — the plugin never writes through an unknown code path.
  • Dismissing or auto-closing a popup writes nothing.

Known limitations

  • Popups appear only while Obsidian is running (minimized is fine).
  • The popup is a custom always-on-top window, not an OS notification: it does not appear in the notification center and ignores Focus Assist itself. Fullscreen apps and presentations are detected separately and skipped (see settings).
  • Position is fixed to the bottom-right of the primary display for now.

Development

npm install
npm run dev    # one-shot build into ../sr-popup-test-vault (see esbuild.config.mjs)
npm run watch  # same, but watch mode
npm run build  # typecheck + production build to repo root

Development builds are emitted directly into a dedicated test vault (C:/work/sr-popup-test-vault). Never point dev builds at a real vault — this plugin writes to SR scheduling data.

License

MIT