{"id":21091958,"url":"https://github.com/hactarce/key-names","last_synced_at":"2025-10-18T13:02:14.272Z","repository":{"id":52408226,"uuid":"440322595","full_name":"HactarCE/key-names","owner":"HactarCE","description":"Platform-aware keyboard key name handling for Rust applications","archived":false,"fork":false,"pushed_at":"2025-03-19T18:29:40.000Z","size":94,"stargazers_count":6,"open_issues_count":2,"forks_count":5,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-06T20:43:23.555Z","etag":null,"topics":["cross-platform","crossplatform","keybind","keybinding","keybindings","keyboard","keyboard-events","keyboard-layout","keyboard-shortcuts","linux","macos","osx","rust","scan-code","scan-codes","scancode","scancodes","windows","winit"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HactarCE.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-12-20T22:25:35.000Z","updated_at":"2025-03-19T18:29:44.000Z","dependencies_parsed_at":"2023-01-23T04:15:08.973Z","dependency_job_id":null,"html_url":"https://github.com/HactarCE/key-names","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HactarCE%2Fkey-names","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HactarCE%2Fkey-names/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HactarCE%2Fkey-names/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HactarCE%2Fkey-names/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HactarCE","download_url":"https://codeload.github.com/HactarCE/key-names/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254538522,"owners_count":22087879,"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":["cross-platform","crossplatform","keybind","keybinding","keybindings","keyboard","keyboard-events","keyboard-layout","keyboard-shortcuts","linux","macos","osx","rust","scan-code","scan-codes","scancode","scancodes","windows","winit"],"created_at":"2024-11-19T21:48:02.166Z","updated_at":"2025-10-18T13:02:09.232Z","avatar_url":"https://github.com/HactarCE.png","language":"Rust","readme":"# key-names\n\n[![Latest version](https://img.shields.io/crates/v/key-names.svg)](https://crates.io/crates/key-names)\n[![Documentation](https://docs.rs/key-names/badge.svg)](https://docs.rs/key-names)\n\nPlatform-aware keyboard key names for Rust applications. This crate is a fork of [keyboard-keynames](https://crates.io/crates/keyboard-keynames) that adds a few extra features including [winit](https://crates.io/crates/winit) integration.\n\nFeatures:\n\n- Generates user-friendly strings for modifier keys that respect platform conventions\n- Generates user-friendly strings for keys based on scancode and current keyboard layout\n- Supports Windows, Linux (X11 and Wayland), macOS, and web\n\nThis crate currently queries the keyboard layout only on Windows and Linux (X11 and Wayland). On macOS and web, there is instead a hard-coded table based on the US QWERTY layout. I would love a PR that adds support for querying the layout on either of these.\n\nRun `cargo run --example all_keys` to see the key names produced by this library.\n\n## Modifier names and order\n\n| Platform | Modifier names and order          |\n| -------- | --------------------------------- |\n| Windows  | Ctrl + Shift + Alt + Win + ...    |\n| Linux    | Ctrl + Shift + Alt + Super + ...  |\n| macOS    | Ctrl + Option + Shift + Cmd + ... |\n| Web      | Ctrl + Shift + Alt + Super + ...  |\n\n## Contributing\n\nBugfix PRs welcome! Before investing time \u0026 effort into a new feature, it might be good to open an issue to discuss. I made this crate initially for the needs of [Hyperspeedcube](https://github.com/HactarCE/Hyperspeedcube), and I'm open to adding more features if people would find it useful and it's possible to support cross-platform.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhactarce%2Fkey-names","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhactarce%2Fkey-names","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhactarce%2Fkey-names/lists"}