{"id":48883181,"url":"https://github.com/smnrg/hyperjis","last_synced_at":"2026-04-16T04:03:38.470Z","repository":{"id":226758711,"uuid":"769575227","full_name":"smnrg/HyperJIS","owner":"smnrg","description":"Karabiner config: US layout + Vim + Hyper + multilingual accents on Apple JIS keyboards","archived":false,"fork":false,"pushed_at":"2026-04-15T21:12:31.000Z","size":54,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-15T21:13:57.482Z","etag":null,"topics":["apple-keyboard","hyper-keys","jis","karabiner","karabiner-elements","keyboard-layout","macos","vim"],"latest_commit_sha":null,"homepage":"https://simone.org/hyperjis","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/smnrg.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-03-09T13:18:20.000Z","updated_at":"2026-04-15T21:12:37.000Z","dependencies_parsed_at":null,"dependency_job_id":"6b7fe84f-7511-42f6-8eb1-35249f5be01c","html_url":"https://github.com/smnrg/HyperJIS","commit_stats":null,"previous_names":["smnrg/hyperjis"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/smnrg/HyperJIS","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smnrg%2FHyperJIS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smnrg%2FHyperJIS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smnrg%2FHyperJIS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smnrg%2FHyperJIS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/smnrg","download_url":"https://codeload.github.com/smnrg/HyperJIS/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smnrg%2FHyperJIS/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31870517,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T15:24:51.572Z","status":"online","status_checked_at":"2026-04-16T02:00:06.042Z","response_time":69,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apple-keyboard","hyper-keys","jis","karabiner","karabiner-elements","keyboard-layout","macos","vim"],"created_at":"2026-04-16T04:03:10.357Z","updated_at":"2026-04-16T04:03:38.455Z","avatar_url":"https://github.com/smnrg.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# HyperJIS\n\nA 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.\n\n![HyperJIS Keyboard Diagram](hyperjis-diagram.svg)\n\n---\n\n## Why this exists\n\nA 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.\n\nI 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.\n\nThe 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.\n\nI've been using this setup for years. I called it HyperJIS.\n\n## What it does\n\n### Core layout (`hyperjis-core.json`)\n\n| Physical key | What it becomes |\n|---|---|\n| Caps Lock | Fn |\n| Space (hold) | Control |\n| Left Control (tap) | Escape |\n| Left Control (hold) | Control |\n| Left Option | Hyper (⌃⌥⇧⌘) |\n| Left Command | Left Option |\n| Eisuu (英数) | Left Command |\n| Kana (かな) | Right Command |\n| Right Command | Right Option |\n| Fn (tap) | Language switch |\n| Fn (hold) | Hyper (⌃⌥⇧⌘) |\n| Ctrl + H/J/K/L | Arrow keys (Vim) |\n| ¥ (International3) | `` ` `` / `~` |\n| International1 (ろ) | Emoji picker |\n| Escape (tap) | Screenshot (⇧⌘4) |\n| Escape (hold) | ⌃⌥⇧⌘W |\n| Arrow keys | Fn+HJKL (frees arrows for tiling) |\n\nThe 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.\n\n### Window tiling\n\nWith cursor movement handled by Ctrl+HJKL, the arrow keys are free. I use [Swish](https://highlyopinionated.co/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.\n\n### Accent system (modular)\n\nThe accent files are separate from the core layout. Pick the ones you need:\n\n| File | What it adds | Trigger |\n|---|---|---|\n| `hyperjis-accents-romance.json` | Grave/acute on all vowels, €, «», \"\" | Fn + vowel (double-tap swaps grave↔acute) |\n| `hyperjis-accents-french.json` | Circumflex (â, ê, î, ô, û), ç, œ | Fn + Option + vowel; Fn + c/q |\n| `hyperjis-accents-spanish.json` | ñ, ¡, ¿ | Fn + n; Fn + 1; Fn + / |\n| `hyperjis-accents-german.json` | Umlauts (ä, ö, ü), ß | Fn + Option + a/o/u; Fn + s |\n\n**Which files for which language:**\n\n| Language | Install these |\n|---|---|\n| Italian | Romance base |\n| Spanish | Romance base + Spanish |\n| French | Romance base + French |\n| German | German (standalone, or add Romance base too) |\n| Portuguese | Romance base |\n\nThe 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.\n\n**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.\n\n## Installation\n\nYou need macOS, [Karabiner-Elements](https://karabiner-elements.pqrs.org/), and a JIS Apple keyboard.\n\n### Import into Karabiner\n\nCopy any of these URLs and paste them into your browser's address bar. Karabiner-Elements will open and offer to import the rules.\n\n**Core layout:**\n```\nkarabiner://karabiner/assets/complex_modifications/import?url=https://raw.githubusercontent.com/smnrg/HyperJIS/main/json/hyperjis-core.json\n```\n\n**Romance base** (Italian, Spanish, Portuguese, French grave/acute):\n```\nkarabiner://karabiner/assets/complex_modifications/import?url=https://raw.githubusercontent.com/smnrg/HyperJIS/main/json/hyperjis-accents-romance.json\n```\n\n**French extension** (circumflex, ç, œ):\n```\nkarabiner://karabiner/assets/complex_modifications/import?url=https://raw.githubusercontent.com/smnrg/HyperJIS/main/json/hyperjis-accents-french.json\n```\n\n**Spanish extension** (ñ, ¡, ¿):\n```\nkarabiner://karabiner/assets/complex_modifications/import?url=https://raw.githubusercontent.com/smnrg/HyperJIS/main/json/hyperjis-accents-spanish.json\n```\n\n**German extension** (ä, ö, ü, ß):\n```\nkarabiner://karabiner/assets/complex_modifications/import?url=https://raw.githubusercontent.com/smnrg/HyperJIS/main/json/hyperjis-accents-german.json\n```\n\nAfter importing, open Karabiner-Elements, go to Complex Modifications, click Add Rule, and enable what you want. Each rule is independent.\n\n### Manual install\n\nDownload the JSON files from [`json/`](json/) and copy them to `~/.config/karabiner/assets/complex_modifications/`. Then enable rules in Karabiner.\n\n## Setup notes\n\n**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.\n\n**Fn key for language switching**: The Fn tap sends the native macOS Globe key signal. For language switching to work, you need:\n\n1. Two or more input sources installed (System Settings → Keyboard → Input Sources → click +)\n2. Globe key set to Change Input Source (System Settings → Keyboard → \"Press 🌐 key to\" → Change Input Source)\n\nWithout these, the Fn tap does nothing visible. Hold still gives you Hyper.\n\n## FAQ\n\n**Do I need a JIS keyboard?**\nMany 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.\n\n**Will this break my shortcuts?**\nNo. 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.\n\n**Can I use the accents without the core layout?**\nYes. The accent files are standalone and work with any keyboard layout, including plain US ANSI.\n\n**What about Linux or Windows?**\nThese 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.\n\n## Repo structure\n\n```\nHyperJIS/\n├── json/\n│   ├── hyperjis-core.json\n│   ├── hyperjis-accents-romance.json\n│   ├── hyperjis-accents-french.json\n│   ├── hyperjis-accents-spanish.json\n│   └── hyperjis-accents-german.json\n├── hyperjis-diagram.svg\n├── README.md\n└── LICENSE\n```\n\n## License\n\n[GPL-3.0](LICENSE)\n\n## Author\n\nBuilt by [Simone](https://simone.org/about). I've been using this layout for years. If you try it, I'd like to hear how it goes.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmnrg%2Fhyperjis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsmnrg%2Fhyperjis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmnrg%2Fhyperjis/lists"}