{"id":42201711,"url":"https://github.com/rafaelromao/keyboards","last_synced_at":"2026-01-27T00:26:53.455Z","repository":{"id":37528836,"uuid":"446867932","full_name":"rafaelromao/keyboards","owner":"rafaelromao","description":"A split keyboard layout, optimized for Portuguese, English, working with numbers and software programming with VIM plugins.","archived":false,"fork":false,"pushed_at":"2026-01-26T01:48:31.000Z","size":843202,"stargazers_count":454,"open_issues_count":0,"forks_count":17,"subscribers_count":6,"default_branch":"main","last_synced_at":"2026-01-26T11:13:05.861Z","etag":null,"topics":["zmk"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":false,"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/rafaelromao.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-01-11T15:05:34.000Z","updated_at":"2026-01-26T01:48:35.000Z","dependencies_parsed_at":"2025-01-27T20:35:00.735Z","dependency_job_id":"96db9110-4fbc-414b-b5bc-607475e0c869","html_url":"https://github.com/rafaelromao/keyboards","commit_stats":null,"previous_names":[],"tags_count":52,"template":false,"template_full_name":null,"purl":"pkg:github/rafaelromao/keyboards","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rafaelromao%2Fkeyboards","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rafaelromao%2Fkeyboards/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rafaelromao%2Fkeyboards/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rafaelromao%2Fkeyboards/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rafaelromao","download_url":"https://codeload.github.com/rafaelromao/keyboards/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rafaelromao%2Fkeyboards/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28793023,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-26T21:49:50.245Z","status":"ssl_error","status_checked_at":"2026-01-26T21:48:29.455Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["zmk"],"created_at":"2026-01-27T00:26:52.909Z","updated_at":"2026-01-27T00:26:53.437Z","avatar_url":"https://github.com/rafaelromao.png","language":"Shell","funding_links":[],"categories":["Shell"],"sub_categories":[],"readme":"# rafaelromao's keyboard layout\n \n## Overview\n\nA split keyboard layout optimized for Portuguese, English, working with numbers and software programming with VIM plugins.\n\n![img](docs/img/diagrams/overview.png)\n\nThe image above shows just the most relevant layers. You can see the full diagram [here](docs/img/diagrams/all.png).\n\n## How this layout works?\n\nThe ratiaonale behind the decisions that led to this keymap can be found in [this page](https://rafaelromao.github.io/keyboards), but here is a summary:\n\n### Directives\n\nWhat are the directives that drive most of my decisions?\n\n- **Ergonomics**: Split and Columnar Stagger.\n- **Finger Effort**: No lateral movements or uncomfortable stretches.\n- **Easy of Use**: If it is frequent, it should be easy.\n- **Handness**: Trackball in the left hand, heavy load in the right hand.\n- **Workflows**: English, but also Portuguese, plus VIM and Spreadsheets.\n\n### Workflows\n\nWhat are the workflows that I need to execute with my keyboards?\n\n- **Typing**: The most basic and essential workflow.\n- **Numbers**: How this keymap makes it easy to work with numbers.\n- **Shortcut**: How to work with so many shortcuts in such minimal keyboards.\n- **Navigation**: Navigating in text, presentations, window management and mouse emulation.\n- **Programming**: Optimizations to make programming easier.\n\n## My Keyboards\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ca href=\"https://github.com/rafaelromao/diamond\"\u003eDiamond\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ca href=\"https://github.com/rafaelromao/diamond\"\u003eWired Diamond\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ca href=\"https://github.com/rafaelromao/diamond\"\u003eChoc Diamond\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ca href=\"docs/img/builds/Diamond.jpeg\"\u003e\u003cimg src=\"docs/img/builds/Diamond.jpeg\" width=\"150\" /\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ca href=\"docs/img/builds/Wired%20Diamond.jpeg\"\u003e\u003cimg src=\"docs/img/builds/Wired%20Diamond.jpeg\" width=\"150\" /\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ca href=\"docs/img/builds/Choc%20Diamond.jpeg\"\u003e\u003cimg src=\"docs/img/builds/Choc%20Diamond.jpeg\" width=\"150\" /\u003e\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ca href=\"https://github.com/rafaelromao/rommana-remix\"\u003eRommana Remix\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ca href=\"https://github.com/AlaaSaadAbdo/Rommana\"\u003eWired Rommana\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ca href=\"https://lowprokb.ca/collections/keyboards/products/corne-ish-zen\"\u003eCorne-ish Zen\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ca href=\"docs/img/builds/Rommana.jpeg\"\u003e\u003cimg src=\"docs/img/builds/Rommana.jpeg\" width=\"150\" /\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ca href=\"docs/img/builds/Wired%20Rommana.jpeg\"\u003e\u003cimg src=\"docs/img/builds/Wired%20Rommana.jpeg\" width=\"150\" /\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ca href=\"docs/img/builds/Corne-ish%20Zen.jpeg\"\u003e\u003cimg src=\"docs/img/builds/Corne-ish%20Zen.jpeg\" width=\"150\" /\u003e\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n## ZMK\n\nThis keymap is implemented using ZMK, with the following external modules:\n- [Auto Layer](https://github.com/urob/zmk-auto-layer)\n- [Adaptive Key](https://github.com/urob/zmk-adaptive-key)\n- [Leader Key](https://github.com/urob/zmk-leader-key)\n- [Listeners](https://github.com/ssbb/zmk-listeners)\n- [Layer Morph](https://github.com/rafaelromao/zmk-layer-morph)\n\n## Local Build\n\nUnlike most ZMK users, I don't use GitHub Actions to build the firmware for my keyboards, and since I come from a legacy repo structure, from the time I used QMK and when they didn't even support external userspaces, I use git submodules to import ZMK and everything else I need into my repo, then I build the firmware using a custom script. \n\nTo make the local build setup easier, I have a [Containerfile](Containerfile) that installs all the toolchain into a Ubuntu container. The [init](init.sh) script is then used to run this container.\n\nInto the container, I can use my custom [build](scripts/build.sh) script to build the firmware for all my keyboards.\n\nHere are some usage examples:\n\n```bash\n# Builds the central left side shield of the Rommana, assuming nice_nano_v2 as board and MACOS as target operating system\nbuild mabroum/rommana cl\n\n# Builds the left side shield of the Wired Diamond, specifying the board and ZMK fork to be used instead of the default\nbuild rafaelromao/wired_diamond l LINUX -b seeeduino_xiao_rp2040 -z rafaelromao/zmk\n\n# Builds the central dongle shield of the Choc Diamond, specifying an extra shield and an external module to handle the display\nbuild rafaelromao/choc_diamond cd MACOS -e dongle_display -m englmaxi/zmk-dongle-display\n```\n\nTo make it even simpler, I have a [b](scripts/b.sh) script that can be used to build the central sides using default configurations. \n\nExample:\n\n```sh\nb wd # builds the left side of the wired diamond keyboard for Linux, equivalent to the command below\n\nbuild rafaelromao/wired_diamond l LINUX -b seeeduino_xiao_rp2040 -z rafaelromao/zmk\n```\n\n## Diagram\n\nThe diagrams for my keymap were created using [Keymap Drawer](https://github.com/caksoylar/keymap-drawer).\n\nHere are some examples of the commands I use to draw the `svg` files and convert them to `png`:\n\n```bash\nkeymap -c keymap-drawer-config.yaml draw keymap-drawer.yaml \u003e overview.svg\ninkscape --export-type png --export-filename overview.png --export-dpi 300 --export-background=white overview.svg\n```\n\n## References\n\nMost features implemented here were based on the work referenced below.\n\n### Layouts\n\n- [Romak](https://rafaelromao.github.io/romak)\n- [Colemak](https://colemak.org)\n- [BEAKL](https://web.archive.org/web/20210801204805/https://ieants.cc/beakl/)\n- [Hands Down](https://sites.google.com/alanreiser.com/handsdown/home)\n- [Engram](https://engram.dev)\n- [Miryoku](https://github.com/manna-harbour/miryoku)\n- [Seniply](https://stevep99.github.io/seniply)\n- [Thinqu](https://web.archive.org/web/20230604081244/https://microexploitation.com/2018/06/04/thinqu/)\n- [Suraj Kurapati](https://sunaku.github.io/moergo-glove80-keyboard.html)\n- [bmijanovich](https://github.com/bmijanovich/zmk-config)\n- [DreymaR](https://dreymar.colemak.org)\n- [Ben Vallack](https://youtube.com/c/BenVallack)\n- [Magic Sturdy](https://github.com/Ikcelaks/keyboard_layouts/blob/main/magic_sturdy/magic_sturdy.md)\n- [Unity](https://lykt.xyz/uno)\n- [Nordrassil](https://github.com/empressabyss/nordrassil)\n- [Sartak](https://github.com/sartak/keyboard)\n\n### QMK\n\n- [Pascal Getreuer](https://github.com/getreuer/qmk-keymap)\n- [Precondition](https://github.com/precondition/dactyl-manuform-keymap)\n- [Drashna](https://github.com/drashna/qmk_userspace)\n- [Callum Oakley](https://github.com/callum-oakley/qmk_firmware/tree/master/users/callum)\n- [Andrew Rae](https://github.com/andrewjrae/kyria-keymap)\n- [Weilbith](https://github.com/weilbith/keyboard_firmware)\n- [Treeman](https://github.com/treeman/qmk_firmware/tree/master/keyboards/ferris/keymaps/treeman)\n- [Thomas Baart](https://thomasbaart.nl/category/mechanical-keyboards/firmware/qmk)\n\n### ZMK\n\n- [Pete Johanson](https://github.com/petejohanson/)\n- [Cem Aksoylar](https://github.com/caksoylar)\n- [Nick Conway](https://github.com/nickconway)\n- [Robert U](https://github.com/urob)\n- [Sviatoslav Bulbakha](https://github.com/ssbb)\n- [Alexander Krikun](https://github.com/krikun98)\n- [ShiniNet](https://github.com/ShiniNet)\n\n### 3D Printing and Handwiring\n\n- [Jan Lunge](https://m.youtube.com/@JanLunge)\n- [Sadek Baroudi](https://github.com/sadekbaroudi)\n- [Joe Scotto](https://github.com/joe-scotto)\n- [Alaa Saad Mansour](https://github.com/AlaaSaadAbdo)\n- [Peter Elliot](https://github.com/PJE66)\n\n## Resources\n\n- [Keymap Drawer](https://github.com/caksoylar/keymap-drawer)\n- [Keymap DB](https://keymapdb.com/keymaps/rafaelromao/)\n- [QMK Docs](https://docs.qmk.fm)\n- [ZMK Docs](https://zmk.dev/docs)\n- [Keyboard Tester](https://config.qmk.fm/#/test)\n- [Word Finder - English](https://www.merriam-webster.com/wordfinder/classic/contains/all/-1/th/1)\n- [Word Finder - Portuguese](https://www.palavras.net/search.php?m=th\u0026d=17)\n- [r/olkb](https://www.reddit.com/r/olkb)\n- [r/ErgoMechKeyboards](https://www.reddit.com/r/ErgoMechKeyboards)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frafaelromao%2Fkeyboards","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frafaelromao%2Fkeyboards","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frafaelromao%2Fkeyboards/lists"}