Skip to content

An Obsidian plugin that provides an interactive typing practice game with real-time performance tracking, visual feedback, and progress analytics.

License

Notifications You must be signed in to change notification settings

Real-Fruit-Snacks/typing-game

Repository files navigation

Typing Practice for Obsidian

An Obsidian plugin for improving typing speed and accuracy with real-time statistics, visual keyboard, timed tests, focused drills, and progress tracking.

Obsidian Downloads

Screenshots

Note: Screenshots coming soon. The plugin features a clean modal interface with real-time statistics, a color-coded visual keyboard, and progress charts.

Features

Game Modes

Quote Mode

  • Type through curated quotes of varying lengths
  • Choose difficulty: Short, Medium, Long, or All Lengths
  • Track your best WPM and accuracy per quote
  • See improvement over time with quote history

Timed Test Mode

  • Standard typing test format (like Monkeytype/TypeRacer)
  • Duration options: 15 seconds, 30 seconds, 1 minute, 2 minutes, 5 minutes
  • Continuous text generation - never run out of words
  • Personal best tracking per duration
  • Compare your WPM to standardized benchmarks

Visual Keyboard

  • On-screen QWERTY keyboard showing which keys to press
  • Two display styles:
    • Finger Zones: Color-coded by which finger should press each key
    • Theme Colors: Matches your Obsidian theme
  • Toggle visibility on/off
  • Keys highlight as you type

Real-Time Statistics

  • WPM: Words per minute (standard: 5 characters = 1 word)
  • Accuracy: Percentage of correct keystrokes
  • Time/Remaining: Elapsed time (quote mode) or countdown (timed mode)
  • Characters: Progress through the text
  • Errors: Total mistakes made

Sound Effects

  • Satisfying mechanical "thunk" on correct keystrokes
  • Error sound for mistakes
  • Completion chime when finishing
  • Fanfare for new personal records
  • Adjustable volume (0-100%)

Focused Drills

Targeted practice for specific key groups:

Drill Focus
Home Row ASDF JKL; keys
Top Row QWERTY UIOP keys
Bottom Row ZXCVB NM keys
Numbers 0-9 and number symbols
Punctuation Common punctuation marks
Capitals Shift key practice

Custom Text Input

Practice with your own content:

  • Clipboard: Paste text from anywhere
  • Current Note: Import text from the active Obsidian note (markdown stripped)
  • Saved Texts: Save favorite practice texts for later

Problem Key Analysis

  • Tracks error rate for each key you type
  • Identifies your weakest keys (>15% error rate)
  • View problem keys in the Statistics modal
  • Focused drills suggested based on your weak areas

Progress Tracking

  • Quote History: Per-quote performance over time
  • Timed History: Results for each duration
  • Statistics Modal:
    • WPM trend chart (rolling average)
    • Accuracy trend chart
    • Recent sessions table
    • Summary statistics

Installation

From Community Plugins (Recommended)

  1. Open Obsidian Settings
  2. Go to Community Plugins and disable Restricted Mode
  3. Click Browse and search for "Typing Practice"
  4. Click Install, then Enable

Manual Installation

  1. Download main.js, styles.css, and manifest.json from the latest release
  2. Create folder: <vault>/.obsidian/plugins/typing-game/
  3. Copy the three files into that folder
  4. Open Obsidian Settings > Community Plugins
  5. Enable "Typing Practice"

Usage

  • Open: Click the keyboard icon in the ribbon, or use Command Palette: "Open typing practice"
  • New Quote/Test: Press Tab or Enter after completing
  • Retry Same Text: Press R after completing
  • Close: Press Escape or click outside the modal

Keyboard Shortcuts

Key Action
Tab Skip to new quote/test
Enter Start new quote/test (on results screen)
R Retry the same text
Backspace Delete last character (disabled in Strict Mode)
Escape Close modal

Settings

Access via Obsidian Settings > Typing Practice

Display

Setting Description
Show keyboard Toggle visual keyboard visibility
Keyboard style Finger zones (color-coded) or Theme (matches Obsidian)
Default difficulty Short, Medium, Long, or All Lengths
Quote font size Adjust text size (0.8x - 2.0x)
Hide stats while typing Blur stats to reduce pressure
Show confetti Celebration animation on new records
Show keyboard animations Next-key glow, press feedback effects
Show progress bar Character progress display
Show instruction hints Keyboard shortcut hints on results screen
Show time warning Flash timer when running low (timed mode)

Sound

Setting Description
Enable sound effects Toggle all sounds on/off
Sound volume Adjust volume (0-100%)

Gameplay

Setting Description
Strict mode Disables backspace - forces accuracy
Auto-advance Automatically start next quote after completion
Auto-advance delay Wait time before auto-advancing (1-10 seconds)

Timed Test Mode

Setting Description
Default game mode Quote or Timed
Default test duration 15s, 30s, 1min, 2min, or 5min

Data Management

Action Description
Clear quote history Remove all quote performance data
Clear timed test history Remove all timed test results
Clear key statistics Reset problem key analysis
Clear custom texts Remove all saved custom texts

Mobile Support

This plugin is desktop only. It requires:

  • Web Audio API for sound effects
  • Physical keyboard input for typing practice
  • Larger screen for the visual keyboard display

These features are not available or practical on Obsidian Mobile.

Known Issues

  • First keystroke delay: On some systems, the first keystroke after opening may have a slight delay as the AudioContext initializes
  • Narrow windows: The visual keyboard is hidden at window widths below 400px to maintain usability

Technical Details

  • No build required: Pure JavaScript, works directly in Obsidian
  • Desktop only: Uses Web Audio API for sound effects
  • Data storage: All data saved via Obsidian's plugin storage
  • Theme compatible: Uses Obsidian CSS variables for consistent theming

License

MIT License - see LICENSE file for details.

Credits

Built for Obsidian using the Obsidian Plugin API.

Contributing

Issues and pull requests are welcome at the GitHub repository.

About

An Obsidian plugin that provides an interactive typing practice game with real-time performance tracking, visual feedback, and progress analytics.

Topics

Resources

License

Stars

Watchers

Forks