The most annoying thing about typing Korean on a Mac is the delay when you switch between Korean and English with Caps Lock.
The delay is deliberate: macOS waits to tell a tap from a hold. If you remap Caps Lock to F18 and make F18 the input source shortcut, the switch becomes instant. I bundled that setup, plus an on-screen popup, into a free app called CapsHan on GitHub. (macOS 26 Tahoe, October 2026)
At a glance
- Cause of the delay: macOS waits to see whether you tapped Caps Lock (switch input source) or held it (Caps Lock on)
- The fix: remap Caps Lock to F18 and set “Select the previous input source” to F18
- CapsHan: applies that setup for you and shows a “가 한글” (Korean) / “A 영어” (English) popup at the bottom of the screen on every switch
- Download: GitHub Releases (free, MIT license, under 1 MB)
- Caveats: no Caps Lock for capitals (use Shift), and the app isn’t signed, so you need “Open Anyway” the first time. The app’s interface is in Korean.

Why switching between Korean and English lags on a Mac
I switch between Korean and English with Caps Lock, and every press was half a beat late. When typing fast, the switch sometimes came late or didn’t happen at all.
It turns out this isn’t a bug but intended behavior. When Caps Lock is set to change the input source, a short press switches the input source and a long press turns on Caps Lock.
So macOS has to wait to decide whether the press was short or long, and that wait is the delay you feel. System Settings has no option to shorten it, so I decided to turn Caps Lock into a different key.
Fixing it without an app: remap Caps Lock to F18
At first I didn’t plan to build an app; I just wanted to fix it with settings.
The idea is simple. Remap Caps Lock to F18, a key you almost never use, and make F18 the “Select the previous input source” shortcut. The input source then switches instantly, with no waiting.
1. Remap Caps Lock to F18 with hidutil
macOS includes a command called hidutil. Run this line in Terminal and it takes effect immediately:
hidutil property --set '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000039,"HIDKeyboardModifierMappingDst":0x70000006D}]}'
0x700000039 is Caps Lock and 0x70000006D is F18. The key code table is in Apple Technical Note TN2450.
The mapping resets when you restart, so I also added a LaunchAgent to run it at every login. If you are happy to install a tool, you can do the same with Karabiner-Elements (free) by mapping caps_lock to f18.
2. Change the shortcut in System Settings
- In System Settings > Keyboard > Text Input, click “Edit…” next to Input Sources and turn off the option to switch to and from ABC with the Caps Lock key.
- In System Settings > Keyboard > Keyboard Shortcuts > Input Sources, click “Select the previous input source” and press Caps Lock. It is recorded as F18 instead of the default ⌃Space.
What went wrong: the new shortcut didn’t take effect
After all that, I pressed Caps Lock and… nothing switched. Registering the shortcut again didn’t help.
I opened a test window that logged key presses: Caps Lock was arriving as F18 just fine, so the problem was the shortcut.
The shortcut had been saved to the settings file, but it only took effect after logging in again. In the end I applied it immediately with a private macOS API (CGSSetSymbolicHotKeyValue).
(There was another catch: a shortcut value written with the defaults command in Terminal was saved as a string instead of a number.)
So it works without an app, but there is quite a bit to look after every time you restart or log in again.
CapsHan: the fix plus a popup, in one app
Once Caps Lock switched instantly, I wanted one more thing. Logitech’s Logi Options+ shows an on/off popup every time you press Caps Lock, and I wanted something like that: the current input language shown briefly at the bottom center of the screen whenever I switch.
Since I was building it anyway, I folded the Caps Lock setup into it so other people could install it too, and made a menu bar app called CapsHan.
CapsHan features
- Removes the Caps Lock input switch delay (reapplies the F18 remap and shortcut every time the app starts)
- Shows a “가 한글” / “A 영어” popup at the bottom center when you switch, even if you switch some other way such as the menu bar, on the screen where your pointer is
- Liquid Glass (macOS 26) and Classic designs, with dark mode
- Adjustable popup size, display time, fade in/out and glass transparency
- Korean/English indicator in the menu bar, with an option to hide the standard macOS input menu
- Launches at login
- Universal app for Apple Silicon and Intel, macOS 13 or later

Popup designs: Liquid Glass and Classic
My first Liquid Glass popup didn’t feel glassy enough, so I added options for the glass texture (translucent / clear glass) and the “liquid strength”.
The lower the strength, the frostier the glass, and the bigger the popup, the more you see the refraction at the edges, which makes it feel more like glass.
If you don’t like the glass look, pick the Classic design. On versions older than macOS 26, only Classic is available.


Menu bar icon
The menu bar icon also changes with the current input language. You can choose between 한/영, 한/A and a keyboard icon; I use 한/A.

Settings
Click CapsHan in Launchpad or the Applications folder to open the settings window. You can also open it from the menu bar icon > Settings… The interface is in Korean; here is what each setting does.

| Setting (Korean label) | What it does |
|---|---|
| Show popup (팝업 표시) | Turns the switch popup on or off |
| Display time (표시 시간) | 0.3–3.0 seconds |
| Fade in/out (페이드 인/아웃) | On or off, fade time 0.1–1.0 seconds |
| Popup size (팝업 크기) | 80–160% |
| Theme (테마) | System / Light / Dark |
| Design (디자인) | Liquid Glass / Classic |
| Glass texture (유리 질감) | Translucent / clear glass (Liquid Glass only) |
| Liquid strength (리퀴드 강도) | Lower makes the glass frostier (Liquid Glass only) |
| Menu bar icon (메뉴 막대 아이콘) | 한/영, 한/A or keyboard |
| Hide input menu (기본 입력 메뉴 숨기기) | Hides the standard macOS input menu; it comes back when you quit CapsHan |
| Caps Lock switches input (Caps Lock으로 한/영 전환) | Turn off to give Caps Lock its normal behavior back |
| Launch at login (로그인 시 자동 실행) | Adds or removes the login item |
Even with the standard input menu hidden, you can pick an input source from the CapsHan menu bar icon.
How to install CapsHan
- Download the latest DMG (CapsHan-1.4.0.dmg) from the CapsHan Releases page.
- Open the DMG and drag CapsHan into the Applications folder.
- The first launch shows a warning. Go to System Settings > Privacy & Security and click “Open Anyway”. (Apple Support: Safely open apps on your Mac)
- After the first launch, it starts automatically when you log in.
- The macOS option to switch to and from ABC with Caps Lock is no longer used, so you can turn it off.
Things to know before you use it
- No Caps Lock for capitals. Caps Lock becomes your Korean/English key, so type capitals with Shift. Turn off “Caps Lock switches input” in Settings to get the normal behavior back.
- The build is not signed or notarized. That’s why you see a warning the first time. Avoiding it would mean signing it through the paid Apple Developer Program.
- It uses a private API to apply the shortcut without logging in again. That rules out the App Store, and macOS updates could change how it behaves.
- It doesn’t use the network or collect any data, and it doesn’t need Accessibility or Input Monitoring permissions.
- I have only tested it on macOS 26 Tahoe. It is built for macOS 13 and later, but I haven’t checked other versions yet.
From 11 pm to version 1.4.0 in one night
Around 11:30 pm I started searching “why is Korean/English switching so slow on Mac”, and by about 3 am I had released version 1.4.0.
| Version | Changes |
|---|---|
| 1.0.0 | Instant Caps Lock switching and the bottom popup in one menu bar app |
| 1.1.0 | Settings window (popup on/off, display time, theme, Liquid Glass/Classic) |
| 1.2.0 | Menu bar 한/영 icon, option to hide the input menu, fixed text position in the Classic popup |
| 1.3.0 | Glass texture, liquid strength, popup size / first public release on GitHub |
| 1.4.0 | Popup fade in/out |
A few things stuck with me while building it:
- The Classic popup had a bug where the text slid to the bottom left. It happened because switching to Classic after showing the Liquid Glass popup once shrank the popup’s content area to 0×0.
- Fading only the glass left the glass border visible, so I made the whole popup window fade in and out instead.
- The first README and release notes I got read too much like AI, so I rewrote them in a short, plain style.
How to remove CapsHan
- In Settings, turn off “Caps Lock switches input” and “Hide input menu”.
- Quit CapsHan and delete it from the Applications folder.
If you skipped step 1, reset the shortcut in System Settings > Keyboard > Keyboard Shortcuts > Input Sources. Caps Lock goes back to normal after a restart.
I hope this helps anyone bothered by the Caps Lock switching delay. Please report bugs or feature requests as GitHub issues.
Frequently asked questions
Can I remove the Korean/English switch delay without an app?
Yes. Remap Caps Lock to F18 with hidutil and set “Select the previous input source” to F18. But the hidutil mapping resets on restart, so you need a LaunchAgent or Karabiner-Elements to reapply it, and the new shortcut may only take effect after you log in again.
Can I still use Caps Lock for capitals with CapsHan?
No, Caps Lock becomes the Korean/English key. Type capitals with Shift, or turn off “Caps Lock switches input” in Settings if you really need Caps Lock.
It won’t open and says it is from an unidentified developer.
That’s because the build isn’t signed. Click “Open Anyway” in System Settings > Privacy & Security. You only need to do it once.
Does it work on Intel Macs or macOS 15?
It is a universal app for Apple Silicon and Intel, built for macOS 13 and later. I have only tested it on macOS 26 Tahoe, and the Liquid Glass design needs macOS 26 or later.
This is a translation of my original Korean article: 맥 한영전환 딜레이 해결 – 직접 만든 앱 CapsHan. Last checked: 19 October 2026 (CapsHan 1.4.0, macOS 26.6.2 Tahoe).
Leave a Reply