Skip to content

A split keyboard layout, optimized for Portuguese, English, working with numbers and software programming with VIM plugins.

License

Notifications You must be signed in to change notification settings

rafaelromao/keyboards

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rafaelromao's keyboard layout

Overview

A split keyboard layout optimized for Portuguese, English, working with numbers and software programming with VIM plugins.

img

The image above shows just the most relevant layers. You can see the full diagram here.

How this layout works?

The ratiaonale behind the decisions that led to this keymap can be found in this page, but here is a summary:

Directives

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.

Workflows

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.

My Keyboards

Diamond Wired Diamond Choc Diamond
Rommana Remix Wired Rommana Corne-ish Zen

ZMK

This keymap is implemented using ZMK, with the following external modules:

Local Build

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

Diagram

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

References

Most features implemented here were based on the work referenced below.

Layouts

QMK

ZMK

3D Printing and Handwiring

Resources

About

A split keyboard layout, optimized for Portuguese, English, working with numbers and software programming with VIM plugins.

Topics

Resources

License

Stars

Watchers

Forks