A Karabiner-Elements config that uses the extra keys on an Apple JIS keyboard to build a US-compatible layout with a Hyper key, Vim navigation, window tiling, and modular accent support for Italian, French, Spanish, and German.
A US ANSI keyboard doesn't have enough keys. If you want a Hyper key (⌃⌥⇧⌘), Vim-style navigation, window tiling shortcuts, and accented characters for a second language, you run out of room. Something has to give. You end up with layers of hacks competing for the same modifier keys, or you buy a custom mechanical board with extra thumb clusters.
I went a different direction. Apple's JIS keyboard has more keys than ANSI: two extra keys flanking the spacebar (Eisuu and Kana), an extra key above Return (¥), and another near right Shift. Nobody uses them on a US-oriented setup. I do. Those keys give me dedicated Command under both thumbs, a real Hyper key, and room for an accent layer, all while keeping a standard US arrangement for coding and macOS shortcuts.
The other reason I chose JIS: Apple makes them for every product line. Magic Keyboard, MacBook Pro, MacBook Air. You can order one anywhere in the world. I use the same physical keyboard at my desk and at work, with blank black stickers over every keycap. No labels, no peeking. Pure muscle memory. Install Karabiner on any Mac, import the config, and the layout is identical in two minutes.
I've been using this setup for years. I called it HyperJIS.
| Physical key | What it becomes |
|---|---|
| Caps Lock | Fn |
| Space (hold) | Control |
| Left Control (tap) | Escape |
| Left Control (hold) | Control |
| Left Option | Hyper (⌃⌥⇧⌘) |
| Left Command | Left Option |
| Eisuu (英数) | Left Command |
| Kana (かな) | Right Command |
| Right Command | Right Option |
| Fn (tap) | Language switch |
| Fn (hold) | Hyper (⌃⌥⇧⌘) |
| Ctrl + H/J/K/L | Arrow keys (Vim) |
| ¥ (International3) | ` / ~ |
| International1 (ろ) | Emoji picker |
| Escape (tap) | Screenshot (⇧⌘4) |
| Escape (hold) | ⌃⌥⇧⌘W |
| Arrow keys | Fn+HJKL (frees arrows for tiling) |
The modifier cascade puts Command under your thumbs (Eisuu/Kana), Control under your right thumb (hold Space), Escape under your left pinky (tap Control), and Hyper under your left ring finger (Option). Your hands stay on the home row. If you also set macOS to map Caps Lock → Control (System Settings → Keyboard → Modifier Keys), Caps Lock becomes a second Escape/Control key alongside Left Control.
With cursor movement handled by Ctrl+HJKL, the arrow keys are free. I use Swish to map modifier+arrow combos to tiling actions: halves, quarters, thirds, fullscreen. If you don't use Swish, disable the arrow remap rule and keep normal arrows.
The accent files are separate from the core layout. Pick the ones you need:
| File | What it adds | Trigger |
|---|---|---|
hyperjis-accents-romance.json |
Grave/acute on all vowels, €, «», "" | Fn + vowel (double-tap swaps grave↔acute) |
hyperjis-accents-french.json |
Circumflex (â, ê, î, ô, û), ç, œ | Fn + Option + vowel; Fn + c/q |
hyperjis-accents-spanish.json |
ñ, ¡, ¿ | Fn + n; Fn + 1; Fn + / |
hyperjis-accents-german.json |
Umlauts (ä, ö, ü), ß | Fn + Option + a/o/u; Fn + s |
Which files for which language:
| Language | Install these |
|---|---|
| Italian | Romance base |
| Spanish | Romance base + Spanish |
| French | Romance base + French |
| German | German (standalone, or add Romance base too) |
| Portuguese | Romance base |
The Romance base file handles grave and acute accents on all five vowels. That alone covers Italian completely, and gives Spanish and Portuguese their accented vowels. French and German each need one more file on top.
Note: The French and German extensions both use Fn + Option + vowel, so don't enable both at the same time. If you need both circumflex and umlauts, pick one extension and use macOS's built-in dead keys (Option+i or Option+u) for the other.
You need macOS, Karabiner-Elements, and a JIS Apple keyboard.
Copy any of these URLs and paste them into your browser's address bar. Karabiner-Elements will open and offer to import the rules.
Core layout:
karabiner://karabiner/assets/complex_modifications/import?url=https://raw.githubusercontent.com/smnrg/HyperJIS/main/json/hyperjis-core.json
Romance base (Italian, Spanish, Portuguese, French grave/acute):
karabiner://karabiner/assets/complex_modifications/import?url=https://raw.githubusercontent.com/smnrg/HyperJIS/main/json/hyperjis-accents-romance.json
French extension (circumflex, ç, œ):
karabiner://karabiner/assets/complex_modifications/import?url=https://raw.githubusercontent.com/smnrg/HyperJIS/main/json/hyperjis-accents-french.json
Spanish extension (ñ, ¡, ¿):
karabiner://karabiner/assets/complex_modifications/import?url=https://raw.githubusercontent.com/smnrg/HyperJIS/main/json/hyperjis-accents-spanish.json
German extension (ä, ö, ü, ß):
karabiner://karabiner/assets/complex_modifications/import?url=https://raw.githubusercontent.com/smnrg/HyperJIS/main/json/hyperjis-accents-german.json
After importing, open Karabiner-Elements, go to Complex Modifications, click Add Rule, and enable what you want. Each rule is independent.
Download the JSON files from json/ and copy them to ~/.config/karabiner/assets/complex_modifications/. Then enable rules in Karabiner.
Caps Lock as Escape/Control (recommended): Set System Settings → Keyboard → Keyboard Shortcuts → Modifier Keys → Caps Lock → Control. Combined with the HyperJIS rule "Left Control: tap=Escape, hold=Control," this gives you Escape on Caps Lock tap and Control on hold. Without this, Caps Lock just becomes Fn.
Fn key for language switching: The Fn tap sends the native macOS Globe key signal. For language switching to work, you need:
- Two or more input sources installed (System Settings → Keyboard → Input Sources → click +)
- Globe key set to Change Input Source (System Settings → Keyboard → "Press 🌐 key to" → Change Input Source)
Without these, the Fn tap does nothing visible. Hold still gives you Hyper.
Do I need a JIS keyboard? Many rules work on any keyboard (Space-as-Control, Ctrl+HJKL, Hyper). The JIS-specific remaps (Eisuu, Kana, International keys) just won't fire on ANSI or ISO boards.
Will this break my shortcuts? No. The cascade preserves all standard macOS shortcuts. ⌘C, ⌘V, ⌘Tab all work the same. They just come from the Eisuu/Kana keys, which sit in the same thumb position as Command on a US board.
Can I use the accents without the core layout? Yes. The accent files are standalone and work with any keyboard layout, including plain US ANSI.
What about Linux or Windows? These are Karabiner configs, macOS only. The same ideas can be implemented with keyd (Linux) or AutoHotkey (Windows), but no ready-made configs exist yet. PRs welcome.
HyperJIS/
├── json/
│ ├── hyperjis-core.json
│ ├── hyperjis-accents-romance.json
│ ├── hyperjis-accents-french.json
│ ├── hyperjis-accents-spanish.json
│ └── hyperjis-accents-german.json
├── hyperjis-diagram.svg
├── README.md
└── LICENSE
Built by Simone. I've been using this layout for years. If you try it, I'd like to hear how it goes.