{"id":26658791,"url":"https://github.com/peterm45/sysinput","last_synced_at":"2026-05-02T14:41:03.153Z","repository":{"id":284250950,"uuid":"953240644","full_name":"PeterM45/SysInput","owner":"PeterM45","description":"A system-wide autocomplete and spell-checking utility for Windows written in Zig.","archived":false,"fork":false,"pushed_at":"2025-03-24T23:09:16.000Z","size":3308,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-25T00:19:19.953Z","etag":null,"topics":["accessibility","autocomplete","keyboard-hook","open-source","productivity","spellcheck","text-completion","text-editor","text-suggestions","utility","win32-api","windows","zig"],"latest_commit_sha":null,"homepage":"","language":"Zig","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PeterM45.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-22T22:18:00.000Z","updated_at":"2025-03-24T23:28:44.000Z","dependencies_parsed_at":"2025-03-25T00:19:24.524Z","dependency_job_id":"6687a1d9-1486-48e8-b7f5-77d0ea956031","html_url":"https://github.com/PeterM45/SysInput","commit_stats":null,"previous_names":["peterm45/sysinput"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PeterM45%2FSysInput","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PeterM45%2FSysInput/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PeterM45%2FSysInput/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PeterM45%2FSysInput/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PeterM45","download_url":"https://codeload.github.com/PeterM45/SysInput/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245440577,"owners_count":20615633,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["accessibility","autocomplete","keyboard-hook","open-source","productivity","spellcheck","text-completion","text-editor","text-suggestions","utility","win32-api","windows","zig"],"created_at":"2025-03-25T10:16:44.436Z","updated_at":"2026-05-02T14:41:03.138Z","avatar_url":"https://github.com/PeterM45.png","language":"Zig","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SysInput\n\n**SysInput** is a lightweight Windows utility written in [Zig](https://ziglang.org/download/). It provides system-wide autocomplete and spell checking across all applications by capturing keystrokes and displaying suggestions near your cursor.\n\n## Demo\n\n![SysInput Demo](https://github.com/user-attachments/assets/95c258c5-f25d-4a10-8337-2f7532c056e5)\n\n## Features\n\n- **System-wide suggestions:** Works in any standard text field.\n- **Intelligent autocomplete:** Learns from your typing.\n- **Low resource usage:** Efficiently built in Zig ⚡\n- **Adaptive learning:** Optimizes insertion methods per application\n\n## Installation\n\n### Prerequisites\n\n- Windows 10 or 11\n- [Zig 0.14.0](https://ziglang.org/download/) (or later)\n\n### Building from Source\n\n```bash\ngit clone https://github.com/PeterM45/SysInput.git\ncd SysInput\nzig build\nzig build run\n```\n\nThe application runs in the background. Type in any text field and press **Tab** to see suggestions.\n\n## Usage\n\n1. Start typing in any text field (at least 2 characters).\n2. Suggestions appear near your cursor.\n3. Press **Tab** or **Enter** to accept a suggestion.\n4. Use **Up/Down arrows** to navigate suggestions.\n\n### Keyboard Shortcuts\n\n| Key         | Action              |\n| ----------- | ------------------- |\n| **Tab**     | Accept suggestion   |\n| **Enter**   | Accept suggestion   |\n| **↓ Arrow** | Next suggestion     |\n| **↑ Arrow** | Previous suggestion |\n| **Esc**     | Exit SysInput       |\n\n## Architecture\n\n- **Core:** Text buffer, configuration, and debugging.\n- **Input:** Keyboard hooks and text field detection.\n- **Text:** Autocomplete engine, dictionary management, and spell checking.\n- **UI:** Suggestion overlay and window management.\n- **Win32:** Windows API bindings and hook implementations.\n\n## Project Structure\n\n```\nSysInput/\n├── build.zig             - Build configuration\n├── resources/\n│   └── dictionary.txt    - Word dictionary for suggestions\n└── src/\n    ├── buffer_controller.zig - Text buffer management\n    ├── core/               - Core functionality\n    │   ├── buffer.zig      - Text buffer implementation\n    │   ├── config.zig      - Configuration\n    │   └── debug.zig       - Debugging utilities\n    ├── input/             - Input handling\n    │   ├── keyboard.zig    - Keyboard hook and processing\n    │   ├── text_field.zig  - Text field detection\n    │   └── window_detection.zig  - Window detection\n    ├── main.zig           - Application entry point\n    ├── module_exports.zig    - Main module imports\n    ├── suggestion/        - Suggestion handling\n    │   ├── manager.zig     - Suggestion manager\n    │   └── stats.zig       - Statistics tracking\n    ├── text/              - Text processing\n    │   ├── autocomplete.zig - Autocomplete engine\n    │   ├── dictionary.zig   - Dictionary loading/management\n    │   ├── edit_distance.zig - Text similarity algorithms\n    │   ├── insertion.zig     - Text insertion methods\n    │   └── spellcheck.zig    - Spell checking\n    ├── ui/                - User interface\n    │   ├── position.zig    - UI positioning logic\n    │   ├── suggestion_ui.zig - Suggestion UI\n    │   └── window.zig      - Window management\n    └── win32/             - Windows API bindings\n        ├── api.zig         - Windows API definitions\n        ├── hook.zig        - Hook implementation\n        └── text_inject.zig - Text injection utilities\n```\n\n## Contributing\n\nContributions are welcome! To get started:\n\n1. Fork the repository.\n2. Clone your fork.\n3. Create a branch for your changes.\n4. Submit a pull request.\n\nCheck out our contribution guidelines for more details.\n\n## Troubleshooting\n\n**No suggestions?**\n\n- Ensure SysInput is running.\n- Type in a standard text field (minimum 2 characters).\n\n**Text insertion issues?**\n\n- Try a different insertion method; some applications may have restrictions.\n\n## License\n\nThis project is licensed under the MIT License – see the [LICENSE](LICENSE) file for details.\n\n---\n\nFeel free to tweak as needed. Happy coding! 👍\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeterm45%2Fsysinput","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpeterm45%2Fsysinput","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeterm45%2Fsysinput/lists"}