Miryoku Keyboard Layout

repository·master·Indexed 26 days ago

https://github.com/manna-harbour/miryoku

An ergonomic, minimal, and universal keyboard layout designed for split or non-split ergo/ortho keyboards. Miryoku utilizes a layer-based system and thumb keys to minimize finger movement, featuring a 5x3 grid per hand. It supports multiple implementations including QMK, ZMK, KMonad, KMK, Babel, and Oryx. The layout is highly customizable via environment variables for alpha arrangements (e.g., QWERTY, COLEMAK, DVORAK), navigation styles (VI, INVERTEDT), and clipboard bindings.

Tokens
1.6K
Snippets
4
Records
11
Agent score
85%

What's inside Miryoku

  1. Overview of Miryoku Keyboard Layout

    master

    Miryoku is an ergonomic, minimal, orthogonal, and universal keyboard layout designed for split or non-split ergo/ortho keyboards. It follows these core principles:

    • Layer-based navigation: Uses layers instead of physical reaching.
    • Symmetry: Uses both hands instead of contortions.
    • Home Position: Maximizes use of home positions and thumbs.
    • Simplicity: Avoids unnecessary complication.

    Technical Specifications:

    • Grid: 5 columns, 3 rows, 3 thumb keys, 2 hands.
    • Key Coverage: Includes all keys found on a US TKL keyboard, plus media keys and mouse emulation.
    • Movement: Maximum 1-u movement from home position for fingers and thumbs (mostly along one axis).
    • Modifiers: Dual-function modifiers on the home row (mirrored on both hands) and dual-function layer change on thumbs.
  2. Understand Miryoku Layers

    master

    Miryoku is organized into several functional layers:

    Right-Hand Layers

    • Base: Default alphas (e.g., Colemak Mod-DH). Thumb keys: Left (Space, Tab, Escape), Right (Backspace, Enter, Delete).
    • Nav (Primary): Navigation and editing. Cursor keys on home position. Duplicates thumb keys from Base to enable auto-repeat.
    • Mouse (Secondary): Mouse emulation. Movement mirrors Nav layer; wheel mirrors line/page movement. Thumb keys act as Left, Right, and Middle mouse buttons.
    • Media (Tertiary): Media control (Volume, Next/Prev, Pause, Stop, Mute). Also includes RGB and Bluetooth controls.

    Left-Hand Layers

    • Num (Primary): Numpad layout for numerals and symbols.
    • Sym (Secondary): Shifted symbols in the same locations as Num to reduce chording.
    • Fun (Tertiary): Function keys mirroring the Num layer, plus system keys and an App key on the tertiary thumb.

    Special Layers

    • Button: Provides mouse buttons, mods, and clipboard keys for integrated/external pointing devices. Can be activated manually by holding a bottom row pinkie key.
  3. Implement alternative layouts in Oryx

    master

    This repository only provides specific layouts for the keyboards listed above. If you need an alternative layout for a different keyboard, you must implement it manually by copying the configuration from existing Miryoku implementations.

    For full support across all keyboards supported by Miryoku, use the Miryoku QMK implementation instead.

  4. Use Additional Features and Sub-layers

    master

    Miryoku includes advanced features triggered during thumb key tap-hold sequences or via specific key combinations. Note: Most additional features require a double tap to activate to prevent accidental triggers.

    Layer Switching and Reset

    • Base Layer Variants: Use top row index, middle, and ring column keys to switch between Base, Extra, and Tap layers.
    • Layer Lock: Use bottom row index and middle column keys to lock the current layer or the opposite layer.
    • Reset: To return from the Tap layer, hold any thumb key and tap the top row pinkie column key on the same hand.

    System Controls

    • Bootloader: Activate by tapping the top row pinkie column key.
    • RGB Control: Located on the top row. Use the inner index column key to toggle RGB. Use index, middle, ring, and pinkie keys to adjust Hue, Saturation, and Value (tap to increase, Shift + tap to decrease).
  5. Configure Alpha Layouts via Environment Variables

    master

    You can customize the alpha key arrangements for different layers using environment variables. The available arrangements apply to Base, Extra, and Tap layers.

    Base Alpha Options:

    • AZERTY
    • COLEMAK
    • COLEMAKDHK (Colemak Mod-DHk)
    • DVORAK
    • HALMAK
    • WORKMAN
    • QWERTY
    • QWERTZ

    Usage Examples:

    • Set Base alphas: MIRYOKU_ALPHAS=AZERTY
    • Set Extra alphas: MIRYOKU_EXTRA=COLEMAKDH
    • Set Tap alphas: MIRYOKU_TAP=QWERTY
    MIRYOKU_ALPHAS=AZERTY
    MIRYOKU_EXTRA=COLEMAKDH
    MIRYOKU_TAP=QWERTY
  6. Configure Clipboard Key Bindings

    master

    Customize how clipboard keys (Cut, Copy, Paste, Undo, Redo) behave using the MIRYOKU_CLIPBOARD variable.

    Available Options:

    • Default: Uses CUA bindings (compatible with Unix, Windows, Emacs, and most terminals). Undo/Redo use Fun Cluster keycodes.
    • FUN: Uses Fun Cluster keycodes.
    • MAC: Optimized for macOS.
    • WIN: Optimized for Windows.
    MIRYOKU_CLIPBOARD=MAC
    MIRYOKU_CLIPBOARD=WIN
    MIRYOKU_CLIPBOARD=FUN
  7. Configure Navigation (Nav) Layer Styles

    master

    The Nav layer (Primary right-hand layer) can be customized to match different movement styles using the MIRYOKU_NAV variable.

    Available Styles:

    • VI: Moves columns left one position to match hjkl positions. The inner index column moves to the pinkie column. (Note: Not compatible with MIRYOKU_LAYERS=FLIP).
    • INVERTEDT: Arranges cursor keys in an inverted-T. Down is on the middle finger home position, Home/End are to the left/right of Up, and Page Up/Page Down are on the pinkie column. Clipboard keys move to the bottom row, and Insert moves to the top row.
    • Default: Standard navigation arrangement.
    MIRYOKU_NAV=VI
    MIRYOKU_NAV=INVERTEDT
  8. Available Miryoku implementations

    master

    Miryoku is available as an implementation for several different keyboard firmware and software platforms:

    • QMK: For QMK-based keyboards.
    • ZMK: For ZMK-based keyboards.
    • KMonad: For KMonad-based software remapping.
    • KMK: For KMK-based firmware.
    • Babel: For Miryoku Babel.
    • Oryx: Via Oryx configuration.