Windows 11 Korean keyboard habits on macOS, powered by Karabiner-Elements.
Windows 11 νκ΅μ΄ ν€λ³΄λ μ΅κ΄μ macOSμ κ·Έλλ‘ μ΄μνλ Karabiner-Elements μ€μ
βΆοΈ λ°λͺ¨ μμ 보기 β λͺ¨λ κΈ°λ₯μ 70μ΄ ν μ»·μ λ΄μμ΅λλ€. λΈλΌμ°μ μμ λ°λ‘ μ¬μλ©λλ€.
μ΄λ ν΄λμμλ μκ΄μμ΅λλ€. μλ ν μ€μ ν°λ―Έλμ λΆμ¬λ£μΌλ©΄ Karabiner μ€μΉλΆν° μ€μ λ°°ν¬Β·μμ€ν μ΅μ μ μ©κΉμ§ μλμΌλ‘ λλ©λλ€.
curl -fsSL https://raw.githubusercontent.com/linchaindev/karabiner-win11-kr/main/release/v1/setup-karabiner.sh | bash
μλμ°λ₯Ό μ€λ μ°λ€ λ§₯μΌλ‘ λμ΄μ¨ νκ΅μ΄ μ¬μ©μλ₯Ό μν μ€μ λͺ¨μμ λλ€. νμν€Β·νμν€Β·NumLockΒ·Ctrl λ¨μΆν€λ₯Ό μλμ°μ λμΌν κ°κ°μΌλ‘ μΈ μ μμ΅λλ€.
νΉν λ§₯λΆμ μ«μ ν€ν¨λκ° λ¬λ¦° μΈμ₯ ν€λ³΄λλ₯Ό μ°κ²°ν΄ μ°λ λΆμκ² μ μ©ν©λλ€ β NumLock ν κΈκ³Ό ν€ν¨λ 컀μ μ΄λ(Home/End/PgUp/PgDn/νμ΄ν/Del)μ΄ μλμ°μ²λΌ μ΄μλ λ리λ ν€ν¨λλ₯Ό μ λλ‘ μ°κ² λ©λλ€. νμ μ νλ macOS λ€μ΄ν°λΈ μ λ ₯ μμ€ κ²½λ‘λ₯Ό νκΈ° λλ¬Έμ IMEκ° κΌ¬μ΄μ§ μκ³ λ¬Έμ₯ λμ€μλ λ§€λλ½κ² λμ΄κ°λλ€.
| ν€ | λμ | λΉκ³ |
|---|---|---|
| μ°μΈ‘ Cmd (μ€νμ΄μ€λ° μ€λ₯Έμͺ½) | νμ μ ν | μλμ° νμν€ μμΉ. λΉ λ₯΄κ² μ°ννκ±°λ λ€μ ν€μ κ²Ήμ³ λλ¬λ μ κΌ¬μ |
| μ°μΈ‘ Opt(Alt) | νμ λ³ν | νκΈ μ λ ₯ μ§ν λλ₯΄λ©΄ νμ ν보 λͺ©λ‘ (μλμ° νμν€μ λμΌ) |
| NumLock(Clear) | ν€ν¨λ λͺ¨λ ν κΈ | μ«μ μ λ ₯ β 컀μ μ΄λ(Home/End/PgUp/PgDn/νμ΄ν/Del) μ ν. ν κΈ μ μλ¦Ό νμ |
| Ctrl+C / X / V | λ³΅μ¬ / μλΌλ΄κΈ° / λΆμ¬λ£κΈ° | Finderμμλ Ctrl+X β Ctrl+Vλ‘ νμΌ μ΄λκΉμ§ μ§μ |
| Ctrl+A/Z/Y/S/F/N/T/W/P/R/L/O | μ 체μ ν/μ€νμ·¨μ/μ¬μ€ν/μ μ₯/μ°ΎκΈ°/μμ°½/μν/νλ«κΈ°/μΈμ/μλ‘κ³ μΉ¨/μ£Όμμ°½/μ΄κΈ° | Shift μ‘°ν© μ μ§ (Ctrl+Shift+T λ«μ ν 볡ꡬ λ±) |
| Cmd+Shift+V | ν΄λ¦½λ³΄λ νμ€ν 리 | Win+V λμ. macOS 26 Tahoeμ Spotlight ν΄λ¦½λ³΄λ μ¬μ© |
| F1~F12 | μ§§κ² = νμ ν€, κΈΈκ²(200ms) = λ°κΈ°/λ³Όλ₯¨/λ―Έλμ΄ | νμμ μλμ°μ²λΌ Fν€, κΎΉ λλ₯΄λ©΄ macOS νΉμν€. λ°κΈ°Β·λ³Όλ₯¨μ λλ₯΄κ³ μλ λμ μ°μ λ°λ³΅. F6μ 건λλ¦¬μ§ μμ |
| Cmd+B / Ctrl+B (Finder) | μ ν μ€νΈ λ¬Έμ λ§λ€κΈ° | μλμ° νμκΈ°μ "μλ‘ λ§λ€κΈ° β ν
μ€νΈ λ¬Έμ". νμ¬ ν΄λμ μ ν
μ€νΈ λ¬Έμ.txtλ₯Ό λ§λ€κ³ λ°λ‘ μ ν |
- ν°λ―ΈλΒ·IDEλ 건λλ¦¬μ§ μμ β Terminal, iTerm2, kitty, WezTerm, Warp, Ghostty, Alacritty, Hyper, VS Code, Cursor, JetBrains κ³μ΄μμλ Ctrl+C(SIGINT) λ± μλ κΈ°λ₯μ΄ κ·Έλλ‘ μ μ§λ©λλ€.
- νμ μ νμ λ€μ΄ν°λΈ κ²½λ‘ μ¬μ© β μ λ ₯μμ€λ₯Ό APIλ‘ μ§μ λ°κΎΈμ§ μκ³ μ§κ΅¬λ³Έ(fn) ν€ μ΄λ²€νΈλ₯Ό λ°μμμΌ macOS λ€μ΄ν°λΈ μ ν κ²½λ‘λ₯Ό νλλ€. λΈλΌμ°μ μ λ ₯μ°½μμ IME μνκ° κΌ¬μ΄λ κ³ μ§μ μΈ λ¬Έμ κ° μμ΅λλ€.
- νμν€λ μ¦μ λ°λ β ν€λ₯Ό λλ₯΄λ μκ° μ νμ΄ μλ£λλ―λ‘, νμν€λ₯Ό λΌκΈ° μ μ λ€μ κΈμλ₯Ό μΉλ λΉ λ₯Έ νμ΄ν μ΅κ΄μμλ Cmd+μ‘°ν©ν€κ° μ€λ°λνμ§ μμ΅λλ€.
- Cmd λ¨μΆν€λ κ·Έλλ‘ β Cmd+C/V, Cmd+Tab λ± macOS κΈ°λ³Έ λ¨μΆν€λ μ λΆ μ΄μ μμ΅λλ€. Ctrlκ³Ό Cmd μ΄λ μͺ½μ λλ¬λ λ©λλ€.
- macOS (Apple Silicon / Intel)
- Karabiner-Elements β μ€μΉ μ€ν¬λ¦½νΈκ° μλμΌλ‘ μ€μΉν΄ μ€λλ€
- ν΄λ¦½λ³΄λ νμ€ν 리(Cmd+Shift+V)λ macOS 26 Tahoe μ΄μ νμ (λ€λ₯Έ κΈ°λ₯μ λ²μ 무κ΄)
curl -fsSL https://raw.githubusercontent.com/linchaindev/karabiner-win11-kr/main/release/v1/setup-karabiner.sh | bashμ€ν¬λ¦½νΈκ° νλ μΌ:
- Homebrew νμΈ (μμΌλ©΄ μ€μΉ)
- Karabiner-Elements μ€μΉ (μ΄λ―Έ μμΌλ©΄ 건λλ)
- κΈ°μ‘΄ μΉ΄λΌλΉλ μ€μ λ°±μ ν λ³Έ μ€μ λ°°ν¬
- μμ€ν μ€μ μλ μ μ© β μ§κ΅¬λ³Έ ν€ = μ λ ₯ μμ€ λ³κ²½, Caps Lock νμ μ ν λκΈ°
- Karabiner μ€ν (κΆν μΉμΈ νμ μ λ)
git clone https://github.com/linchaindev/karabiner-win11-kr.git
mkdir -p ~/.config/karabiner/assets
cp karabiner-win11-kr/code/karabiner.json ~/.config/karabiner/
cp -R karabiner-win11-kr/code/complex_modifications ~/.config/karabiner/assets/
defaults write com.apple.HIToolbox AppleFnUsageType -int 1
defaults write com.apple.HIToolbox TISRomanSwitchState -int 0κΈ°μ‘΄ μΉ΄λΌλΉλ μ€μ μ΄ μλ€λ©΄
~/.config/karabinerλ₯Ό λ¨Όμ λ°±μ νμΈμ.karabiner.jsonμ΄ ν΅μ§Έλ‘ κ΅μ²΄λ©λλ€. κΈ°μ‘΄ λ£°μ μ μ§νκ³ μΆλ€λ©΄code/complex_modifications/μ νμΌλ§~/.config/karabiner/assets/complex_modifications/μ λ£κ³ Karabiner UIμ Complex Modifications β Add ruleμμ μνλ λ£°λ§ μ ννμΈμ.
- λλΌμ΄λ²(μμ€ν νμ₯) νμ© νμ μΉμΈ
- μμ€ν
μ€μ β κ°μΈμ 보 λ³΄νΈ λ° λ³΄μ β μ
λ ₯ λͺ¨λν°λ§μμ
karabiner_grabberνμ© - (μ ν) μμ€ν μ€μ β Spotlight β Clipboard μΌκΈ° β Cmd+Shift+Vμ©
- μμ€ν μ€μ β ν€λ³΄λ β μ λ ₯ μμ€μ νκΈ(λλ²μ)κ³Ό ABC λ κ°λ§ μλμ§ νμΈ β μ 3μ μ λ ₯μμ€κ° μμΌλ©΄ νμ ν κΈ μνμ΄ μ΄κΈλ μ μμ΅λλ€
βββ code/ # μΉ΄λΌλΉλ μ€μ μλ³Έ (λ£° μ€λͺ
νκΈ)
β βββ karabiner.json # μ 체 λ£°μ΄ νμ±νλ μμ± μ€μ
β βββ complex_modifications/ # λ£°λ³ κ°λ³ νμΌ (μ ν μ€μΉμ©)
β β βββ hangul-toggle.json # νμν€Β·νμν€
β β βββ windows-style-copy.json # Ctrl λ¨μΆν€ + Finder νμΌ μ΄λ
β β βββ numpad-numlock-toggle.json # NumLock ν κΈ
β β βββ spotlight-clipboard.json # ν΄λ¦½λ³΄λ νμ€ν 리
β β βββ fn-longpress.json # F1~F12 μ/λ‘± μ΄μ€ λμ
β β βββ finder-new-txt.json # Finder μ ν
μ€νΈ λ¬Έμ μμ±
β βββ en/ # λ£° μ€λͺ
λ§ μλ¬ΈμΈ λμΌ μ€μ (λ§€ν λμΌ, λΉνκ΅μ΄ μ¬μ©μμ©)
β βββ karabiner.json
β βββ complex_modifications/
βββ demo/ # λΈλΌμ°μ μμ λ°λ‘ 보λ κΈ°λ₯ λ°λͺ¨ (μ€μΉ λΆνμ)
β βββ index.html # μλ¬Έ μλ§
β βββ ko.html # νκΈ μλ§
βββ release/
βββ v1/
βββ setup-karabiner.sh # νκΈ μ€λͺ
μ€μΉ μ€ν¬λ¦½νΈ (μ€μ λ΄μ₯)
βββ setup-karabiner-en.sh # μλ¬Έ μ€λͺ
μ€μΉ μ€ν¬λ¦½νΈ (μ€μ λ΄μ₯)
λͺ¨λ κΈ°λ₯μ νλμ© κ»λ€ μΌ€ μ μμ΅λλ€. Karabiner-Elements β Complex Modificationsμμ μνλ λ£°λ§ μ€μμΉλ‘ μΌκ³ , μ μ°λ λ£°μ λλ©΄ λ©λλ€. μ± μ¬μμλ νμ μμ΄ μ¦μ μ μ©λ©λλ€.
- μΌλΆ κΈ°λ₯λ§ μ°κ³ μΆλ€λ©΄:
code/complex_modifications/μ νμΌμ κ°λ³ μ€μΉνμΈμ (μ λ°©λ² 2 μ°Έκ³ ). - ν°λ―ΈλΒ·IDE μμΈ λͺ©λ‘ μμ :
windows-style-copy.jsonμbundle_identifiersλ°°μ΄μ μ±μ λ²λ€ IDλ₯Ό μΆκ°/μ κ±°νλ©΄ λ©λλ€. λ²λ€ IDλosascript -e 'id of app "μ±μ΄λ¦"'μΌλ‘ νμΈν μ μμ΅λλ€. - Ctrl λ§€ν ν€ μΆκ°:
windows-style-copy.jsonμ manipulator νλλ₯Ό 볡μ¬ν΄μkey_codeλ§ λ°κΎΈλ©΄ λ©λλ€.
| μ¦μ | ν΄κ²° |
|---|---|
| νμ μ νμ΄ μ λ¨ | μμ€ν μ€μ β ν€λ³΄λ β "μ§κ΅¬λ³Έ ν€λ₯Ό λλ₯΄λ©΄"μ΄ μ λ ₯ μμ€ λ³κ²½μΈμ§ νμΈ |
| Caps LockμΌλ‘λ νμμ΄ μ νλ¨ | μμ€ν μ€μ β ν€λ³΄λ β μ λ ₯ μμ€ νΈμ§ β "Caps Lock ν€λ‘ ABC μ λ ₯ μμ€ μ ν" λκΈ° (μ€ν¬λ¦½νΈκ° μλ μ μ©νμ§λ§ μ¬λ‘κ·ΈμΈ νμν μ μμ) |
| NumLock ν κΈμ΄ μ λ¨Ήμ | ν€λ³΄λλ§λ€ NumLockμ΄ keypad_num_lock λλ keypad_clearλ‘ λ€μ΄μ΅λλ€. λ λ€ λ§€νλΌ μμ§λ§, κ·Έλλ μ λλ©΄ Karabiner-EventViewerλ‘ μ€μ key_codeλ₯Ό νμΈνμΈμ |
| Cmd+Shift+Vκ° μ λΈ | macOS 26 Tahoe μ΄μ + μμ€ν μ€μ β Spotlight β Clipboard νμ±ν νμ. Spotlight λ¨μΆν€λ₯Ό Cmd+Spaceμμ λ°κΏ¨λ€λ©΄ λ£° μμ νμ |
| Fν€λ₯Ό μ§§κ² λλ¬λ λ°κΈ°Β·λ³Όλ₯¨μ΄ λμ | μμ€ν μ€μ β ν€λ³΄λ β "F1, F2 λ±μ ν€λ₯Ό νμ€ κΈ°λ₯ ν€λ‘ μ¬μ©" μΌκΈ°. νλμ¨μ΄ fn ν€λ κ·Έλλ‘ λμν©λλ€ |
| κΈΈκ² λλ₯΄λ μκ°μ΄ κΈΈκ±°λ μ§§μ | fn-longpress.jsonμ basic.to_if_alone_timeout_millisecondsμ basic.to_if_held_down_threshold_millisecondsλ₯Ό ν¨κ» μ‘°μ (κΈ°λ³Έ 200) |
| λ£°μ΄ μμ μ λ¨Ήμ | Karabiner μ λ ₯ λͺ¨λν°λ§ κΆν, λλΌμ΄λ² μΉμΈ μ¬λΆ νμΈ |
MIT
βΆοΈ Watch the demo β every feature in one continuous 70-second take, with English subtitles. Runs right in your browser.
From any folder. Paste this single line into the terminal and it installs Karabiner, deploys the config, and applies the system settings β all the way through.
curl -fsSL https://raw.githubusercontent.com/linchaindev/karabiner-win11-kr/main/release/v1/setup-karabiner-en.sh | bashThis installer ships the English-labeled config (
code/en/) β the rules read in English inside the Karabiner UI. The key mappings are identical to the Korean version; only the labels differ. (Korean speakers: use the Korean installer.)
A set of Karabiner-Elements configurations for Korean users who moved from Windows to macOS. It lets you use the ν/μ (Hangul/English) key, Hanja key, NumLock, and Ctrl shortcuts with the exact same muscle memory you had on Windows 11.
It's especially handy if you plug an external keyboard with a numeric keypad into a MacBook β the NumLock toggle and keypad cursor navigation (Home/End/PgUp/PgDn/arrows/Del) come back to life just like on Windows, so that keypad stops being dead weight. And because Korean/English switching rides the native macOS input-source path, the IME never gets stuck β the switch is seamless, even mid-sentence.
| Key | Action | Notes |
|---|---|---|
| Right Cmd (right of the spacebar) | Toggle Korean/English | Same spot as the Windows ν/μ key. Won't jam even when mashed quickly or overlapped with the next key |
| Right Opt (Alt) | Hanja conversion | Press right after typing Hangul to pull up the Hanja candidate list (same as the Windows Hanja key) |
| NumLock (Clear) | Toggle keypad mode | Switches between number entry β cursor movement (Home/End/PgUp/PgDn/arrows/Del). Shows a notification on toggle |
| Ctrl+C / X / V | Copy / Cut / Paste | In Finder, Ctrl+X β Ctrl+V even performs a file move |
| Ctrl+A/Z/Y/S/F/N/T/W/P/R/L/O | Select all / Undo / Redo / Save / Find / New window / New tab / Close tab / Print / Reload / Address bar / Open | Shift combos preserved (Ctrl+Shift+T to reopen a closed tab, etc.) |
| Cmd+Shift+V | Clipboard history | The Win+V equivalent. Uses the Spotlight clipboard on macOS 26 Tahoe |
| F1~F12 | Short press = function key, long press (200ms) = brightness/volume/media | Windows-style F-keys by default, macOS special keys when held. Brightness and volume keep repeating while held. F6 is left untouched |
| Cmd+B / Ctrl+B (Finder) | Create a new text document | The Windows Explorer "New β Text Document". Creates New Text Document.txt in the current folder and selects it |
- Terminals and IDEs are left untouched β In Terminal, iTerm2, kitty, WezTerm, Warp, Ghostty, Alacritty, Hyper, VS Code, Cursor, and JetBrains apps, the original behavior of Ctrl+C (SIGINT) and friends is preserved.
- Korean/English switching uses the native path β Instead of changing the input source directly via API, it fires a globe (fn) key event so it rides the native macOS switching path. This avoids the classic problem of the IME state getting confused in browser input fields.
- The ν/μ key fires instantly β The switch completes the moment you press the key, so even with fast-typing habits where you hit the next character before releasing the ν/μ key, Cmd combos won't misfire.
- Cmd shortcuts stay intact β All macOS default shortcuts like Cmd+C/V and Cmd+Tab keep working. You can press either Ctrl or Cmd.
- macOS (Apple Silicon / Intel)
- Karabiner-Elements β the install script sets it up for you automatically
- Clipboard history (Cmd+Shift+V) requires macOS 26 Tahoe or later (all other features are version-independent)
curl -fsSL https://raw.githubusercontent.com/linchaindev/karabiner-win11-kr/main/release/v1/setup-karabiner-en.sh | bashThis deploys code/en/ β the rules are labeled in English inside Karabiner, but the mappings match the Korean config exactly.
What the script does:
- Checks for Homebrew (installs it if missing)
- Installs Karabiner-Elements (skips if already present)
- Backs up your existing Karabiner config, then deploys this one
- Applies system settings automatically β globe key = change input source, Caps Lock Korean/English toggle off
- Launches Karabiner (which prompts the permission-approval popup)
git clone https://github.com/linchaindev/karabiner-win11-kr.git
mkdir -p ~/.config/karabiner/assets
cp karabiner-win11-kr/code/en/karabiner.json ~/.config/karabiner/
cp -R karabiner-win11-kr/code/en/complex_modifications ~/.config/karabiner/assets/
defaults write com.apple.HIToolbox AppleFnUsageType -int 1
defaults write com.apple.HIToolbox TISRomanSwitchState -int 0Paths use
code/en/for the English-labeled config; swap incode/for the Korean labels. If you already have a Karabiner config, back up~/.config/karabinerfirst βkarabiner.jsongets replaced wholesale. To keep your existing rules, copy only the files incode/en/complex_modifications/into~/.config/karabiner/assets/complex_modifications/, then pick the rules you want from Karabiner UI β Complex Modifications β Add rule.
- Approve the driver (system extension) popup
- System Settings β Privacy & Security β Input Monitoring β allow
karabiner_grabber - (Optional) System Settings β Spotlight β turn on Clipboard β for Cmd+Shift+V
- System Settings β Keyboard β Input Sources: confirm only Korean (2-set) and ABC are present β a third input source can throw off the toggle cycle
βββ code/ # Karabiner config sources
β βββ karabiner.json # complete config, rules labeled in Korean
β βββ complex_modifications/ # per-rule files (Korean labels)
β β βββ hangul-toggle.json # ν/μ key + Hanja key
β β βββ windows-style-copy.json # Ctrl shortcuts + Finder file move
β β βββ numpad-numlock-toggle.json # NumLock toggle
β β βββ spotlight-clipboard.json # clipboard history
β β βββ fn-longpress.json # F1~F12 short/long dual action
β β βββ finder-new-txt.json # Finder new text document
β βββ en/ # same config, rules labeled in English (identical mappings)
β βββ karabiner.json
β βββ complex_modifications/
βββ demo/ # browser-playable feature demo (no install needed)
β βββ index.html # English subtitles
β βββ ko.html # Korean subtitles
βββ release/
βββ v1/
βββ setup-karabiner.sh # Korean-labeled installer (config embedded)
βββ setup-karabiner-en.sh # English-labeled installer (config embedded)
Every feature can be toggled on and off individually. In Karabiner-Elements β Complex Modifications, flip the switch on just the rules you want and turn off the ones you don't β it applies instantly, no app restart needed.
- Want only some features? Install the files in
code/en/complex_modifications/individually (see Option 2 above). - Editing the terminal/IDE exception list: add or remove an app's bundle ID in the
bundle_identifiersarray ofwindows-style-copy.json. Find a bundle ID withosascript -e 'id of app "AppName"'. - Adding a Ctrl-mapped key: copy one of the manipulators in
windows-style-copy.jsonand just change thekey_code.
| Symptom | Fix |
|---|---|
| Korean/English won't switch | System Settings β Keyboard β check that "Press π key to" is set to Change Input Source |
| Caps Lock also switches Korean/English | System Settings β Keyboard β Edit input sources β turn off "Use Caps Lock to switch to and from ABC" (the script applies this automatically but a re-login may be needed) |
| NumLock toggle doesn't respond | Depending on the keyboard, NumLock arrives as keypad_num_lock or keypad_clear. Both are mapped, but if it still fails, check the actual key_code with Karabiner-EventViewer |
| Cmd+Shift+V doesn't appear | Requires macOS 26 Tahoe or later + System Settings β Spotlight β Clipboard enabled. If you changed the Spotlight shortcut away from Cmd+Space, the rule needs editing |
| A short F-key press still triggers brightness/volume | System Settings β Keyboard β turn on "Use F1, F2, etc. keys as standard function keys". The hardware fn key still works as before |
| Long press feels too slow/fast | Change both basic.to_if_alone_timeout_milliseconds and basic.to_if_held_down_threshold_milliseconds in fn-longpress.json (default 200) |
| Rules don't work at all | Check Karabiner's Input Monitoring permission and whether the driver was approved |
MIT



