Skip to content

jerryj6/TypingSpeed

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⚡️ TypingSpeed

A lightweight, native macOS Menu Bar application that displays your real-time global typing speed (WPM) with stunning liquid-glass charts, premium custom gradient themes, and adaptive baseline smoothing.

TypingSpeed Icon


🔒 Privacy & Security Guarantee

Because TypingSpeed monitors keystrokes globally to calculate typing speed, security and trust are our highest priorities:

  • 🚫 Zero Network Transmissions: The application contains absolutely no networking, HTTP, or communication frameworks. It is physically incapable of transmitting any data over the internet.
  • 🚫 Zero Keystroke Logging: The app never stores, records, or caches the characters you type. Keystroke events are processed in-memory solely to record a high-precision timestamp, instantly discarding key names, character codes, and text data.
  • 🛠️ Fully Auditable: The entire codebase is contained in a single, clean file (main.swift), letting you audit every line of source code before compilation.

✨ Features

  • 🚀 Instant Baseline Stabilization (Monkeytype Raw WPM): Uses a dynamic elapsed-time calculation model (min(elapsedTime, windowDuration)) so that your typing speed stabilizes to your true baseline (e.g., 100-130 WPM) within 2 seconds of typing, completely eliminating the standard 60-second ramp-up delay.
  • ❄️ Freeze-Frame on Pause: When you stop typing to read or think, the status bar display freezes instantly at your last active speed. The values never slowly decay down to 0.
  • 📈 Adaptive EMA Smoothing: Features an adaptive exponential moving average. Big speed changes (starting, fast bursts) snap instantly to target (0.35 factor), while stable baseline writing remains perfectly filtered and jitter-free (0.08 factor).
  • 🛡️ Zero Menu Bar Layout Shifting: Designed with a custom AppKit subview layout and fixed-width constraints. The speed digits update dynamically without causing the other menu bar icons to jump, shift, or twitch.
  • 🎨 Premium Gradient Themes: Supports 6 hand-curated themes (Classic Indigo, Forest Green, Royal Purple, Sunset Orange, Cyberpunk Neon, and Nord Gray) that color both the menu bar text and the speed history graph.
  • ☕ Idle Coffee Indicator: Shows a dim, minimalist coffee cup () icon next to your locked average speed when you are away from the keyboard, transitioning back to active color gradients the moment you type.
  • 📊 Interactive Speed Chart: Open the dropdown to view a real-time sliding line graph of your typing speed history over 1 to 5 minutes, rendered with translucent filled gradients.
  • 🎛️ Customize Settings: Adjust active calculation windows (3s burst up to 1hr average), filter out system command hotkeys, and toggle the "WPM" display suffix.

🚀 Installation & Setup

Install from Releases (Recommended)

  1. Go to the Releases tab on GitHub and download the latest TypingSpeed.dmg package.
  2. Double-click the downloaded .dmg file to mount it.
  3. Drag the TypingSpeed app icon into your Applications folder shortcut.
  4. Open the app from your Applications folder.

Running & Granting Permissions

  1. On first launch, the app will run as an accessory agent in your Menu Bar. You will see a ⚠️ Setup warning indicating accessibility permission is required.
  2. Click the menu icon and choose Grant Permission in System Settings...
  3. System Settings will open to the Privacy & Security > Accessibility panel. Enable the toggle for TypingSpeed in the list.
  4. Start typing anywhere globally to see your real-time WPM count update!

🛠️ Building & Running from Source

Prerequisites

  • macOS 10.15 Catalina or later
  • Xcode Command Line Tools installed (run xcode-select --install if needed)

Build the Application Bundle

  1. Clone or download this repository.
  2. Open your terminal, navigate to the folder, and run the build script:
    ./build.sh
  3. This creates a native application bundle named TypingSpeed.app in the directory.

Build the Installer DMG

To generate the installer .dmg file locally:

./release.sh

This compiles the application and packages it with an Applications shortcut folder inside a double-clickable disk image (TypingSpeed.dmg) on your Desktop.


📄 License

This project is open-source and available under the MIT License.

About

Lightweight, native macOS menu bar typing speed (WPM) tracker with liquid-glass charts and custom gradient themes.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors