1

Is there a way to set up keyboard layouts preferences to have a separate layout for each window?

Use case described step by step:

  • I use two keyboard layouts: English and non-English one.
  • I often open Terminal, where I use English layout.
  • And I often chat in another app using my native language.
  • I am tired of switching global keyboard layout back and forth.
  • I would like macOS to remember, which layout was last-used in each window.

Especially interesting, if it is possible to do with native tools or settings in Monterey rather than 3rd party app. Just like it is possible to do in Linux with a single click in Input methods settings.

PS: there is the same question here, but the answer is outdated. There is no such setting anymore. At least in Monterey.

2
  • Regarding the outdated answer, Apple just moved this stuff to system preferences > keyboard > input sources a long time ago. There should still be a box "automatically switch to a document's input source." But I don't think it is what you need in your case, is it? Nov 14, 2021 at 12:45
  • "automatically switch to a document's source" Indeed, this is not what I'm looking for. Nov 14, 2021 at 12:52

1 Answer 1

0

I have finally found a solution! There is a tool called Punto Switcher. It is available for macOS and works almost perfectly for Russian-English case.

One needs to install it and grant it permission to operate in Preferences > Security & Privacy > Accessibility

Then - turn on a per-application keyboard layout. The bad thing is it is not per-window! Good thing, at least it is per application.

In addition, there is an auto-switch for cases when you forget to switch your layout. And there is a way set exceptions: those applications where auto-switch will not work (you don't want your terminal to auto-switch from English to Russian XD)

PS as recommended HERE, I've tried Karabiner, but had no luck. The sought functionality seems to be missing. I've even started a thread at KE GitHub

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .