A KiCad Action Plugin for arranging keyboard switch footprints in a Grin layout.
Created with vibing using Codex and Claude.
English version is mainly translated by Claude from ./README.ja.md.
- Arrange keyboard switch footprints (
SW*
) along a convex-down curved row - Adjust curve depth with sag amount
- Adjustable number of flat keys at each end (0, 1, or 2)
- Asymmetric curve correction for different end key widths
- Support for key sizes (1.25u, 1.5u, 1.75u, etc.)
- Modifiable curves with angle profiles
-
Copy the plugin file to your KiCad plugin directory:
- Linux:
~/.kicad/scripting/plugins/
- macOS:
~/Library/Application Support/kicad/scripting/plugins/
- Windows:
%APPDATA%\kicad\scripting\plugins\
- Linux:
-
Tools → External Plugins → Refresh Plugins
- Select keyboard switch footprints (with reference names matching
SW\d+
pattern, e.g.,SW1
,SW2
, etc.) - Run the plugin from the menu: Tools → External Plugins → Keyboard grinner
- Configure parameters in the dialog:
- Downward sag amount (mm): The vertical drop at the bottom of the curve
- Flat keys at each end: Number of horizontal keys at the left and right edges (0-2)
- Angle profile: Curve shape profile
- Asymmetric curve correction: Enable to compensate for different end key widths (e.g., 1.75u + 1.0u)
- Click Apply to preview or OK to apply and close
- Run the plugin with no footprints selected to re-open a saved row. The plugin stores row parameters in a hidden footprint field named
grinner_params
on the leftmost switch and presents them in a picker dialog.
Tip: set
DEBUG_FIELD_DIALOG = True
insrc/keyboard_grinner.py
if you want pop-up confirmation while working on field storage.
- 8, 9
- cheena-gb's 65% keyboard
- View it on kicanvas
- Built with an alpha plugin version not stored in this repository plus manual adjustments by the contributor
- Salicylic acid's Jiki Onsen-gai Annaijo (Self-made Keyboard Hot Spring Town Information Center) - Jiki Progress Wai-Wai Forum
- cheena-gb for the post that inspired development and early feedback
- Additionally provided the example board
- Also viewable on kicanvas
- marby for providing hints on the asymmetric curve correction feature