CyrFlip setup guide

The CyrFlip desktop app works standalone — it puts the layout marker on the system cursor and next to the text caret everywhere, and transliterates mistyped text with one hotkey. If you use VS Code, the optional VS Code extension adds the same marker precisely at the Monaco editor caret. Here's how to set them up.

How the two pieces fit together

The app is the brain - it knows the active layout. The extension is just a display surface for VS Code, because VS Code draws its own caret and isn't keen on sharing its whereabouts with the outside world.

  CyrFlip.exe (tray app)            %LOCALAPPDATA%\CyrFlip\        VS Code extension
  detects the layout   ──writes──▶        layout.txt      ──watches──▶  draws the marker
                                                                        at the editor caret

The app must be running for the extension to show anything - the extension only reads what the app publishes. Without VS Code you still get the tray icon, the mouse-cursor marker, and the transliteration hotkey everywhere.

Step 1 - Install and run the CyrFlip app

Pick any option:

On launch, CyrFlip sits in the system tray (no window). The tray icon shows the active layout. Right-click it to show the clipboard-history strip, enable or pause history, change the indicator, or open Settings. Settings contains hotkeys, autostart, privacy controls and diagnostics.

Turn on Start with Windows so the app - and therefore the layout marker everywhere, including in VS Code - is always available after a reboot.

Step 2 - Install the VS Code extension (optional)

The VS Code extension is not required for the app to work. Skip this step entirely if you don't use VS Code. Install it only if you want the layout marker to appear exactly at the caret inside VS Code. Choose one:

After installing, run Developer: Reload Window (Ctrl+Shift+P). The extension activates on startup - no configuration needed.

Step 3 - Use them together

  1. Make sure the CyrFlip app is running (its tray icon shows the layout code).
  2. Click into a code editor in VS Code and start typing. Switch your keyboard layout - the coloured EN/RU/UK marker follows your caret, and the status bar shows ⌨ EN, ⌨ DE, ⌨ ZH - whatever is active.
  3. Everywhere else (other apps, dialogs, the desktop), the marker rides the mouse I-beam cursor and the tray icon, driven by the same app.
  4. Typed half a message in the wrong layout before looking up? Select it and press Ctrl+Shift+F12 - CyrFlip transliterates it in place (QWERTY ↔ ЙЦУКЕН, EN ↔ RU). Each character is flipped by script, so even the mixed EN + RU masterpiece is handled correctly. Works in any app, VS Code included.
  5. Need another language pair? That Ctrl+Shift+F12 is simply the EN ⇄ RU row the Layout conversions table starts with - all these chords live in that one table. In Settings → Windows languages, install the 13 curated languages in one click or add any Windows layout, then add a row for the pair you want. Each row has its own hotkey and its own on/off switch, converts by physical key position, and works in both directions (press the same chord again while the pair's target layout is active and it converts back).
  6. Left CapsLock on by accident and got hELLO wORLD? Select it and press Ctrl+Shift+F11 - CyrFlip swaps UPPER ↔ lower case in place. It has its own configurable hotkey, and an optional Flip CapsLock after the flip toggle turns CapsLock off afterwards so you can keep typing normally.

When CapsLock is on, a thin frame appears around the EN/RU/UK marker on the mouse cursor, the text caret and the tray icon - so the CapsLock state is visible right where you type.

Clipboard history (optional)

Clipboard history is off until you enable it from the tray menu. It keeps recent Unicode text in a small topmost strip. Click an item to use it; pin items you want to keep or delete individual entries. Press Ctrl+Shift+F10 to show or hide the strip.

History is stored locally and protected with Windows DPAPI for your Windows account. Pause capture, clear the history, or disable it entirely in the tray menu or Settings.

Settings, tab by tab

Right-click the tray icon and choose Settings… (or double-click the icon). Every change applies at once - there is nothing to restart and nothing to save.

TabWhat lives there
GeneralStart with Windows; keep the computer awake and keep the screen on (both are remembered - a switch left on keeps the machine awake after a restart too, and CyrFlip will not watch your battery for you); the interface language - 13 to choose from.
IndicatorsThe I-beam cursor marker (off by default), the caret marker (on), the compact dot style, change the layout after converting text, and synchronize CapsLock after the case fix.
HotkeysA master switch plus a separate on/off and chord for the case fix and the clipboard manager - so a machine can keep only the one chord it needs. Also yield hotkeys to the remote desktop: while an mstsc/msrdc window is focused the chord is passed to the remote session, which is what you want when CyrFlip runs on both ends of an RDP connection. The context menu lives here too: its on/off switch and the mouse chord that opens it.
Layout conversionsOne table holding every chord that converts text between layouts. EN ⇄ RU on Ctrl+Shift+F12 is created on the first run and can be edited or deleted like any other row; add as many pairs as you like, each with its own chord and switch.
Windows languagesWindows' own input settings, without opening the Windows pane: install / reorder / remove keyboard layouts (nothing is downloaded - the layouts ship with Windows), the cycle chord (Alt+Shift, Ctrl+Shift, ` or off), and direct per-language shortcuts that Windows handles itself, so they keep working when CyrFlip is closed - and, unlike the built-in Windows dialog, they are not limited to Ctrl+Shift+digit. Both sections snapshot your pre-CyrFlip state once and can restore it.
ClipboardHistory on/off, pause capture, whether the manager window opens at startup, its transparency, full-history search, and clearing everything.
TranslationThe optional local translator - see the section below.
Quick launchThe optional scenario launcher - see the section below.
About & AdvancedLinks, the caret-position diagnostics report, and Send logs to the author.. - it packs CyrFlip's own logs into one archive and opens a message that you send yourself.

A Windows-language change usually takes effect immediately, but Windows occasionally only settles it after signing out and back in. The Microsoft Store build runs in a container, so Windows may redirect those registry writes into the package - the tab says so and links to the Windows settings.

Quick launch (scenario launcher, optional)

An opt-in module that absorbs OneClickRunner into CyrFlip - one tray process instead of two. It is off by default: until you enable it on Settings → Quick launch, CyrFlip behaves exactly as before - no extra tray entry and no Jump List tasks.

Translation (local model, optional)

Select text anywhere in Windows, press the chord, and the translation appears in a small window next to the mouse pointer, filling in as the model writes it. The translating is done by Ollama - a free program you install once on your own computer. CyrFlip does not bundle it, has no account and no key, and sends nothing to the author or to any cloud service. It is off by default: until you enable it on Settings → Translation, no chord is bound, there is no tray entry, and CyrFlip opens no network connection at all.

Worth knowing before you start: the quality is the local model's; the first translation after a cold start takes a while, because the model has to load; and Ollama plus a model are a multi-gigabyte download you make once. The model is held in memory by the Ollama process, not by CyrFlip - the app itself stays within its 50 MB budget.

CyrFlip's own context menu (optional)

Everything CyrFlip can do to a selection lives behind a hotkey. This module puts the same commands on the mouse: hold Ctrl and right-click a selection, and CyrFlip's own menu opens at the pointer - Copy / Cut / Paste, then your layout conversions, the case fix and your translation rows, then Quick launch and the clipboard history, then Settings. It is off by default, and while it is off the mouse hook is not installed at all: a hook that sits in the path of every mouse move on the machine has no business existing for a feature nobody switched on.

This module reads no text and stores nothing. It watches for its own chord and, while its menu is open, for a click outside it - a menu that belongs to a background process never hears the click that should dismiss it, so CyrFlip closes it itself.

Interface languages

The interface is available in English, Русский, Українська, Deutsch, Italiano, Español, Français, Português, العربية, हिन्दी, বাংলা, اردو and 中文. A fresh install follows the Windows display language and falls back to English; Arabic and Urdu are mirrored right-to-left. Translations into languages the author does not speak are machine-made and not proofread - corrections are very welcome on GitHub.

Where the layout shows up

SurfaceShown byWhere
Mouse text cursor (I-beam)AppEverywhere you can type
Marker next to the text caretAppClassic Win32 / UI-Automation text fields
Marker at the editor caretExtensionVS Code code editors (precise)
Status-bar indicatorExtensionVS Code, everywhere in the window
Tray iconAppAlways, in the notification area

Inside VS Code, webviews and widgets - the integrated terminal, search boxes, chat panels, the Command Palette - can't host editor decorations, so the caret marker can't appear there. The status-bar indicator and the app's mouse-cursor marker still show the layout.

Troubleshooting