Documentation Index
Fetch the complete documentation index at: https://mintlify.com/khaphanspace/gonhanh.org/llms.txt
Use this file to discover all available pages before exploring further.
Per-App Configuration
Gõ Nhanh allows you to customize delay and injection method settings for individual applications. This is useful when an app has slow UI responsiveness or non-standard text input behavior.This feature is separate from Per-App Mode, which only remembers the Vietnamese input on/off state. Per-app profiles control how Gõ Nhanh injects text.
Accessing Per-App Profiles
- Open Settings → Nâng cao (Advanced)
- If you don’t see the Advanced tab, enable it in Settings → Hiển thị cài đặt nâng cao
- Find the section Tuỳ chỉnh theo ứng dụng
- Click + to add an application
When You Need Per-App Profiles
You may need custom settings if you experience:Common Use Case: Claude Code in IDEs
Claude Code, Cursor, Windsurf, and similar AI-powered editors have slower text field responsiveness, causing character loss.Quick Fix for Claude Code
Why does this happen?
Why does this happen?
AI-powered editors like Claude Code run additional processing on every keystroke (syntax analysis, AI suggestions, etc.), which delays the text field’s response time.When Gõ Nhanh sends backspace and replacement characters too quickly, the editor hasn’t finished processing the previous keystroke, resulting in character loss.Increasing the delay gives the editor time to process each keystroke before the next one arrives.
Delay Settings
Delay controls the microsecond (µs) wait times between keystrokes during Vietnamese character transformation.Delay Presets
| Preset | Color | Backspace µs | Wait µs | Text µs | Use Case |
|---|---|---|---|---|---|
| Không | Blue | 200 | 800 | 500 | Fast native apps (Safari, Notes) |
| Thấp | Green | 1,000 | 3,000 | 1,500 | Most modern apps |
| Vừa | Orange | 3,000 | 8,000 | 3,000 | Electron apps, slow browsers |
| Cao | Red | 8,000 | 25,000 | 8,000 | Very slow apps |
| Rất cao | Purple | 12,000 | 25,000 | 12,000 | Claude Code, Cursor, Windsurf |
The system automatically detects the optimal delay for most apps. You only need to adjust this if you experience character loss.
How Delay Works
When you type Vietnamese characters, Gõ Nhanh:- Backspace delay - Waits before sending backspace to delete the raw character
- Wait delay - Waits before sending the replacement Vietnamese character
- Text delay - Waits before sending additional characters
a then s to produce á
Injection Methods
Kiểu Inject (Injection Method) controls how Gõ Nhanh sends Vietnamese characters to the application.Available Methods
- Tự động (Auto)
- Fast
- Slow
- Char-by-char
- Selection
- Empty char
Let Gõ Nhanh automatically detect the best injection method for the app.How it works:
- Gõ Nhanh maintains a database of known apps and their optimal methods
- First-time apps use a safe default
How does Gõ Nhanh detect the best method?
How does Gõ Nhanh detect the best method?
Gõ Nhanh uses bundle identifiers to match apps against a built-in database:When you add an app to per-app profiles, Gõ Nhanh pre-fills the optimal settings if the app is in the database.
Profile Settings
Each per-app profile has three configurable options:Bật Gõ Nhanh (Vietnamese Input State)
Force Vietnamese input on/off for this app, overriding the global setting.- Tự động - Use global Vietnamese input state (respects per-app mode)
- Bật - Always enable Vietnamese when switching to this app
- Tắt - Always disable Vietnamese when switching to this app
This is useful for apps where you never want Vietnamese (like Terminal) or always want Vietnamese (like Slack).
Delay
See Delay Settings above.Kiểu Inject (Injection Method)
See Injection Methods above.Managing Profiles
Adding an App
- Click + in the Tuỳ chỉnh theo ứng dụng section
- Select the application from the file picker
- Gõ Nhanh auto-fills optimal settings if the app is recognized
- Adjust settings if needed
Editing a Profile
Profiles are listed by app name and bundle ID. Each profile shows:- App icon and name
- Badge showing detected default method (e.g., “fast”, “slow”)
- Delay slider
- Bật Gõ Nhanh dropdown
- Kiểu Inject dropdown
Resetting a Profile
Click the ↻ (reset) icon to restore default settings for the app.Removing a Profile
Click the × (remove) icon to delete the profile.Data Model
Per-app profiles are stored inUserDefaults as JSON:
Troubleshooting
Still experiencing character loss?
- Increase delay one level at a time - Start with “Vừa”, then “Cao”, then “Rất cao”
- Try a different injection method - Switch to “Char-by-char” or “Selection”
- Check for app updates - Some apps improve text field performance in updates
- Disable app extensions - Browser extensions can interfere with text input
Typing feels slow?
- Decrease delay - Try “Thấp” or “Không”
- Use “Fast” injection method - If the app supports it
Diacritics appear on wrong characters?
- Try “Selection” method - This forces replacement of the entire syllable
- Try “Char-by-char” method - This sends one character at a time
Profile not applying?
- Check bundle ID - Make sure the bundle ID matches the running app
- Restart the app - Profile changes apply on next app switch
- Check Advanced Mode - Profiles only work when Advanced Mode is enabled
Code Reference
Per-app profile implementation is in:- Model:
~/workspace/source/platforms/macos/PerAppConfigModels.swift:5-119 - UI:
~/workspace/source/platforms/macos/AdvancedSettingsView.swift:63-249 - State Management:
~/workspace/source/platforms/macos/MainSettingsView.swift:189-196
Related Documentation
- Settings Guide - All configuration options
- Tone Placement - Vietnamese orthography rules