RuSwitcher

RuSwitcher is free and has been downloaded 7,038 times. If it helps you, say thanks:

Help

Everything essential about RuSwitcher on one page. Can't find an answer? Ask in the support chat or use the form on the home page.

Installation

From this site. The button on the home page gives you the latest version. Open the DMG and drag RuSwitcher to Applications.

With Homebrew. RuSwitcher is in the official Homebrew catalog:

brew install --cask ruswitcher

To update: brew upgrade --cask ruswitcher.

Updates. Once a day the app checks for a new version and can install it by itself. You can turn the check off in Settings, and that is also where the beta channel lives.

How it works

ActionResult
Type a word, tap Option ⌥Last typed word is converted
Tap Option ⌥ againReverse conversion (undo)
Select text, tap Option ⌥Selected text is converted

The trigger is configurable - Option, Command, Control or Shift (left or right side, single or double-tap), or a two-key combo (⌘+⇧, ⌃+⇧, ⌘+⌥, ⌃+⌥) for the Windows-style Alt+Shift feel.

Automatic conversion (beta)

RuSwitcher can also fix the layout automatically as you type, with no key press. Turn it on in Settings → Auto-conversion (off by default). When you finish a word (space), it checks the word against the macOS system dictionary and - only when confident - converts it and switches the layout for you.

Words with trailing punctuation are handled too (new in 2.7.0): ghbdtn, becomes привет, - the punctuation stays exactly as typed. Genuinely ambiguous tails are left alone on purpose: on the Russian layout the EN keys . , ; : are the letters ю б ж Ж, so levf. could mean either "думаю" or "дума." - such words are yours to convert with the manual trigger.

Precision-first: to avoid false fixes it deliberately skips short words (< 3 letters), words with digits / URLs / punctuation in the middle, ALL-CAPS acronyms typed with Shift, camelCase / mixed-script code identifiers, terminals / IDEs / password managers, and password fields. It targets layout pairs that have a macOS system dictionary (English ↔ Russian / Ukrainian / German / French… are reliable); languages without one (Belarusian, Armenian, Georgian) keep using the manual trigger.

Because the check relies on the macOS system dictionary - which is less complete than the real vocabulary of the languages it converts - some compound, rare or slang words won't auto-convert on their own. That's exactly what the built-in exception lists are for: add words you type often to Always convert (or Never convert) and RuSwitcher will handle them the way you want, no dictionary needed.

Three exception lists let you tune it (Settings → Auto-conversion):

  • Apps - where auto-conversion stays off (terminals, IDEs and password managers are pre-filled; password managers can't be removed).
  • Never convert - words it must never touch (nicknames, logins, brands). After a wrong fix, tap the trigger to undo and RuSwitcher offers to add the word here.
  • Always convert - words to always fix even if they aren't in the dictionary (compound words, slang). Add the target word - the result you want.

Layout-switch hotkey

Besides the conversion trigger, you can set a second hotkey that only switches the layout - no conversion - in Settings. It supports modifier-only combos like Ctrl+Shift that macOS system settings can't assign, plus right-key-only and double-tap options (e.g. double-Shift to switch). Off by default.

Hebrew - right-to-left, experimental

RuSwitcher's first right-to-left layout. Any layout pair involving Hebrew now converts: typed akuo in the wrong layout? One tap makes it שלום, in either direction, with any second layout. Because conversion is keycode-based, right-to-left text is handled safely and niqqud marks are never reordered.

Automatic conversion for Hebrew pairs is deliberately conservative - the macOS Hebrew dictionary accepts any letter sequence, so auto only fires on a positive signal (you typed in Hebrew but the word is a real word of your other layout's language). The reverse direction is left to the manual trigger - no corrupted words. This is a new, experimental feature; the interface itself is not yet localized into Hebrew (RTL UI is planned separately), and reports from Hebrew typists are very welcome.

Remote desktop (beta)

RuSwitcher works through Apple Screen Sharing. Type into a remote Mac's session and fix wrong-layout text right there - by trigger or automatically - just like on your local machine. Run RuSwitcher on both Macs and turn on Remote Desktop mode (beta, marked in the menu). Conversion happens on the Mac you're controlling, where the text actually lives.

Layout flag at the cursor (beta)

After you switch layout, RuSwitcher can briefly show the layout flag right next to the text cursor - so you see which layout you're in without glancing at the menu bar. It hides as you start typing. Turn it on in the menu or Settings (off by default). It works wherever the app exposes the cursor position via Accessibility (native apps and most text fields); a few apps that draw their own text (e.g. the VS Code editor) don't expose it - there macOS's own input indicator covers the gap.

Permissions

On first launch, RuSwitcher requests two macOS permissions:

  1. Accessibility - to read and modify text in applications.
  2. Input Monitoring - to detect keyboard events.

The app adds itself to the permission lists automatically - you only need to flip the toggles. The built-in permission wizard walks you through it step by step.

Settings

Access via the menu bar icon → Settings (⌘,).

  • General - conversion trigger (single key or combo), per-app layout memory, launch at login, interface language, layout pair.
  • Auto-conversion - automatic conversion, Remote Desktop mode (beta), and the three exception lists (apps, never-convert, always-convert).
  • About - version, donate, contact, check updates.
  • Advanced - debug logging, log management.

The menu-bar menu also has quick toggles for Automatic conversion, Layout sound, Flag at cursor and Remote Desktop mode.

FAQ

Why doesn't it work while I type a password?

In password fields macOS turns on Secure Input. While it is on, no app can see the keyboard, RuSwitcher included. That is system protection, not a bug. If Secure Input stays on after you finish typing a password, RuSwitcher tells you about it.

Why didn't automatic conversion touch a word?

It only acts when it is certain: it skips short words, words with digits or links, mixed alphabets, and it is off in terminals, code editors and password managers. Fix such a word with the hotkey, and if it comes up often, add it to the Always convert list.

Why is Ctrl+Shift greyed out in the hotkey list?

That combination is already used as the conversion trigger. One shortcut can't do two jobs: change the trigger and Ctrl+Shift becomes available for layout switching.

Does it work with layouts other than Russian and English?

Yes. Any pair of installed layouts works: Ukrainian, Belarusian, German, French, Hebrew and others, including third-party ones such as Ilya Birman's layouts.

Does it need the internet?

No. Conversion runs entirely on your Mac. The app only goes online to check for updates.

macOS won't let me open the app

RuSwitcher is signed and notarized by Apple. Trouble usually means the DMG was sent through Telegram, which tags the file in a way that blocks launching. Download the DMG from this site or GitHub, or install it with Homebrew.

How do I uninstall it?

Quit the app from its menu and delete RuSwitcher from Applications. With Homebrew: brew uninstall --cask ruswitcher. To wipe the settings too: defaults delete com.ruswitcher.app.