A split keyboard layout optimized for Portuguese, English, working with numbers and software programming with VIM plugins.
The image above shows just the most relevant layers. You can see the full diagram here.
The ratiaonale behind the decisions that led to this keymap can be found in this page, but here is a summary:
What are the directives that drive most of my decisions?
- Ergonomics: Split and Columnar Stagger.
- Finger Effort: No lateral movements or uncomfortable stretches.
- Easy of Use: If it is frequent, it should be easy.
- Handness: Trackball in the left hand, heavy load in the right hand.
- Workflows: English, but also Portuguese, plus VIM and Spreadsheets.
What are the workflows that I need to execute with my keyboards?
- Typing: The most basic and essential workflow.
- Numbers: How this keymap makes it easy to work with numbers.
- Shortcuts: How to work with so many shortcuts in such minimal keyboards.
- Navigation: Navigating in text, presentations, window management and mouse emulation.
- Programming: Optimizations to make programming easier.
Diamond | Wired Diamond | Choc Diamond |
![]() |
![]() |
![]() |
Rommana Remix | Wired Rommana | Corne-ish Zen |
![]() |
![]() |
![]() |
This keymap is implemented using ZMK, with the following external modules:
Unlike 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.
This script will assume the toolchain is already installed, but other than that, it will do its best to keep the build process as simple as possible.
Here are some usage examples:
# Builds the central left side shield of the Rommana, assuming nice_nano_v2 as board and MACOS as target operating system
build mabroum/rommana cl
# Builds the left side shield of the Wired Diamond, specifying the board and ZMK fork to be used instead of the default
build rafaelromao/wired_diamond l LINUX -b seeeduino_xiao_rp2040 -z rafaelromao/zmk
# Builds the central dongle shield of the Choc Diamond, specifying an extra shield and an external module to handle the display
build rafaelromao/choc_diamond cd MACOS -e dongle_display -m englmaxi/zmk-dongle-display
I also need to initialize my terminal with the following script before using the build
command:
cd ~/keyboards ; source ./scripts/init.sh
The diagrams for my keymap were created using Keymap Drawer.
Here are some examples of the commands I use to draw the svg
files and convert them to png
:
keymap -c keymap-drawer-config.yaml draw keymap-drawer.yaml > overview.svg
inkscape --export-type png --export-filename overview.png --export-dpi 300 --export-background=white overview.svg
Most features implemented here were based on the work referenced below.