RuSwitcher

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

What RuSwitcher can do

Typed ghbdtn when you meant привет? Just tap Option ⌥ and RuSwitcher converts the last word into the right layout - typing it directly, no copy-paste. Works with any pair of installed keyboard layouts - Russian, Ukrainian, Belarusian, German, French, and more. The trigger is fully configurable (a single key or a two-key combo), it can also fix the layout automatically as you type, and it even works through Apple Screen Sharing.

Download for macOS

Everything within reach

Quick toggles live in the menu bar menu, the rest in Settings. Click through the window's tabs.

  • RuSwitcher 3.3.0
  • ✓🇷🇺 Russian
  • 🇺🇸 ABC
  • ✓Enable RuSwitcher
  • Automatic conversion (beta)
  • Layout sound (beta)
  • Flag at cursor (beta)
  • Monochrome icon
  • Check Permissions…
  • Settings…⌘,
  • Check for Updates…
  • Support Development ❤️
  • ⭐ Star on GitHub
  • Share RuSwitcher›
  • Contact the developer
  • Support on Telegram
  • Quit⌘Q
RuSwitcher — Settings
RuSwitcher settings window

Fixing the layout

  • Smart word detection

    Converts the last typed word, including punctuation.

    ghbdtn,→привет,
  • Selected text

    Select any text and tap the trigger to convert it in place.

    Ghbdtn vbh→Привет мир
  • Tap again to undo

    Reverse conversion if you changed your mind.

    ⌥ fix⌥ again to undo
  • Change case

    A separate hotkey cycles the case of the last word, a selection or the whole line, like in Punto. Off by default (Settings → General).

    hello→HELLO→Hello
  • Any two layouts

    Configure any pair from your installed system layouts. No hardcoded tables.

    Russian ⇄ ABCUkrainian ⇄ ABCGerman ⇄ Russian
  • Hebrew - right-to-left (experimental)

    The first RTL layout; convert to/from Hebrew with any second layout. Auto-conversion is conservative by design; the manual trigger works both ways.

    akuo→שלום

Hotkeys and switching

  • Configurable trigger

    Option, Command, Control or Shift (left/right, single/double-tap), or a two-key combo like ⌘+⇧.

    ⌥⌥ ⌥⌘ + ⇧⌃ + ⇧
  • Layout-switch hotkey

    A separate hotkey that only switches the layout (no conversion), including Ctrl+Shift and other modifier-only combos macOS can't assign; right-key-only and double-tap options. Off by default.

    ⌃ + ⇧⇧ ⇧
  • Switch layout from the menu

    Pick any installed layout right from the menu-bar menu (flag, name, a check on the current one) and click to switch.

    🇷🇺 Russian ✓🇺🇸 ABC
  • Per-app layout memory

    Remembers the active layout for each application and restores it when you switch back.

    Telegram: RUXcode: EN

On autopilot

  • Automatic conversion (beta)

    Optionally fix the layout as you type, with a precision-first system-dictionary check. Off by default.

    ghbdtn␣→привет␣
  • Exception lists

    A per-app exclusion list plus never-convert and always-convert word lists.

    Terminal1PasswordiPhone
  • Remote desktop (beta)

    Fix the layout over Apple Screen Sharing, on the Mac you're controlling.

    Screen Sharing

Look and sound

  • Layout flag at the cursor (beta)

    Briefly show the layout flag next to the text cursor right after a switch.

    🇷🇺 next to the cursor
  • Layout sound (optional)

    A short sound on the first letter after a layout change, so you hear which layout you're in.

    ♪ first letter after a switch
  • Monochrome menu-bar icon (optional)

    A system-style РУ/EN badge instead of the colored flag; adapts to light/dark automatically. Off by default.

    РУEN
  • 16 interface languages

    English, Русский, Українська, Беларуская, Deutsch, Français, Español, Português, Polski, 中文, 日本語, 한국어, Ελληνικά, Български, Հայերեն, ქართული.

    РусскийEnglishDeutsch日本語+12

Under the hood

  • Clipboard-free

    The converted word is typed directly via synthesized Unicode, so it works even in Electron / VS Code / Atom-class editors. Your clipboard is never touched (it's only a fallback for unusual apps).

    no ⌘C, no ⌘V
  • No telemetry

    Your keystrokes stay on your Mac.

    online only for updates
  • Minimal footprint

    No Electron, no web views, pure Swift + AppKit.

    1.3 MB
  • Universal binary

    Runs natively on both Apple Silicon and Intel Macs.

    Apple SiliconIntel
  • Auto-start at login

    Set and forget.

How it works

  • CGEventTap (passive, listen-only) for keyboard monitoring.
  • UCKeyTranslate (Carbon) for dynamic character mapping between any layout pair.
  • CGEvent.keyboardSetUnicodeString to type the converted text directly - no clipboard, no pasteboard side effects.
  • CGEventSource.userData marker to filter the app's own simulated events.
  • AXUIElement API for focused element detection.
  • SMAppService for login item management.
  • No hardcoded layout tables - works with any installed layouts.

Download for macOS