Per-app keyboard input on macOS

Set a different input source for each app on Mac

If your Mac day mixes coding in English with messaging, writing, or research in another language, one global keyboard layout is not enough. InputSwitcher lets you assign one default input source per app so the right language follows the app you are using.

Why multilingual Mac users search for this

  • You switch from coding to chat and immediately type in the wrong language.
  • You keep hitting the macOS shortcut just to recover from app changes.
  • You want one default input for each app, not one global input for the whole Mac session.
  • You lose focus correcting gibberish in Terminal, search bars, forms, and messages.

Short answer

macOS does not give most users a clean built-in way to keep a different keyboard language for each app automatically.

InputSwitcher fills that gap: set one rule per app, then let the active app decide whether your keyboard should be English, Chinese, Japanese, Korean, or another input source.

What per-app input switching looks like in real life

The main goal is simple: each app opens with the input source that best matches the task, so you stop correcting yourself after every context switch.

Developer setup

ABC / English

VS Code, Cursor, Xcode, Terminal

Commands, code, file paths, and shortcuts stay predictable while you work.

Team communication

Chinese, Japanese, Korean, or another preferred language

Slack, Telegram, WeChat, Messages

Replies are ready in the language you actually use with teammates, clients, or family.

Research and writing

Depends on the task

Safari, Chrome, Notes, Google Docs, Notion

Switch between reading, drafting, and note capture without checking the menu bar every time.

How to set a different keyboard language for each app on Mac

  1. 1

    Download InputSwitcher and move it to Applications.

  2. 2

    Grant Accessibility permission so the app can detect active-app changes and switch input sources.

  3. 3

    Create rules like VS Code → ABC, Terminal → ABC, WeChat → Pinyin, Messages → Japanese, or any setup that matches your workflow.

  4. 4

    Use your Mac normally and let the input source follow the app context automatically.

Why this matters

You remove a tiny but repeated source of friction

Manual input switching feels small until it happens dozens of times a day. The cost is not just one shortcut. It is broken attention, wrong-language typing, corrections, and hesitation every time you move between app contexts.

Per-app input rules make the Mac feel more aligned with how multilingual work actually happens: code here, chat there, notes somewhere else, each with its own language expectation.

Typical first setup

Terminal / VS Code / Cursor / Xcode → ABC or English
Slack / Telegram / WeChat / Messages → your communication language
Browser / Notes / Docs → whatever language best fits the task

Ready to stop switching keyboard input manually?

Download InputSwitcher, assign one input source per app, and let your Mac switch automatically when your context changes.