A game for babies who like to bang on the keyboard.
As babies or children smash on the keyboard, colored shapes, letters and numbers appear on the screen and are spoken aloud to help with letter and number recognition.
Download the latest release: GitHub Releases
- 🎨 Colorful shapes with happy faces (Circle, Heart, Hexagon, Star, Triangle, and more)
- 🔤 Letters and numbers with text-to-speech
- 🔊 Fun sounds and giggles
- 🖥️ Multi-monitor support
- 🔒 Locks out system keys to prevent accidental exits
- 🔄 Auto-updates via GitHub Releases (Windows)
- 🐧 Linux support via Avalonia
| Platform | Download | Notes |
|---|---|---|
| Windows | BabySmash-Setup.exe | Installer with auto-updates |
| Windows | BabySmash-win-x64.zip | Portable version |
| Debian/Ubuntu | .deb package | Easy install with package manager |
| Fedora/RHEL | .rpm package | Easy install with package manager |
| Linux | BabySmash-linux-x64.tar.gz | Manual installation |
| Shortcut | Action |
|---|---|
| Any key | Display shapes/letters! |
Ctrl+Shift+Alt+O |
Options dialog |
Alt+F4 |
Exit |
- Windows 10 or later (64-bit)
- No .NET installation required (self-contained)
BabySmash blocks most keyboard shortcuts, but Windows touchpad gestures (like three-finger swipe for Task View) are handled at the OS level and cannot be blocked by applications.
To prevent accidental exits via touchpad:
- Open Windows Settings → Bluetooth & devices → Touchpad
- Under Three-finger gestures, set "Swipes" to Nothing
- Optionally disable four-finger gestures too
Debian/Ubuntu:
# Download the .deb package from the latest release
wget https://github.com/shanselman/babysmash/releases/latest/download/babysmash_*_amd64.deb
sudo dpkg -i babysmash_*_amd64.deb
sudo apt-get install -f # Install dependencies if neededFedora/RHEL/CentOS:
# Download the .rpm package from the latest release
wget https://github.com/shanselman/babysmash/releases/latest/download/babysmash-*.x86_64.rpm
sudo rpm -i babysmash-*.x86_64.rpm
# or on Fedora:
sudo dnf install babysmash-*.x86_64.rpmAfter installation, BabySmash will appear in your application menu under Games!
To run from terminal:
babysmash-
Download and extract:
tar -xzf BabySmash-linux-x64.tar.gz
-
Install dependencies:
# For text-to-speech sudo apt install espeak # For audio (one of these) sudo apt install pulseaudio-utils # for paplay # or sudo apt install alsa-utils # for aplay
-
Run:
./babysmash
If you used the tarball (manual installation), you can optionally add BabySmash to your desktop's app launcher:
# Copy executable to a permanent location
sudo cp babysmash /usr/local/bin/
# Install the icon
sudo cp babysmash.png /usr/share/icons/hicolor/256x256/apps/
# Install desktop entry
cp babysmash.desktop ~/.local/share/applications/
# Update icon cache
gtk-update-icon-cache /usr/share/icons/hicolor/ 2>/dev/null || trueNote: This is automatically done when using .deb or .rpm packages!
| Shortcut | Action |
|---|---|
| Any key | Display shapes/letters! |
Alt+O |
Options dialog |
Escape |
Exit |
- 64-bit Linux (x64)
espeakfor text-to-speechpaplayoraplayfor audio- No .NET installation required (self-contained)
Note: Dependencies are automatically installed when using .deb or .rpm packages!
BabySmash automatically uses your keyboard language for:
- Text-to-speech voice - Shapes and colors are spoken in your language
- Shape/color names - Translated to your locale (if available)
- Word order - "Red Circle" (English) vs "Círculo Vermelho" (Portuguese)
Supported locales: English (en), German (de), Spanish (es), French (fr), Greek (el), Latvian (lv), Portuguese (pt-BR, pt-PT), Russian (ru)
Create a JSON file in Shared/Resources/Strings/ named {locale}.json (e.g., ja-JP.json for Japanese):
{
"ColorShapeFormat": "{0} {1}",
"Circle": "丸",
"Red": "赤",
...
}- Use
"{0} {1}"for color-first languages (English: "Red Circle") - Use
"{1} {0}"for shape-first languages (Portuguese: "Círculo Vermelho")
Requires .NET 10 SDK
git clone https://github.com/shanselman/babysmash.git
cd babysmash
# Windows
dotnet run
# Linux
dotnet run --project BabySmash.Linux# Windows
dotnet publish -c Release -r win-x64 --self-contained
# Linux
dotnet publish BabySmash.Linux -c Release -r linux-x64 --self-containedOriginally developed by Scott Hanselman, based on AlphaBaby.
- v1-v2: Original .NET Framework 3.5 version
- v3.0: Migrated to .NET 10, single-file deployment
- v4.0: Linux support via Avalonia, shared resources, auto-updates
Looking for the original code? The legacy .NET Framework 3.5 version is preserved in the legacy-dotnet35 branch.
See LICENSE