PeterM45/SysInput
A system-wide autocomplete and spell-checking utility for Windows written in Zig.
SysInput is a lightweight Windows utility written in Zig. It provides system-wide autocomplete and spell checking across all applications by capturing keystrokes and displaying suggestions near your cursor.
git clone https://github.com/PeterM45/SysInput.git
cd SysInput
zig build
zig build run
The application runs in the background. Type in any text field and press Tab to see suggestions.
Key | Action |
---|---|
Tab | Accept suggestion |
Enter | Accept suggestion |
↓ Arrow | Next suggestion |
↑ Arrow | Previous suggestion |
Esc | Exit SysInput |
SysInput/
├── build.zig - Build configuration
├── resources/
│ └── dictionary.txt - Word dictionary for suggestions
└── src/
├── buffer_controller.zig - Text buffer management
├── core/ - Core functionality
│ ├── buffer.zig - Text buffer implementation
│ ├── config.zig - Configuration
│ └── debug.zig - Debugging utilities
├── input/ - Input handling
│ ├── keyboard.zig - Keyboard hook and processing
│ ├── text_field.zig - Text field detection
│ └── window_detection.zig - Window detection
├── main.zig - Application entry point
├── module_exports.zig - Main module imports
├── suggestion/ - Suggestion handling
│ ├── manager.zig - Suggestion manager
│ └── stats.zig - Statistics tracking
├── text/ - Text processing
│ ├── autocomplete.zig - Autocomplete engine
│ ├── dictionary.zig - Dictionary loading/management
│ ├── edit_distance.zig - Text similarity algorithms
│ ├── insertion.zig - Text insertion methods
│ └── spellcheck.zig - Spell checking
├── ui/ - User interface
│ ├── position.zig - UI positioning logic
│ ├── suggestion_ui.zig - Suggestion UI
│ └── window.zig - Window management
└── win32/ - Windows API bindings
├── api.zig - Windows API definitions
├── hook.zig - Hook implementation
└── text_inject.zig - Text injection utilities
Contributions are welcome! To get started:
Check out our contribution guidelines for more details.
No suggestions?
Text insertion issues?
This project is licensed under the MIT License – see the LICENSE file for details.
Feel free to tweak as needed. Happy coding! 👍