A typing tutor application built with GTK4, Rust, and Adwaita.
Based on Mecawin, a classic typing tutor for Windows.
Available on Flathub
# Development
cargo run
# Production build
meson setup builddir
meson compile -C builddir
./builddir/mecalin- GTK4 4.18+
- libadwaita 1.7+
- Rust toolchain
- Meson build system
Uses GTK Builder with XML UI templates and GResource embedding for a modern GNOME application structure.
Contributions are welcome! Please note:
- This project follows the GNOME Code of Conduct.
The application uses standard gettext for UI translation. To add a new language:
- Add the language code to
po/LINGUAS - Create or update the
.pofile in thepo/directory - Translate the strings using your preferred translation tool
Important for translators: Apart from translating the UI strings, you also need to create localized content:
-
Lesson Content: Create a new lesson file in
data/lessons/[language_code].jsonbased on the existingus.jsonores.jsonfiles. This includes:- Lesson titles and descriptions
- Step instructions and practice text
- Introduction messages
-
Keyboard Layout: Create a keyboard layout file in
data/keyboard_layouts/[language_code].jsonthat matches your language's keyboard layout. This defines:- Key positions and labels
- Finger mapping for proper touch typing guidance
The application automatically detects the system's active keyboard layout and loads the matching keyboard layout and lesson content. If the layout can't be determined or isn't supported, it falls back to the system locale, and then to US English. Note that there is no separate Galician keyboard layout — Galician uses the Spanish layout, so a Galician user with a Spanish keyboard sees the Spanish on-screen keyboard with Galician lesson text. If your language files don't exist, the US English versions are used.