Skip to content

rendyuwu/ketikin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Ketikin - Auto Typer Desktop Application

πŸ’‘ Perfect for VM Console Work: I created this app to solve a specific problem - copying and pasting commands into VM consoles like noVNC that don't support clipboard operations by default. With Ketikin, you can easily paste long commands or use template commands for frequently-used operations, making it incredibly helpful for activities like VM rescue operations that can't be accessed from the internet.

I built this modern, gradient-designed auto-typer desktop application for Windows using Go and Wails. It's designed to help with repetitive typing tasks, offering precise control and a beautiful user interface.

Ketikin Platform Go License

✨ Features

Primary Features

  • Multi-line Text Input - I implemented syntax highlighting for special characters to make pasting text easier.
  • Precise Typing Delay - You can control typing speed with millisecond precision (10-500ms).
  • 3-Second Countdown - I added a clear indication before typing begins so you have time to switch windows.
  • Emergency Stop - You can instantly stop typing with the ESC key or the emergency button.
  • Status Indicators - I included clear visual feedback so you always know the current state.

Secondary Features

  • Text Templates - Create, edit, and delete your frequently used text snippets.
  • Statistics Dashboard - I track total characters typed, sessions, and average speed locally on your machine.
  • System Tray Integration - You can minimize the app to the tray with a Show/Quit menu.
  • Installer Support - I included a Windows installer with Start Menu integration.
  • Dark/Light Themes - I designed beautiful gradients for both themes.
  • Modern Gradient UI - I focused on smooth animations and a premium design feel.

πŸ“Έ Screenshots

Type Menu Templates Menu

Statistics Menu Settings Menu

πŸš€ Quick Start

For Users

Option 1: Installer (Recommended)

  1. Download ketikin-setup.exe from the Releases page.
  2. Run the installer - it will:
    • Install to Program Files
    • Create Start Menu shortcuts
    • Create Desktop shortcut
    • Register for uninstallation

Option 2: Portable Executable

  1. Download ketikin.exe from the Releases page.
  2. Run the executable (no installation required).
  3. Paste your text and click "Start Typing".

No admin privileges required for either option!

For Developers

See docs/BUILD.md for my detailed build instructions.

πŸ“– Usage Guide

See docs/QUICKSTART.md for a quick guide, or read below.

Basic Typing

  1. Paste or type your text in the main text area.
  2. Adjust typing speed in Settings (numeric input or presets).
  3. Click "Start Typing" - a 3-second countdown will begin.
  4. Watch the progress - the app types your text automatically.
  5. Emergency stop - Press ESC or click the Emergency Stop button.

Templates

  1. Navigate to the Templates tab.
  2. Click Add Template to create new snippets.
  3. Enter name, category (optional), and content.
  4. Click any template to load it into the text area.
  5. Delete unused templates with the 'Γ—' button.

Statistics

View your typing statistics:

  • Total characters typed
  • Total typing sessions
  • Average typing speed

Settings

Customize your experience:

  • Toggle between dark and light themes
  • Set default typing speed
  • Configure hotkeys (coming soon)

πŸ› οΈ Technical Details

Architecture

  • Backend: Go 1.21+ with pure Go keyboard simulation. I chose this for performance and reliability.
  • Frontend: Svelte with Vite. I love Svelte's reactivity and small bundle size.
  • UI Framework: Wails v2. This allowed me to build a native-feeling app with web technologies.
  • System Tray: getlantern/systray.
  • Executable Size: < 15MB.

File Structure

ketikin/
β”œβ”€β”€ app/                 # Backend Go code
β”‚   β”œβ”€β”€ app.go          # Main app logic
β”‚   β”œβ”€β”€ typer.go        # Typing engine
β”‚   β”œβ”€β”€ config.go       # Configuration management
β”‚   β”œβ”€β”€ templates.go    # Template manager
β”‚   └── statistics.go   # Statistics tracking
β”œβ”€β”€ docs/               # Documentation
β”‚   β”œβ”€β”€ img/            # Screenshots
β”‚   β”œβ”€β”€ BUILD.md        # Build instructions
β”‚   └── QUICKSTART.md   # Quick start guide
β”œβ”€β”€ frontend/           # Svelte frontend
β”‚   └── src/
β”‚       β”œβ”€β”€ App.svelte  # Main UI component
β”‚       └── app.css     # Gradient design system
β”œβ”€β”€ main.go             # Entry point
β”œβ”€β”€ wails.json          # Wails configuration
└── README.md           # This file

Data Storage

I store configuration and data in:

%USERPROFILE%\.ketikin\
β”œβ”€β”€ config.json        # User settings
β”œβ”€β”€ templates.json     # Saved templates
└── statistics.json    # Typing statistics

⌨️ Keyboard Shortcuts

  • ESC - Emergency stop typing
  • Ctrl+Alt+T - Start typing (when configured)

πŸ”’ Privacy & Security

  • No internet connection required - I built this to be fully offline.
  • No data collection - All data stays on your machine.
  • No admin privileges needed - Runs as regular user.
  • Open source - You can review the code yourself.

⚠️ Limitations

  • Windows-only (I've tested on Windows 10/11).
  • Some special Unicode characters may not be fully supported.
  • Cannot type into applications that block automated input.

πŸ› Troubleshooting

Typing not working

  • Make sure the target window is focused.
  • Some applications block automated keyboard input.
  • Try adjusting the typing delay.

Application won't start

  • Ensure you have Windows 10 or later.
  • Check Windows Defender hasn't blocked it.
  • Run from a folder you have write permissions to.

Characters appearing incorrectly

  • Check your keyboard layout matches the text.
  • Some special Unicode characters may not work.
  • Try using the copy-paste method instead.

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

πŸ“ License

MIT License - see LICENSE file for details.

Credits

Developed with assistance from:

Gemini 3 Pro Preview - Initial architecture and Go implementation Claude Sonnet 4.5 - UI refinements and optimization

Special thanks to the open source community for the amazing libraries that made this project possible.