Skip to content

zerodice0/iris56_keymap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IRIS Keyboard zerodice0 Keymap Configuration

A firmware repository with additional key assignments based on the default keymap.

Introduction to IRIS Keyboard

IRIS Keyboard Iris is Keebio's most popular split keyboard that helps place your hands in a more natural position. Thousands of users have improved issues such as Repetitive Stress Injury (RSI), Carpal Tunnel Syndrome, and hypermobility through the Iris keyboard. Iris comes in various versions, allowing users to choose a style that perfectly fits their individual needs.

You can purchase parts including the board, keycaps, and plates from KEEB.IO. Since customs duties may apply for purchases over $150, it's recommended to buy only the essential parts (board and plates) from KEEB.IO and purchase keycaps and switches from AliExpress or other sources.

Parts to order from KEEB.IO

  • PCB board
  • Aluminum top/bottom plates (plate kit)
  • Middle layer (optional)

Parts that can be ordered from AliExpress/Daiso, etc.

  • Keycaps
  • Switches
  • Anti-slip rubber pads
  • Keyboard link cable (C to C)

Basic Keymap Setup

QMK Configurator

Simple keyboard settings can be configured using the QMK Configurator.

VIA

The default rules.mk file installed on the PCB board has the VIA_ENABLE option set to FALSE. Therefore, to use VIA, you need to download and install the appropriate firmware from VIA Firmware to enable key configuration using VIA.

Keymap Configuration and QMK Firmware Build

The QMK Firmware repository explains how to configure keymaps and build QMK Firmware. You can change key assignments by modifying the keymap.c file and change settings by modifying the rule.mk file. The firmware installed on the PCB board by default does not have options such as MOUSEKEY_ENABLE for using mouse keys or VIA_ENABLE for using VIA. Therefore, to customize the keyboard to better suit your needs, it's recommended to learn how to build firmware using QMK Firmware.

About the Firmware Distributed Through This Repository

This firmware supports macOS, Windows, Linux, and iOS with automatic keyboard shortcut adaptation. The firmware automatically detects your operating system and applies the appropriate shortcuts for screenshot capture, language switching, and mouse wheel direction.

The firmware follows the basic keymap installed on the PCB board and includes additional shortcut key assignments:

  1. FN3 key assigned instead of HOME
  2. CMD+OPT(ALT) keys assigned instead of END
  3. Mission Control executed with FN1 + FN2 + 6
  4. Launchpad executed with FN1 + FN2 + 7
  5. Mouse cursor movement with FN3 + H,J,K,L
  6. Mouse wheel scrolling with FN3 + N,M,<,>
  7. Mouse button clicks with FN3 + Y,U,I,O
  8. Navigate to previous/next page in CHROME with FN3 + P, DEL
  9. Navigate to parent/child folder in FINDER with FN3 + ;, '
  10. OS-agnostic screenshot shortcuts (adapts to your OS):
    • SC_FULL (FN3+8): Full screen capture
    • SC_AREA (FN3+6): Area selection capture
    • SC_MENU (FN3+9): Screenshot menu/options
    • SC_CLIP_FULL (FN3+Shift+8): Full screen to clipboard
    • SC_CLIP_AREA (FN3+7): Area selection to clipboard
  11. Language switching with LANG_SW (FN1 + bottom-right): Adapts to OS input method
  12. Mouse wheel direction (MW_RIGHT/UP/DOWN/LEFT) automatically adjusted per OS

Multi-OS Compatibility

This firmware implements OS-aware keyboard shortcuts that automatically adapt to the detected operating system (macOS, Windows, Linux, iOS).

Supported Features by OS

Feature macOS/iOS Windows Linux
Screenshot shortcuts ✅ Full support (Cmd+Shift+3/4/5) ✅ Snipping Tool (Win+Shift+S) ✅ PrtScn variants
Language switching ✅ Ctrl+Space / Caps Lock ✅ Right Alt ✅ Shift+Space
Mouse wheel direction ✅ Natural scrolling ✅ Reversed scrolling ✅ Reversed scrolling
Mouse control ✅ Full support ✅ Full support ✅ Full support

OS-Specific Shortcuts

Screenshot Keycodes

  • SC_FULL: Full screen capture

    • macOS: Cmd+Shift+3
    • Windows: Win+Shift+S (Snipping Tool)
    • Linux: PrtScn
  • SC_AREA: Area selection

    • macOS: Cmd+Shift+4
    • Windows: Win+Shift+S
    • Linux: Shift+PrtScn
  • SC_MENU: Screenshot menu/options

    • macOS: Cmd+Shift+5 (Screenshot menu)
    • Windows: Win+Shift+S
    • Linux: PrtScn
  • SC_CLIP_FULL: Full screen to clipboard

    • macOS: Cmd+Ctrl+Shift+3
    • Windows: Win+Shift+S (saves to clipboard)
    • Linux: Ctrl+PrtScn
  • SC_CLIP_AREA: Area selection to clipboard

    • macOS: Cmd+Ctrl+Shift+4
    • Windows: Win+Shift+S
    • Linux: Ctrl+Shift+PrtScn

Language Switching

  • LANG_SW: OS-aware language/input switching
    • macOS: Ctrl+Space
    • iOS: Caps Lock
    • Windows: Right Alt (Language bar)
    • Linux: Shift+Space (IBus/Fcitx)

Mouse Wheel Direction

  • MW_RIGHT/UP/DOWN/LEFT: Automatically adapts to OS scrolling conventions
    • macOS/iOS: Natural scrolling (wheel right = scroll right)
    • Windows/Linux: Reversed scrolling (wheel right = scroll left)

How It Works

The firmware uses OS detection to automatically apply the correct shortcuts when you plug in the keyboard. If OS detection is not available, the firmware defaults to macOS shortcuts. All shortcuts provide continuous key press support - holding down a key will repeat the action (useful for mouse wheel scrolling with acceleration).

Split Keyboard Stability

This firmware includes stability enhancements for split keyboard communication:

Applied Settings

Setting Value Purpose
RGB_MATRIX_MAXIMUM_BRIGHTNESS 100 (default: 120) Reduce power consumption to stabilize communication
SPLIT_WATCHDOG_ENABLE yes Auto-recovery when communication is lost
SPLIT_WATCHDOG_TIMEOUT 3000ms Automatic recovery after 3 seconds of communication loss

Issue Resolved

  • Symptom: Slave keyboard stops responding during LED effect switching
  • Cause: Power overconsumption + communication overload from multiple RM_NEXT keys
  • Solution: Brightness limit + watchdog + removed duplicate RM_NEXT keys (3→1)

Firmware Optimization

This firmware has been optimized for size while maintaining full functionality:

Current Build Stats (2025-11-30)

  • Firmware Size: 26,918 / 28,672 bytes (93%, 1,754 bytes free)
  • Supported Boards: Iris Rev7 (HEX), Iris CE Rev1 (UF2)

Optimization Applied

Optimization Impact
CONSOLE_ENABLE = no ~1,000-1,500 bytes saved
const#define conversion Minor savings
Selective RGB Matrix effects Reduced from 45 to 30 effects
SPLIT_WATCHDOG_ENABLE = yes Split communication stability

RGB Matrix Effects (30 enabled)

  • Basic (5): Solid Color, Alpha Mods, Gradient Up/Down, Gradient Left/Right, Breathing
  • Cycle (8): All, Left/Right, Up/Down, Out/In, Out/In Dual, Pinwheel, Spiral, Rainbow Moving Chevron
  • Hue (3): Breathing, Pendulum, Wave
  • Special (7): Raindrops, Jellybean Raindrops, Pixel Rain, Pixel Flow, Pixel Fractal, Typing Heatmap, Digital Rain
  • Reactive (7): Simple, Standard, Wide, Cross, Nexus, Splash, Solid Splash

Build Instructions

Build Commands

# Rev7 (ATmega32u4 - HEX file)
qmk compile -kb keebio/iris/rev7 -km zerodice0

# CE Rev1 (RP2040 - UF2 file)
qmk compile -kb keebio/iris_ce/rev1 -km zerodice0

Flash Firmware

# Rev7
qmk flash -kb keebio/iris/rev7 -km zerodice0

# CE Rev1 - Copy UF2 to RPI-RP2 drive

For detailed build instructions, please check the QMK Documentation.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Note

For Korean documentation, please refer to README-KR.md.

About

QMK Keymap for Iris56 Rev.7

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •