{"id":16897725,"url":"https://github.com/texitoi/keyberon-grid","last_synced_at":"2025-03-22T09:31:52.985Z","repository":{"id":66120855,"uuid":"293085040","full_name":"TeXitoi/keyberon-grid","owner":"TeXitoi","description":"A hand wired ortholinear mechanical keyboard with a firmware in pure Rust.","archived":false,"fork":false,"pushed_at":"2024-01-02T12:28:26.000Z","size":9957,"stargazers_count":32,"open_issues_count":0,"forks_count":4,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-17T11:58:43.915Z","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/TeXitoi.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":"2020-09-05T13:50:11.000Z","updated_at":"2025-03-08T15:10:34.000Z","dependencies_parsed_at":"2024-01-02T13:58:39.290Z","dependency_job_id":null,"html_url":"https://github.com/TeXitoi/keyberon-grid","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TeXitoi%2Fkeyberon-grid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TeXitoi%2Fkeyberon-grid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TeXitoi%2Fkeyberon-grid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TeXitoi%2Fkeyberon-grid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TeXitoi","download_url":"https://codeload.github.com/TeXitoi/keyberon-grid/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244937751,"owners_count":20535124,"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":[],"created_at":"2024-10-13T17:39:30.520Z","updated_at":"2025-03-22T09:31:50.925Z","avatar_url":"https://github.com/TeXitoi.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Keyberon grid [![Build status](https://travis-ci.org/TeXitoi/keyberon-grid.svg?branch=master)](https://travis-ci.org/TeXitoi/keyberon)\n\nA hand wired ortholinear mechanical keyboard with a firmware in pure\nRust. The case uses a parametric design allowing to create a grid\nkeyboard of any size. The firmware allows you to customize each key as\nyou wish: A layer change (as the function key), a key combo (as one\nkey for the paste shortcut) or a regular key.\n\n![photo](images/keyberon.jpg)\n\n![photo](images/keyberon5x15.jpg)\n\nYou can [build](BUILDING.md) this keyboard yourself quite easily.\n\n## The case\n\nThe [OpenSCad files](cad/) are a totally parametric design. You can generate a grid of keys of any size by modifying the parameters. It is designed to be as low as possible.\n\n## The firmware\n\nThe firmware, [Keyberon](https://github.com/TeXitoi/keyberon), is\nwritten in the [rust programming language](https://rust-lang.org).\n\n# FAQ\n\n## I want to use your 3D printed case, but I want to use a rock solid firmware\n\n[QMK](https://github.com/qmk/qmk_firmware) supports the blue pill board. You may have to search a bit, but it should not be so complicated. See for example the [BluePill handwired](https://github.com/qmk/qmk_firmware/tree/master/keyboards/handwired/bluepill). Maybe the [firmwares from Cannon Keys](https://github.com/qmk/qmk_firmware/tree/master/keyboards/cannonkeys) can also be interesting. If you do any progress on this side, feel free to open a PR to share your experience.\n\n## Keyberon, what's that name?\n\nTo find new, findable and memorable project names, some persons in the rust community try to mix the name of a city with some keyword related to the project. For example, you have the [Tokio project](https://tokio.rs/) that derive its name from the Japanese capital Tokyo and IO for Input Output, the main subject of this project.\n\nSo, I have to find such a name. In the mechanical keyboard community, \"keeb\" is slang for keyboard. Thus, I searched for a city with the sound [kib], preferably in France as it is the country of origin of the project. I found [Quiberon](https://en.wikipedia.org/wiki/Quiberon), and thus I named the project Keyberon.\n\n## What is this black and white pattern on your keyboard?\n\nI'm fascinated by [isomorphic keyboards](https://en.wikipedia.org/wiki/Isomorphic_keyboard). Thus, I've searched a bit which vectors can do a great isomorphic keyboard on a 12x5 grid. After some trial and errors, I found that a major third left, and a minor third up is promising. Then, searching for an origin, I found one that do a great symmetry on the home row using the colors of the piano keys.\n\nSo, the black keys on the home row are G#, the whites at left of G# are C, and the whites above G# are B, and so on.\n\nMy keyboard doesn't (yet) play any music, that's purely aesthetics.\n\n## What's the layout\n\nAs an old user of the [TypeMatrix 2030](http://www.typematrix.com/2030/features.php), the layout is quite close of the layout of the TypeMatrix. I also maximize the use of the thumbs by having shift, space, enter, alt, alt gr, gui and backspace on the thumbs.\n\nLayer 0:\n```\n┌────┬────┬────┬────┬────┬────╥────┬────┬────┬────┬────┬────┐\n│ ~  │ !  │ @  │ #  │ $  │ %  ║ ^  │ \u0026  │ *  │ (  │ )  │ _  │\n│ `  │ 1  │ 2  │ 3  │ 4  │ 5  ║ 6  │ 7  │ 8  │ 9  │ 0  │ -  │\n├────┼────┼────┼────┼────┼────╫────┼────┼────┼────┼────┼────┤\n│ ↹  │ Q  │ W  │ E  │ R  │ T  ║ Y  │ U  │ I  │ O  │ P  │ {  │\n│    │    │    │    │    │    ║    │    │    │    │    │ [  │\n├────┼────┼────┼────┼────┼────╫────┼────┼────┼────┼────┼────┤\n│ }  │ A  │ S  │ D  │ F  │ G  ║ H  │ J  │ K  │ L  │ :  │ \"  │\n│ ]  │    │    │    │    │    ║    │    │    │    │ ;  │ '  │\n├────┼────┼────┼────┼─══─┼────╫────┼─══─┼────┼────┼────┼────┤\n│ +  │ Z  │ X  │ C  │ V  │ B  ║ N  │ M  │ \u003c  │ \u003e  │ ?  │ |  │\n│ =  │    │    │    │    │    ║    │    │ ,  │ .  │ /  │ \\  │\n├────┼────┼────┼────┼────┼────╫────┼────┼────┼────┼────┼────┤\n│    │    │ GUI│ Alt│ ␣/ │ ⇧  ║ ⇧  │ ⏎/ │ Alt│ ⌫  │    │    │\n│    │    │    │    │L(1)│    ║    │Ctrl│    │    │    │    │\n└────┴────┴────┴────┴────┴────╨────┴────┴────┴────┴────┴────┘\n```\nLegend:\n - L(1): layer 1 when pressed\n - A/B: A when tapped, B when hold\n\nLayer 1:\n```\n┌────┬────┬────┬────┬────┬────╥────┬────┬────┬────┬────┬────┐\n│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 ║ F7 │ F8 │ F9 │ F10│ F11│ F12│\n│    │    │    │    │    │    ║    │    │    │    │    │    │\n├────┼────┼────┼────┼────┼────╫────┼────┼────┼────┼────┼────┤\n│    │Paus│    │Pr. │    │    ║    │    │Del.│    │    │    │\n│    │    │    │Scr.│    │    ║    │    │    │    │    │    │\n├────┼────┼────┼────┼────┼────╫────┼────┼────┼────┼────┼────┤\n│    │    │Num │Ins.│Esc.│    ║ ⇪  │ ◄  │ ▼  │ ▲  │ ►  │    │\n│    │    │Lock│    │    │    ║    │    │    │    │    │    │\n├────┼────┼────┼────┼─══─┼────╫────┼─══─┼────┼────┼────┼────┤\n│    │Undo│ Cut│Copy│Past│    ║    │ ⇱  │ ⇟  │ ⇞  │ ⇲  │    │\n│    │    │    │    │    │    ║    │    │    │    │    │    │\n├────┼────┼────┼────┼────┼────╫────┼────┼────┼────┼────┼────┤\n│    │    │    │    │    │    ║    │C-⏎ │    │    │    │    │\n│    │    │    │    │    │    ║    │    │    │    │    │    │\n└────┴────┴────┴────┴────┴────╨────┴────┴────┴────┴────┴────┘\n```\nLegend:\n - C-⏎: Control+Enter (at the same time)\n\n\nI use the [bépo layout](https://bepo.fr), so this is what I have when I type:\n```\n┌────┬────┬────┬────┬────┬────╥────┬────┬────┬────┬────┬────┐\n│ #  │ 1  │ 2  │ 3  │ 4  │ 5  ║ 6  │ 7  │ 8  │ 9  │ 0  │ °  │\n│ $  │ \" —│ « \u003c│ » \u003e│ ( [│ ) ]║ @ ^│ +  │ -  │ /  │ *  │ =  │\n├────┼────┼────┼────┼────┼────╫────┼────┼────┼────┼────┼────┤\n│ ↹  │ B  │ É  │ P  │ O  │ È  ║ !  │ V  │ D  │ L  │ J  │ Z  │\n│    │   |│    │   \u0026│   œ│    ║ ^  │    │    │    │    │    │\n├────┼────┼────┼────┼────┼────╫────┼────┼────┼────┼────┼────┤\n│ W  │ A  │ U  │ I  │ E  │ ;  ║ C  │ T  │ S  │ R  │ N  │ M  │\n│    │   æ│   ù│   ¨│   €│ ,  ║    │    │    │    │    │    │\n├────┼────┼────┼────┼─══─┼────╫────┼─══─┼────┼────┼────┼────┤\n│ `  │ À  │ Y  │ X  │ :  │ K  ║ ?  │ Q  │ G  │ H  │ F  │ Ç  │\n│ %  │   \\│   {│   }│ . …│   ~║ '  │    │    │    │    │    │\n├────┼────┼────┼────┼────┼────╫────┼────┼────┼────┼────┼────┤\n│    │    │ GUI│ Alt│nbsp│ ⇧  ║ ⇧  │ ⏎  │Alt │ ⌫  │    │    │\n│    │    │    │    │ ␣ _│    ║    │    │  Gr│    │    │    │\n└────┴────┴────┴────┴────┴────╨────┴────┴────┴────┴────┴────┘\n```\n\nYou can of course tune the layout as you wish easily.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftexitoi%2Fkeyberon-grid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftexitoi%2Fkeyberon-grid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftexitoi%2Fkeyberon-grid/lists"}