Skip to content

lanecwheeler/winmt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

winmt

A short forward...

I'm not gonna lie. I built this for a dumb and very lazy reason. Sometimes I'm leaned back in my chair and don't wanna lean forward to use my keyboard, and the onscreen keyboard was weirdly slower than this. That being said, I could see this being useful for lazy people like myself, and for people who have impairments that don't allow them to use a keyboard normally. I "authored" a lot of this using Claude, but if it gets attention, I might try and keep it up to date and add things like better punctuation or an actual T9 prediction implementation.

What is it?

A floating on-screen multi-tap keyboard for Windows (picture an old flip phone), designed for use with gaming mice that have programmable side buttons (e.g. Razer Naga V2 HyperSpeed). Type text into any application without lifting your hand from the mouse.

How it works

Side buttons on your mouse are mapped to F13–F24 (or any keys you choose). The app intercepts those keypresses via a low-level keyboard hook and routes them through a multi-tap state machine — the same input method as classic phone keyboards. A cursor overlay shows the character currently being composed, and a floating keypad window gives visual feedback and lets you click buttons directly as well.

Features

  • Multi-tap input — tap a key repeatedly to cycle through its characters (abc, def, etc.)
  • Shift / Caps Lock* once for next-char uppercase, twice to toggle Caps Lock
  • Space / 00 once for space, twice for 0; if another key is pending, first tap commits it immediately
  • Backspace# key
  • NumLock mode — toggle to bypass multi-tap and type digits directly
  • Cursor overlay — small preview bubble that follows the system cursor
  • Floating keypad — always-on-top draggable window with LCD strip, opacity slider, and a slide-out drawer with Enter, Delete, Ctrl+A, arrow keys, and settings
  • Fully configurable — rebind any phone key to any physical key, adjust commit timeouts
  • System tray — runs in the background with a tray icon; no taskbar entry
  • Dark theme — matches Windows accent colour

Requirements

Building from source

git clone <repo-url>
cd winmt
dotnet build winmt.sln

Run the app:

dotnet run --project src/winmt.App

Or open winmt.sln in Visual Studio 2022+ / Rider.

Default key bindings

Phone key Default binding
1 F13
2 F14
3 F15
4 F16
5 F17
6 F18
7 F19
8 F20
9 F21
* F22
0 F23
# F24

Bindings can be changed at any time through the Configuration window (right-click the keypad or use the Settings button in the drawer).

Project structure

src/
  winmt.Core/      — State machine, character map, keystroke injector (no UI dependency)
  winmt.App/       winmtay icon, keypad window, overlay, configuration

License

MIT — see LICENSE.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages