Skip to content

Latest commit

Β 

History

19 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

karabiner-win11-kr

Windows 11 Korean keyboard habits on macOS, powered by Karabiner-Elements.

ν•œκ΅­μ–΄ Β· English


ν•œκ΅­μ–΄

Windows 11 ν•œκ΅­μ–΄ ν‚€λ³΄λ“œ μŠ΅κ΄€μ„ macOS에 κ·ΈλŒ€λ‘œ μ΄μ‹ν•˜λŠ” Karabiner-Elements μ„€μ •

karabiner-win11-kr 데λͺ¨

β–ΆοΈŽ 데λͺ¨ μ˜μƒ 보기 β€” λͺ¨λ“  κΈ°λŠ₯을 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 이상 ν•„μš” (λ‹€λ₯Έ κΈ°λŠ₯은 버전 무관)

μ„€μΉ˜

방법 1: μžλ™ μ„€μΉ˜ 슀크립트 (ꢌμž₯)

curl -fsSL https://raw.githubusercontent.com/linchaindev/karabiner-win11-kr/main/release/v1/setup-karabiner.sh | bash

μŠ€ν¬λ¦½νŠΈκ°€ ν•˜λŠ” 일:

  1. Homebrew 확인 (μ—†μœΌλ©΄ μ„€μΉ˜)
  2. Karabiner-Elements μ„€μΉ˜ (이미 있으면 κ±΄λ„ˆλœ€)
  3. κΈ°μ‘΄ μΉ΄λΌλΉ„λ„ˆ μ„€μ • λ°±μ—… ν›„ λ³Έ μ„€μ • 배포
  4. μ‹œμŠ€ν…œ μ„€μ • μžλ™ 적용 β€” 지ꡬ본 ν‚€ = μž…λ ₯ μ†ŒμŠ€ λ³€κ²½, Caps Lock ν•œμ˜ μ „ν™˜ 끄기
  5. Karabiner μ‹€ν–‰ (κΆŒν•œ 승인 νŒμ—… μœ λ„)

방법 2: μˆ˜λ™ μ„€μΉ˜

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μ—μ„œ μ›ν•˜λŠ” 룰만 μ„ νƒν•˜μ„Έμš”.

μ„€μΉ˜ ν›„ μˆ˜λ™ 확인 (macOS λ³΄μ•ˆμƒ μžλ™ν™” λΆˆκ°€)

  1. λ“œλΌμ΄λ²„(μ‹œμŠ€ν…œ ν™•μž₯) ν—ˆμš© νŒμ—… 승인
  2. μ‹œμŠ€ν…œ μ„€μ • β†’ κ°œμΈμ •λ³΄ 보호 및 λ³΄μ•ˆ β†’ μž…λ ₯ λͺ¨λ‹ˆν„°λ§μ—μ„œ karabiner_grabber ν—ˆμš©
  3. (선택) μ‹œμŠ€ν…œ μ„€μ • β†’ Spotlight β†’ Clipboard 켜기 β€” Cmd+Shift+V용
  4. μ‹œμŠ€ν…œ μ„€μ • β†’ ν‚€λ³΄λ“œ β†’ μž…λ ₯ μ†ŒμŠ€μ— ν•œκΈ€(λ‘λ²Œμ‹)κ³Ό 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μ—μ„œ μ›ν•˜λŠ” 룰만 μŠ€μœ„μΉ˜λ‘œ 켜고, μ•ˆ μ“°λŠ” 룰은 끄면 λ©λ‹ˆλ‹€. μ•± μž¬μ‹œμž‘λ„ ν•„μš” 없이 μ¦‰μ‹œ μ μš©λ©λ‹ˆλ‹€.

κΈ°λŠ₯별 on/off ν† κΈ€

  • 일뢀 κΈ°λŠ₯만 μ“°κ³  μ‹Άλ‹€λ©΄: 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


English

karabiner-win11-kr demo

β–ΆοΈŽ Watch the demo β€” every feature in one continuous 70-second take, with English subtitles. Runs right in your browser.

⚑ One line in the terminal β€” done

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 | bash

This 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.

Features

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

Design principles

  • 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.

Requirements

  • 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)

Installation

Option 1: Automatic install script (recommended)

curl -fsSL https://raw.githubusercontent.com/linchaindev/karabiner-win11-kr/main/release/v1/setup-karabiner-en.sh | bash

This deploys code/en/ β€” the rules are labeled in English inside Karabiner, but the mappings match the Korean config exactly.

What the script does:

  1. Checks for Homebrew (installs it if missing)
  2. Installs Karabiner-Elements (skips if already present)
  3. Backs up your existing Karabiner config, then deploys this one
  4. Applies system settings automatically β€” globe key = change input source, Caps Lock Korean/English toggle off
  5. Launches Karabiner (which prompts the permission-approval popup)

Option 2: Manual install

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 0

Paths use code/en/ for the English-labeled config; swap in code/ for the Korean labels. If you already have a Karabiner config, back up ~/.config/karabiner first β€” karabiner.json gets replaced wholesale. To keep your existing rules, copy only the files in code/en/complex_modifications/ into ~/.config/karabiner/assets/complex_modifications/, then pick the rules you want from Karabiner UI β†’ Complex Modifications β†’ Add rule.

Manual steps after install (macOS security blocks automating these)

  1. Approve the driver (system extension) popup
  2. System Settings β†’ Privacy & Security β†’ Input Monitoring β†’ allow karabiner_grabber
  3. (Optional) System Settings β†’ Spotlight β†’ turn on Clipboard β€” for Cmd+Shift+V
  4. System Settings β†’ Keyboard β†’ Input Sources: confirm only Korean (2-set) and ABC are present β€” a third input source can throw off the toggle cycle

Folder structure

β”œβ”€β”€ 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)

Customization

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.

Per-feature on/off toggles

  • 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_identifiers array of windows-style-copy.json. Find a bundle ID with osascript -e 'id of app "AppName"'.
  • Adding a Ctrl-mapped key: copy one of the manipulators in windows-style-copy.json and just change the key_code.

Troubleshooting

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

License

MIT

About

Windows 11 Korean keyboard habits on macOS

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages