{"id":24250653,"url":"https://github.com/frchrist/keyt","last_synced_at":"2026-05-10T17:52:42.456Z","repository":{"id":272343681,"uuid":"916275760","full_name":"frchrist/keyt","owner":"frchrist","description":"A static library for translating keyboard input from AZERTY to QWERTY layout","archived":false,"fork":false,"pushed_at":"2025-01-13T19:50:03.000Z","size":0,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-13T20:31:06.502Z","etag":null,"topics":["library","qt","qt6"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/frchrist.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-01-13T19:33:48.000Z","updated_at":"2025-01-13T19:50:06.000Z","dependencies_parsed_at":"2025-01-13T20:31:10.327Z","dependency_job_id":"7c759b7e-94a0-490c-ba56-e003a5fae131","html_url":"https://github.com/frchrist/keyt","commit_stats":null,"previous_names":["frchrist/keyt"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frchrist%2Fkeyt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frchrist%2Fkeyt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frchrist%2Fkeyt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frchrist%2Fkeyt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/frchrist","download_url":"https://codeload.github.com/frchrist/keyt/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241894508,"owners_count":20038506,"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":["library","qt","qt6"],"created_at":"2025-01-15T01:34:47.253Z","updated_at":"2026-05-10T17:52:42.388Z","avatar_url":"https://github.com/frchrist.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# KeyboardTranslator Library\n\nA static library for translating keyboard input from AZERTY to QWERTY layout, specifically designed for Qt applications. This library can intercept and translate keyboard events in QLineEdit fields, making it useful for applications that need to handle both keyboard layouts.\n\n## Features\n\n- Translates AZERTY keyboard input to QWERTY\n- Handles special characters and numbers\n- Easy integration with QLineEdit widgets\n- Full test coverage\n- Supports both uppercase and lowercase characters\n- CMake installation support\n- CMake package configuration files\n\n### Translation Examples\n\n```\nAZERTY Input      -\u003e QWERTY Output\n\u0026é\"'(-è_çà       -\u003e 1234567890\n-\u0026_éààà\u0026éç'_è    -\u003e 6182000129487\nçè\"àè\u0026é_à\"ç(     -\u003e 6973071280395\n'è\u0026à_(ààé'\u0026è(    -\u003e 4710850024175\nqwertyuiopasd    -\u003e azertyuiopqsd\n```\n\n## Prerequisites\n\n- CMake 3.16 or higher\n- Qt6\n- C++17 compliant compiler\n\n## Installation\n\n### Building from Source\n\n1. Clone the repository:\n```bash\ngit clone [repository-url]\ncd keyboard-translator\n```\n\n2. Create a build directory and compile:\n```bash\nmkdir build \u0026\u0026 cd build\ncmake ..\ncmake --build .\n```\n\n3. Run the tests (optional):\n```bash\nctest --output-on-failure\n```\n\n4. Install the library:\n```bash\n# On Unix-like systems (may require sudo)\ncmake --install .\n\n# On Windows with custom prefix\ncmake --install . --prefix C:/CustomPath\n```\n\n### Using as a Dependency in Your Project\n\n#### Method 1: Using find_package\n\nAfter installing the library, you can use it in your CMake project:\n\n```cmake\nfind_package(KeyboardTranslator REQUIRED)\ntarget_link_libraries(YourTarget PRIVATE KeyboardTranslator::KeyboardTranslator)\n```\n\n#### Method 2: Using add_subdirectory\n\nIf you have the library source code as part of your project:\n\n```cmake\nadd_subdirectory(path/to/KeyboardTranslator)\ntarget_link_libraries(YourTarget PRIVATE KeyboardTranslator::KeyboardTranslator)\n```\n\n## Usage\n\n### Basic Integration\n\n```cpp\n#include \u003cQApplication\u003e\n#include \u003cQLineEdit\u003e\n#include \u003cKeyboardTranslator/KeyboardTranslator.h\u003e\n\nint main(int argc, char *argv[]) {\n    QApplication app(argc, argv);\n\n    QLineEdit lineEdit;\n    KeyboardTranslator translator;\n    translator.installOn(\u0026lineEdit);\n\n    lineEdit.show();\n    return app.exec();\n}\n```\n\n### CMake Project Configuration\n\nYour project's CMakeLists.txt should look something like this:\n\n```cmake\ncmake_minimum_required(VERSION 3.16)\nproject(YourProject)\n\nfind_package(Qt6 COMPONENTS Widgets REQUIRED)\nfind_package(KeyboardTranslator REQUIRED)\n\nadd_executable(YourApp main.cpp)\ntarget_link_libraries(YourApp\n    PRIVATE\n        Qt6::Widgets\n        KeyboardTranslator::KeyboardTranslator\n)\n```\n\n## Project Structure\n\n```\nKeyboardTranslator/\n├── cmake/\n│   └── KeyboardTranslatorConfig.cmake.in\n├── include/\n│   └── KeyboardTranslator.h\n├── src/\n│   └── KeyboardTranslator.cpp\n├── tests/\n│   ├── CMakeLists.txt\n│   ├── tst_keyboard_simple.cpp\n│   ├── tst_keyboard_complex.cpp\n│   └── tst_keyboard_events.cpp\n└── CMakeLists.txt\n```\n\n## Testing\n\nThe library includes three test suites:\n\n1. **Simple Tests** (tst_keyboard_simple):\n   - Single character translations\n   - Basic string translations\n   - Unchanged character verification\n\n2. **Complex Tests** (tst_keyboard_complex):\n   - Mixed content translations\n   - Case preservation\n   - Special cases handling\n\n3. **Event Tests** (tst_keyboard_events):\n   - QLineEdit integration\n   - Multiple widget handling\n   - Event propagation\n\n## Contributing\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/f1`)\n3. Commit your changes (`git commit -m 'Add some amazing feature'`)\n4. Push to the branch (`git push origin feature/f1`)\n5. Open a Pull Request\n\n## License\n\nThis project is released under the MIT License. See the LICENSE file for details.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrchrist%2Fkeyt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffrchrist%2Fkeyt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrchrist%2Fkeyt/lists"}