~laumann/infinity-ergodox-layout

Layout(s) for the Infinity Ergodox keyboard
ff045929 — Thomas Bracht Laumann Jespersen 11 months ago
readme: Fix links
d35f753a — Thomas Bracht Laumann Jespersen 11 months ago
readme: Fix a typo
7750b347 — Thomas Bracht Laumann Jespersen 11 months ago
Initial commit

refs

master
browse  log 

clone

read-only
https://git.sr.ht/~laumann/infinity-ergodox-layout
read/write
git@git.sr.ht:~laumann/infinity-ergodox-layout

You can also use your local clone with git send-email.

#Infinity Ergodox layout

This repo hosts my Infinity Ergodox layout so I can recall it when needed.

#Requirements

  • An Infinity Ergodox keyboard
  • The kiibohd-configurator tool
  • One of the layout files from layouts/
  • Install dfu-util from package manager

#Software setup

Install dfu-util with:

$ emerge app-mobilephone/dfu-util

Then create the file /etc/udev/rules.d/98-kiibohd.rules

$ cat /etc/udev/rules.d/98-kiibohd.rules
# Half-Kay, Kiibohd
SUBSYSTEM=="usb" ATTR{idVendor}=="16c0" ATTR{idProduct}=="04[789]?" ENV{ID_MM_DEVICE_IGNORE}="1" ENV{MTP_NO_PROBE}="1" MODE:="0666"

# Kiibohd Serial Interface
SUBSYSTEM=="tty" ATTRS{idVendor}=="16c0" ATTRS{idProduct}=="04[789]?" SYMLINK+="kiibohd" MODE:="0666"
SUBSYSTEM=="tty" ATTRS{idVendor}=="1c11" ATTRS{idProduct}=="b04d" SYMLINK+="kiibohd" MODE:="0666"
SUBSYSTEM=="tty" ATTRS{idVendor}=="308f" SYMLINK+="kiibohd" MODE:="0666"

# Kiibohd Device
SUBSYSTEM=="usb" ATTR{idVendor}=="1c11" ATTR{idProduct}=="b04d" MODE:="0666"

# Kiibohd Device (Official VID)
SUBSYSTEM=="usb" ATTR{idVendor}=="308f" MODE:="0666"

# DFU Bootloader (MCHCK)
SUBSYSTEM=="usb" ATTR{idVendor}=="2323" ATTR{idProduct}=="0001" ENV{ID_MM_DEVICE_IGNORE}="1" ENV{MTP_NO_PROBE}="1" MODE:="0666"

# Kiibohd DFU Bootloader
SUBSYSTEM=="usb" ATTR{idVendor}=="1c11" ATTR{idProduct}=="b007" ENV{ID_MM_DEVICE_IGNORE}="1" ENV{MTP_NO_PROBE}="1" MODE:="0666"

# Kiibohd DFU Bootloaders (Official VID)
SUBSYSTEM=="usb" ATTR{idVendor}=="308f" ATTR{idProduct}=="0000" ENV{MTP_NO_PROBE}="1" ENV{ID_MM_DEVICE_IGNORE}="1" MODE:="0666"
SUBSYSTEM=="usb" ATTR{idVendor}=="308f" ATTR{idProduct}=="0003" ENV{MTP_NO_PROBE}="1" ENV{ID_MM_DEVICE_IGNORE}="1" MODE:="0666"
SUBSYSTEM=="usb" ATTR{idVendor}=="308f" ATTR{idProduct}=="0005" ENV{MTP_NO_PROBE}="1" ENV{ID_MM_DEVICE_IGNORE}="1" MODE:="0666"
SUBSYSTEM=="usb" ATTR{idVendor}=="308f" ATTR{idProduct}=="000C" ENV{MTP_NO_PROBE}="1" ENV{ID_MM_DEVICE_IGNORE}="1" MODE:="0666"
SUBSYSTEM=="usb" ATTR{idVendor}=="308f" ATTR{idProduct}=="0010" ENV{MTP_NO_PROBE}="1" ENV{ID_MM_DEVICE_IGNORE}="1" MODE:="0666"
SUBSYSTEM=="usb" ATTR{idVendor}=="308f" ATTR{idProduct}=="0012" ENV{MTP_NO_PROBE}="1" ENV{ID_MM_DEVICE_IGNORE}="1" MODE:="0666"
SUBSYSTEM=="usb" ATTR{idVendor}=="308f" ATTR{idProduct}=="0014" ENV{MTP_NO_PROBE}="1" ENV{ID_MM_DEVICE_IGNORE}="1" MODE:="0666"
SUBSYSTEM=="usb" ATTR{idVendor}=="308f" ATTR{idProduct}=="0016" ENV{MTP_NO_PROBE}="1" ENV{ID_MM_DEVICE_IGNORE}="1" MODE:="0666"
SUBSYSTEM=="usb" ATTR{idVendor}=="308f" ATTR{idProduct}=="0019" ENV{MTP_NO_PROBE}="1" ENV{ID_MM_DEVICE_IGNORE}="1" MODE:="0666"

# Kiibohd Force Gauge
# e.g. udevadm info -a -p /sys/bus/usb/devices/3-5
# sudo udevadm test /sys/bus/usb/devices/3-5:1.0/tty/ttyACM0
# Use ATTR on root, ATTRS on leaves
SUBSYSTEM=="tty"  ATTRS{idVendor}=="1c11" ATTRS{idProduct}=="f05c" MODE:="0666" SYMLINK+="force"
SUBSYSTEM=="usb" ATTR{idVendor}=="1c11" ATTR{idProduct}=="f05c" MODE:="0666"

Finally, unzip the configurator tool to a location and

#To flash

Start the configurator with:

$ ./kiibohd-configurator

It should open the GUI from where you can select the Infinity Ergodox as the keyboard to work with. There should be an "Import Keymap" button that open a text box in which you can paste a JSON of your keyboard layout.

Each side is flashed individually, there's a button on the bottom of each half. The configurator tool has a "FLASH" button that really only compiles the firmware, the keyboard halves must be put in flash mode before any changes can be applied.

You can basically follow the steps here.

#How I use it

The keyboard is basically setup as your standard (US) QWERTY layout with some minor differences when it comes to keys used a lot in programming.

I use the Dvorak layout and typically run:

$ setxkbmap dvorak
$ setxbkmap -option compose:caps

to have (US) Dvorak as the interpreted layout and use CAPS LOCK as the Compose key.

#Alternatives

I've considered just hard-coding the keyboard to Dvorak. Then I wouldn't need to run the setxkbmap dvorak line every time I plug in the keyboard.

#Picture