{"id":23978494,"url":"https://github.com/simmsb/keylayout","last_synced_at":"2026-06-08T21:32:23.012Z","repository":{"id":186689180,"uuid":"672998843","full_name":"simmsb/keylayout","owner":"simmsb","description":"A keyboard layout language","archived":false,"fork":false,"pushed_at":"2024-10-03T16:00:58.000Z","size":179,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-22T00:03:20.074Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","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/simmsb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2023-07-31T16:27:44.000Z","updated_at":"2024-10-03T16:01:02.000Z","dependencies_parsed_at":null,"dependency_job_id":"b746bf1c-0013-4e16-9394-4a2333232a10","html_url":"https://github.com/simmsb/keylayout","commit_stats":null,"previous_names":["simmsb/keylayout"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/simmsb/keylayout","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simmsb%2Fkeylayout","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simmsb%2Fkeylayout/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simmsb%2Fkeylayout/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simmsb%2Fkeylayout/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/simmsb","download_url":"https://codeload.github.com/simmsb/keylayout/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simmsb%2Fkeylayout/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34082130,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-08T02:00:07.615Z","response_time":111,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2025-01-07T08:18:23.364Z","updated_at":"2026-06-08T21:32:22.998Z","avatar_url":"https://github.com/simmsb.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Keylayout language\n\nA tool for parsing keyboard layouts and emitting definitions for use by firmwares and other tools\n\nIt looks like this:\n\n```\nlayout {\n  5k 5k;\n  5k 5k;\n  5k 5k;\n  2s [2] [0] [1] [8] [9] [7] 2s;\n}\n\nkey scroll {\n    out keyberon: \"::keyberon::action::Action::Custom(super::CustomEvent::MouseScroll)\";\n}\n\nkey ml {\n    out keyberon: \"::keyberon::action::Action::Custom(super::CustomEvent::MouseLeft)\";\n}\n\nkey mr {\n    out keyberon: \"::keyberon::action::Action::Custom(super::CustomEvent::MouseRight)\";\n}\n\nkey ctrldown {\n    out keyberon: \"::keyberon::action::Action::MultipleKeyCodes(\u0026[::keyberon::key_code::KeyCode::LCtrl, ::keyberon::key_code::KeyCode::Down].as_slice())\";\n}\n\nkey ctrlup {\n    out keyberon: \"::keyberon::action::Action::MultipleKeyCodes(\u0026[::keyberon::key_code::KeyCode::LCtrl, ::keyberon::key_code::KeyCode::Up].as_slice())\";\n}\n\nlayer base {\n  'q' \u003eesc\u003c 'w' 'e' 'r' 't' 'y' \u003ebspace\u003c 'u' \u003edel\u003c 'i' \u003e'/'\u003c 'o' \u003e'\\'\u003c 'p';\n  'a'@lshift 's' 'd' 'f' 'g' 'h' \u003e'\u003c'\u003c 'j' \u003e':'\u003c 'k' \u003e'\u003e'\u003c 'l'       ';'@rshift;\n  'z'@lctrl  'x' 'c' 'v' 'b' 'n' \u003e'\"'\u003c 'm' \u003e'''\u003c ',' \u003e'_'\u003c '.'       '/'@rctrl;\n                lalt tab@lgui space@[sym] space@[num] enter@scroll ralt;\n}\n\nlayer sym {\n  '!' '@' '{' '}' '|' '`' \u003eml\u003c '~' \u003emr\u003c '\\' n '\"';\n  '#'@lshift '$' '(' ')' n '+' '-' '/' '*' '''@rshift;\n  '%'@lctrl '^' '[' ']' n '\u0026' '=' ',' '.' '_'@rctrl;\n      n lalt space  '=' n n;\n}\n\nlayer num {\n  '1' '2' '3' '4' '5' '6' \u003eml\u003c '7' \u003emr\u003c '8' '9' '0';\n  f1@lshift f2 f3 f4 f5 left down up right volup@rshift;\n  f6@lctrl f7 f8 f9 f10 pgdown ctrldown ctrlup pgup voldown@rctrl;\n      n n '=' n n n;\n}\n```\n\nI use it in my [keyboard firmware](https://github.com/simmsb/rusty-dilemma) to generate the [layout](https://github.com/simmsb/rusty-dilemma/blob/master/firmware/src/keys/layout.rs)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimmsb%2Fkeylayout","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsimmsb%2Fkeylayout","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimmsb%2Fkeylayout/lists"}