FingerGo

command module
v1.0.0-beta Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 2, 2025 License: Apache-2.0 Imports: 12 Imported by: 0

README ΒΆ

FingerGo

FingerGo cross-platform touch-typing trainer modern app

FingerGo is a cross-platform touch-typing trainer, designed to improve typing speed and accuracy, with a user-friendly and intuitive interface.
It includes real-time keyboard visualization, a hierarchical text and code library, and live statistics tracking.
Built with Go ↔ Wails ↔ Vanilla JavaScript (ES6+). Available for Linux, macOS, and Windows.

Features

β–Έ Clean Interface Design

β–Έ Shortcuts, Zen Mode, keyboard/Stat Toggle

β–Έ Real-time visual keyboard with finger mapping

β–Έ Hierarchical text/code library (plain text and code samples)

β–Έ Live stats: WPM, CPM, accuracy, per‑key mistakes, session history

β–Έ Eye-friendly Dark/Light themes

β–Έ Customizable color theme

Installation

πŸͺŸ Windows

Download from Releases:

Portable:

  1. Download FingerGo-{VERSION}-x64-portable.zip
  2. Extract and run FingerGo.exe

Requirements: Windows 10/11 with WebView2 (auto-downloads if missing)

🍎 macOS

Download from Releases:

DMG:

  1. Download FingerGo-{VERSION}-universal.dmg
  2. Open DMG and drag FingerGo to Applications
  3. First launch: Right-click β†’ Open (bypasses Gatekeeper if unsigned)

Supports: Intel and Apple Silicon (Universal binary)

🐧 Linux

Download from Releases:

Flatpak (recommended):

flatpak install --user FingerGo-{VERSION}-x86_64.flatpak
flatpak run com.ashbuk.FingerGo

Portable (tar.gz): Requires WebKit2GTK 4.1 installed on your system.

tar -xzf FingerGo-{VERSION}-linux-x86_64.tar.gz
./FingerGo


---

## Tech Stack

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ GUI LAYER │◄──── Wails ───────►│ INTERNAL LAYER β”‚ β”‚ HTML/CSS/JS β”‚ Bridge β”‚ Go 1.25+ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ Event-Driven Repository β”‚ β”‚ β”Œβ”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β” β”‚ EventBus β”‚ β”‚ Repos β”‚ β”‚ (pub/sub)β”‚ β”‚ (DI) β”‚ β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ Modular JS Domain Models β”‚ β–Ό β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ JSON Storage β”‚ β”‚ ~/.local/share/... β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜


- **Backend:** [Go](https://github.com/golang/go) 1.25+ with Repository Pattern (DI)
- **Bridge:** [Wails v2](https://github.com/wailsapp/wails) provides Go↔JS communication
- **Frontend:** Vanilla [JavaScript](https://github.com/tc39/ecma262) (ES6+) with Event-Driven Architecture (pub/sub EventBus)
- **Storage:** JSON files in XDG directories
- **Platforms:** [Linux](https://kernel.org/), [macOS](https://www.apple.com/macos/), [Windows](https://www.microsoft.com/windows/)

## For Developers

- [Technical design](docs/tech-design/)
- [Architecture overview](docs/tech-design/architecture.md)
- [Makefile](Makefile)
- [Contributing](docs/CONTRIBUTING.md)

## Acknowledgments

- [Wails](https://wails.io/)

## Apache 2.0 [LICENSE](LICENSE)

If you use this project, please link back to this repo and ⭐ it if it helped you.

## Sponsor

[![Sponsor](https://img.shields.io/badge/Sponsor-πŸ’–-pink?style=for-the-badge&logo=github)](https://github.com/sponsors/AshBuk) [![PayPal](https://img.shields.io/badge/PayPal-00457C?style=for-the-badge&logo=paypal&logoColor=white)](https://www.paypal.com/donate/?hosted_button_id=R3HZH8DX7SCJG)

Please consider supporting development

Documentation ΒΆ

Overview ΒΆ

Package main provides FingerGo, a desktop touch-typing trainer.

Overview ΒΆ

FingerGo is a desktop touch-typing trainer app with real-time keyboard visualization and detailed typing analytics (WPM, accuracy, mistakes). Built with Wails (Go internal layer + HTML/CSS/JS GUI). Distributed for Linux (Flatpak).

Tech Stack ΒΆ

- Internal: Go 1.25+ - Desktop: Wails v2 - GUI: Vanilla JavaScript (ES6+), HTML5, CSS3 - Storage: JSON files - Platform: Linux

Key Features ΒΆ

- Real-time visual keyboard with finger mapping - Hierarchical text library (plain text and code samples) - Detailed stats: WPM, accuracy, per-key mistakes, session history - Minimalist UI with the Go gopher mascot

Package main provides Linux-specific theme detection. Sets GTK_THEME environment variable based on system color-scheme preference.

Directories ΒΆ

Path Synopsis
internal
storage
Package storage manages the on-disk data layout (container for the FingerGo app data).
Package storage manages the on-disk data layout (container for the FingerGo app data).

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL