Skip to content

Levantado/typemonky

Repository files navigation

TypeMonky

TypeMonky is a local-first touch typing app for Linux (GTK4/libadwaita), optimized for Wayland and tiling window managers.

It includes two workflows:

  • Test: timed sessions with instant metrics
  • Practice: adaptive training based on your mistakes

Features

  • Wayland-friendly GTK4 desktop app
  • EN/RU typing support
  • Per-user local profiles
  • Session metrics: WPM, accuracy, consistency
  • Error analytics and adaptive practice blocks
  • Theme and typing font selection
  • Offline storage (SQLite)

Install

1. Flatpak (recommended)

Requirements:

  • flatpak
  • flatpak-builder

Build local Flatpak repo:

./scripts/typemonk package-prereq-check
./scripts/typemonk flatpak-build-local

Install from local repo:

flatpak --user remote-add --if-not-exists typemonky-local target/flatpak-repo
flatpak --user install -y typemonky-local io.typemonky.typemonky

Run:

flatpak run io.typemonky.typemonky

2. AUR (typemonky-bin)

After the package is published to AUR:

paru -S typemonky-bin

For local PKGBUILD testing, use packaging/aur-bin:

cd packaging/aur-bin
makepkg -si

3. AUR-style package (local VCS build)

From packaging/aur:

makepkg -si

Run:

typemonky

Run from source

./scripts/typemonk bootstrap
./scripts/typemonk build
./scripts/typemonk run-ui

Wayland run:

./scripts/typemonk run-ui-wayland

Quality checks

./scripts/typemonk test
./scripts/typemonk perf-smoke-ui
./scripts/typemonk perf-smoke-ui-wayland
./scripts/typemonk release-check

GitHub Actions runs the same gates on main, dev, and pull requests.

GitHub release build (Flatpak + AUR assets)

Release pipeline is triggered by pushing a version tag:

git tag v0.1.0
git push github v0.1.0

Release workflow publishes a GitHub Release with:

  • Linux archive: typemonky-vX.Y.Z-linux-x86_64.tar.gz
  • Flatpak bundle: typemonky-vX.Y.Z.flatpak
  • AUR metadata bundle: typemonky-vX.Y.Z-aur.tar.gz (PKGBUILD + .SRCINFO)
  • SHA256SUMS.txt for all artifacts

AUR auto-publish workflow

Workflow: .github/workflows/publish-aur.yml

  • Triggered automatically when a GitHub release is published.
  • Also supports manual dry-run with workflow_dispatch.
  • Renders typemonky-bin PKGBUILD from release tag + checksum.
  • Regenerates .SRCINFO in an Arch container.
  • Pushes to AUR repo when not in dry-run mode.

Required repository configuration:

  • Secret: AUR_SSH_PRIVATE_KEY (private key for aur@aur.archlinux.org)
  • Variable: AUR_PACKAGE_NAME (default: typemonky-bin)
  • Optional variables:
    • AUR_GIT_EMAIL
    • AUR_GIT_NAME

Versioning and releases

# Show current version
./scripts/typemonk version-show

# Bump only (updates Cargo + metainfo + AUR basever)
./scripts/typemonk version-bump patch
./scripts/typemonk version-bump prerelease alpha

# Full release cut (runs gates, bumps, commits, tags, release notes)
./scripts/typemonk release-cut patch

# Publish GitLab release for an existing tag
./scripts/typemonk release-publish vX.Y.Z

Data and privacy

  • All typing data is stored locally on your machine.
  • No cloud sync or telemetry service is required.

Default DB path:

  • $XDG_DATA_HOME/typemonky/typemonky.db
  • fallback: ~/.local/share/typemonky/typemonky.db

Fonts and licenses

Bundled typing fonts and license links are listed in:

Contributing

  • Open an issue or merge request.
  • Run ./scripts/typemonk release-check before submitting.
  • If GitLab CI minutes are exhausted, run a minimal fallback pipeline by setting CI_FALLBACK_MINIMAL=1 when starting/retrying the pipeline (runs check_workspace only).
  • Add user-visible changes to CHANGELOG.md under Unreleased.

Security

  • See SECURITY.md for responsible disclosure instructions.

About

TypeMonky: local-first touch typing app for Linux (GTK4, Wayland-friendly)

Resources

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors