Table of Contents
<a href="#about-the-project">About The Project</a>
<a href="#features">Features</a>
<a href="#getting-started">Getting Started</a>
<a href="#documentation">Documentation</a>
<a href="#contributing">Contributing</a>
<a href="#building-from-source">Building from Source</a>
<a href="#license">License</a>
<a href="#contact">Contact</a>
<a href="#acknowledgments">Acknowledgments</a>
About The Project

OverKeys is a free and open-source keyboard layout visualizer designed for users to practice alternative keyboard layouts, such as Colemak, Dvorak, Graphite, Focal, and many more. Learn and practice your layouts system-wide, personalize keyboard appearance, and improve your typing.
This project was initially developed to help with the creator's system-wide practice of the Canary layout, but has since evolved to support user-defined layouts, layer switching integration, and customization options.
Samples
<img src="assets/images/overkeys_cover.png" />
<p align="center">OverKeys Default</p>
<img src="assets/images/aurora1.png" />
<p align="center">Aurora (On Dark Background)</p>
<img src="assets/images/aurora2.png" />
<p align="center">Aurora (On Light Background)</p>
<img src="assets/images/eyco1.png" />
<p align="center">Custom (On Dark Background)</p>
<img src="assets/images/eyco2.png" />
<p align="center">Custom (On Light Background)</p>
<img src="assets/images/catpuccin.png" />
<p align="center">Catppuccin</p>
<img src="assets/images/redsamurai.png" />
<p align="center">Red Samurai</p>
<img src="assets/images/splitmatrix.png" />
<p align="center">Split Matrix Style</p>
<img src="assets/images/matrix.png" />
<p align="center">Matrix Style</p>
Note: The themes are not provided by default and were instead manually configured. Colors were based on the MonkeyType themes of the same name.
(back to top)
Features
-
Multi-layout support: The following layouts are currently natively supported.
Layouts
QWERTY
Colemak
Dvorak
Canaria
Canary
Canary Matrix
Colemak DH
Colemak DH Matrix
Engram
Focal
Gallium (Col-Stag)
Gallium V2 (Row-Stag)
Graphite
Halmak
Hands Down
NERPS
Norman
Sturdy
Sturdy Angle (Staggered)
Workman
Greek
Arabic
Russian
-
Customizable styles: Change colors, fonts, sizes, offsets, and key styles
-
Auto-hide: The keyboard hides automatically when not in use
-
Keymap styles: Supports staggered, matrix, and split matrix (5-col and 6-col) styles
-
User configurations: Add and use custom keyboard layouts through configuration files
-
Key modifiers: Add top labels and held-state keys to custom layouts with key modifier objects
-
Side-by-side layouts: Display alternative layouts alongside the default layout
-
Top row/Number row: Optional row above the main keyboard for numbers or user-configured keys
-
Layer switching: Switch between multiple custom keyboard layers for QMK, ZMK, or other programmable keyboard firmware using configurable triggers and toggle modes
-
Layer switching (Kanata): Connect to Kanata through TCP to dynamically display the active layer
-
Ignored Keys: Prevent specific keys from triggering the keyboard overlay (e.g., Print Screen, layer triggers)
-
Learning Mode: Color-code keys based on proper finger positions for touch typing
-
Reactive Shift Mapping: Display alternate key symbols when Shift key is pressed
-
Locales: Add locale-specific keys in user configuration for key press recognition
For complete feature details, see the documentation.
(back to top)
Getting Started
Installation
OverKeys can be installed through several methods:
-
Using Winget (Recommended)
winget install AngeloConvento.OverKeys
Note: Please check if winget version is updated to the latest version as in the repo. Otherwise, use the installer to have the latest version.
-
Using the Installer
-
Portable Version
For detailed installation instructions, see the Installation Guide.
(back to top)
Documentation
Complete documentation for OverKeys is available in the docs folder:
Getting Started (Docs)
User Guide
Advanced Features
(back to top)
Contributing
Contributions are what make the open-source community such an amazing place to learn and collaborate. Any contributions to OverKeys are greatly appreciated. If you have suggestions for improvements, bug fixes, or new features, please feel free to open an issue or submit a pull request. For detailed contribution guidelines, see the CONTRIBUTING.md file.
(back to top)
License
Distributed under the GPL-3.0 License. See LICENSE file for more information.
(back to top)
Contact
Angelo Convento
GitHub: conventoangelo
Email:
Project Link: https://github.com/conventoangelo/OverKeys
Supporting
If you'd like to support the development of OverKeys, I accept contributions through Ko-fi and BuyMeACoffee. Thank you — your support helps fund development and living costs.
(back to top)
Acknowledgments
- win32 - Enable direct Win32 API access from Dart using FFI without requiring C code
- leanflutter.dev - Provider of several essential Flutter desktop packages used in this project
- desktop_multi_window - Flutter plugin for creating and managing multiple windows in desktop applications
- flex_color_picker - Highly customizable and versatile color picker for Flutter applications
- Alaine - for creating the beautiful OverKeys logo with love and care.
(back to top)