Инструкция по установке CyrFlip

CyrFlip - набор инструментов в трее для клавиатуры и рабочего стола. Приложение CyrFlip работает самостоятельно - ставит маркер раскладки рядом с кареткой в любом приложении и исправляет текст в неверной раскладке одной горячей клавишей, а необязательные модули добавляют меню над выделением, локальный переводчик, окно символов, историю буфера, быстрые заметки, быстрый запуск и буфер на вашем собственном сервере. Если вы используете VS Code, необязательное расширение для VS Code добавляет тот же маркер точно у каретки редактора Monaco. Ниже описано, как их настроить.

Словарь

Раскладка
Соответствие физических клавиш символам, выбранное в Windows.
Конвертация раскладки
Замена выделенного текста так, словно он набран в другой установленной раскладке.
Исправление регистра
Замена прописных букв строчными и наоборот в выделенном тексте.
CapsLock
Состояние клавиатуры для ввода прописных букв; CyrFlip умеет его показывать и синхронизировать.
Быстрые заметки
Необязательный локальный блокнот в CyrFlip.
Сервер обмена
Сервер, который вы или тот, кому вы доверяете, запускаете для связи ваших устройств; CyrFlip может отправлять на него буфер обмена и получать его обратно.

Как связаны две части

Приложение - это «мозг»: оно знает активную раскладку. Расширение - лишь поверхность для отображения в VS Code, потому что VS Code рисует собственную каретку и не спешит сообщать её местоположение внешнему миру.

  CyrFlip.exe (трей)               %LOCALAPPDATA%\CyrFlip\        Расширение VS Code
  определяет раскладку    ──пишет──▶      layout.txt      ──следит──▶  рисует маркер
                                                                       у каретки редактора

Приложение должно быть запущено, иначе расширению нечего показывать - оно только читает то, что публикует приложение. Без VS Code вы всё равно получаете значок в трее, маркер на курсоре мыши и горячую клавишу транслитерации везде.

Шаг 1 - установите и запустите приложение CyrFlip

Откройте «О программе», чтобы проверить версию и найти поддержку; вкладка выбрана, видны ссылки, диагностика каретки и отправка логов.
Вкладка «О программе»: версия, ссылки, диагностика каретки и отправка логов в текущем приложении Windows.

Любой из вариантов:

При первом запуске знакомство из пяти шагов представляет CyrFlip и предлагает открыть общие настройки для первоначальной настройки. Пропустите или закройте его, чтобы оставить значения по умолчанию. Обновления не показывают его снова; повторить можно на странице «О программе». Автозапуск остаётся выключенным, пока вы его не выберете.

После запуска CyrFlip сидит в системном трее (обычно без окна). Значок показывает активную раскладку. Правый клик открывает историю буфера, её включение и паузу, переключатели индикатора и Настройки. В настройках находятся горячие клавиши, автозапуск, приватность и диагностика.

Включите «Запускать CyrFlip вместе с Windows», чтобы приложение - а значит и маркер раскладки везде, включая VS Code - было доступно сразу после перезагрузки.

История буфера (необязательно)

История буфера выключена, пока вы не включите её в меню трея. Она сохраняет недавние Unicode-тексты в небольшом окне поверх других. Кликните запись, чтобы использовать её; важные записи можно закрепить, а ненужные удалить. Ctrl+Shift+F10 показывает или скрывает окно.

История хранится только локально и защищена Windows DPAPI для вашей учётной записи. Захват можно поставить на паузу, очистить историю или полностью выключить функцию в трее либо настройках.

Перевод выделенного текста (необязательно)

Выделите текст где угодно в Windows и нажмите свою комбинацию — у стартовой строки это Ctrl+Shift+F9 — рядом с указателем мыши откроется небольшое окно, и перевод будет появляться в нём по мере того, как его пишет модель. Работает это на Ollama — бесплатной программе, которую вы один раз ставите на свой компьютер сами: CyrFlip её в себе не несёт, у него нет ни учётной записи, ни ключа, и никакой текст не уходит ни разработчику, ни в облако. По умолчанию перевод выключен: пока он выключен, комбинация не назначена, пункта в трее нет, и CyrFlip не открывает ни одного сетевого соединения.

Честные оговорки: качество перевода — это качество локальной модели; первый перевод после холодного старта идёт заметно дольше, потому что модель ещё загружается в память; а сама Ollama вместе с моделью — это несколько гигабайт, которые вы скачиваете один раз. Адрес по умолчанию http://localhost:11434 — это ваш собственный компьютер; вкладка настроек прямо предупреждает, что другой адрес означает отправку выделенного текста на ту машину.

Настройки по вкладкам

Правый клик по значку в трее и Настройки... (или двойной клик по значку). Любое изменение применяется сразу - перезапускать и сохранять ничего не нужно.

Каждая страница начинается с заголовка и того, для чего она, а её разделы сворачиваются по отдельности. Найти настройку... вверху окна (или Ctrl+F) ищет любую настройку по названию и по описанию и сразу ведёт к ней - открывается страница, разворачивается раздел, фокус встаёт на настройку; Развернуть все и Свернуть все действуют на текущей странице. Окно запоминает свой размер и положение, какие разделы вы оставили открытыми и где была прокручена каждая страница, а открывается на том мониторе, где вы работаете. Колесо мыши над выпадающим списком или числовым полем прокручивает страницу, а не меняет значение.

ВкладкаЧто там есть
ОбщиеВ четырёх группах. Язык и тема: язык интерфейса - 13 на выбор; тема - как в Windows (по умолчанию), светлая или тёмная; все окна, диалоги и меню переключаются сразу, а «как в Windows» следует за Windows, пока CyrFlip работает; контрастная тема Windows всегда важнее; метка раскладки в любой теме сохраняет свои цвета - они обозначают раскладку. Запуск: запуск вместе с Windows и ярлыки в меню «Пуск» и на рабочем столе. Питание и экран: не давать компьютеру засыпать и не блокировать экран (как при видео) (оба запоминаются - забытый включённым переключатель не даст компьютеру уснуть и после перезапуска, следить за вашей батареей CyrFlip не станет). И перенос настроек: экспорт, импорт и возврат.
ИндикаторыТо, что видно до ввода текста: маркер на курсоре мыши (по умолчанию выключен), маркер у каретки (включён), компактная точка вместо букв и размер метки.
Языки WindowsНастройки ввода самой Windows, без открытия её панели: установка, порядок и удаление раскладок (ничего не скачивается - раскладки уже входят в состав Windows), сочетание перебора (Alt+Shift, Ctrl+Shift, ` или выключено) и прямые сочетания на язык, которые обрабатывает сама Windows, поэтому они работают и при закрытом CyrFlip - и, в отличие от штатного окна Windows, здесь не только Ctrl+Shift+цифра. Оба раздела один раз сохраняют состояние «до CyrFlip» и умеют его вернуть.
Исправление текстаДва исправления набранного не так. Таблица, где живут все комбинации, конвертирующие текст между раскладками (строка EN ⇄ RU на Ctrl+Shift+F12 создаётся при первом запуске, её можно изменить или удалить, как любую другую; пар можно завести сколько угодно, у каждой своя комбинация и свой выключатель); менять раскладку после конвертации текста; конвертировать ли знаки препинания вместе с текстом; и исправление регистра - его комбинация со своим выключателем и синхронизация CapsLock после исправления регистра.
Меню для выделенногоСобственное меню CyrFlip над выделенным текстом, по умолчанию выключено: его выключатель, аккорд мыши, который его открывает, и клавиатурная комбинация, открывающая его у каретки.
СимволыНеобязательное окно символов: его выключатель, комбинация, которая его открывает, и «Скрывать символы, которые есть на моих раскладках» — фильтр, убирающий знаки, которые установленные раскладки уже умеют набирать. Поиск в окне идёт по названию, ключевым словам или коду Unicode, и клик копирует знак в буфер обмена. Пока окно выключено, пункта символов в трее и в текстовом меню нет.
ПереводГлавный выключатель перевода (по умолчанию выключен), адрес сервера Ollama и модель, кнопки «Установить Ollama», «Запустить Ollama», «Проверить связь» и «Загрузить модель», таблица направлений со своей комбинацией на строку и что делать с результатом — класть в буфер обмена или сразу вставлять вместо выделения (обе опции выключены).
Буфер обменаВключение истории, пауза захвата, комбинация, открывающая окно менеджера, показывать ли это окно при запуске, его прозрачность, поиск по всей истории и полная очистка.
Быстрые заметкиНеобязательный локальный блокнот — см. раздел ниже.
Снимки экранаСнимок области экрана и снимок всего экрана: комбинация для области (по умолчанию Ctrl+F12) и для всего экрана (Ctrl+F11), у каждой свой выключатель, и кнопка Сделать снимок области. Ctrl+Alt+F12 и Ctrl+Alt+F11 делают те же два снимка, но сначала открывают рисование - эллипсы, прямоугольники, линии, стрелки, ластик и восемь цветов - и копируют картинку, только когда вы нажмёте «ОК» (у рисования один общий выключатель). Сохранение каждого снимка в PNG в выбранную папку (по умолчанию - папка «Снимки экрана» Windows) включено по умолчанию, и эту папку открывает своя комбинация (Ctrl+F10 по умолчанию, пока включено сохранение). Экран замирает, вы выделяете прямоугольник мышью, и картинка уже в буфере обмена; Esc или правая кнопка - отмена. Команды снимка области и всего экрана всегда есть в меню трея.
Быстрый запускНеобязательный лаунчер сценариев — см. раздел ниже.
Сервер обменаНеобязательный буфер на сервере — см. раздел ниже.
Горячие клавишиОбщий выключатель всех комбинаций и уступать хоткеи удалённому рабочему столу (mstsc/msrdc): пока в фокусе окно mstsc/msrdc, комбинация уходит в удалённый сеанс - это то, что нужно, когда CyrFlip запущен на обоих концах RDP. Ниже все комбинации CyrFlip одним списком: что делает каждая, действует ли она сейчас и, если нет, почему - с изменением, выключателем и сбросом у каждой строки. Собственный выключатель комбинации остаётся на странице её функции.
О программеВерсия сборки (тот же штамп YY.M.D.HHmm, что и у релизного ZIP, - сразу видно, вошло ли исправление в вашу копию; сборка из Microsoft Store сообщает об этом отдельно), ссылки (в том числе на лицензию MIT и политику конфиденциальности), отчёт диагностики положения каретки и Отправить логи автору.. - собирает логи CyrFlip в один архив и открывает письмо, которое отправляете вы сами.

Изменение в «Языках Windows» обычно вступает в силу сразу, но иногда Windows окончательно принимает его только после выхода и повторного входа. Версия из Microsoft Store работает в контейнере, поэтому Windows может перенаправить такие записи в реестр внутрь пакета - вкладка предупреждает об этом и даёт ссылку на настройки Windows.

Быстрый запуск (лаунчер сценариев, необязательно)

Необязательный модуль, вобравший в себя OneClickRunner, — один процесс в трее вместо двух. По умолчанию выключен: пока не включите его в «Настройки → Быстрый запуск», CyrFlip ведёт себя ровно как раньше — ни лишнего пункта в трее, ни задач в Jump List.

Собственное контекстное меню CyrFlip (необязательно)

Всё, что CyrFlip умеет делать с выделением, живёт за горячей клавишей. Этот модуль кладёт те же команды на мышь: удерживайте Ctrl и щёлкните правой кнопкой по выделению — у указателя откроется собственное меню CyrFlip: «Копировать / Вырезать / Вставить», затем ваши конвертации раскладок, исправление регистра и строки перевода, затем «Быстрый запуск» и история буфера, затем настройки. По умолчанию модуль выключен, и пока он выключен, мышиный хук вообще не устанавливается: хук, стоящий на пути каждого движения мыши в системе, не должен существовать ради функции, которую никто не включал.

Модуль не читает текст и ничего не сохраняет. Он следит за своим сочетанием и, пока меню открыто, за щелчком мимо него: меню, принадлежащее фоновому процессу, не получает щелчок, который должен его закрыть, поэтому CyrFlip закрывает его сам.

Быстрые заметки (необязательно)

Маленький локальный блокнот для того, что хочется сохранить прямо сейчас и найти потом. Нажали Ctrl+Shift+Alt+N, набрали или вставили, закрыли окно. По умолчанию выключено; пока выключено, CyrFlip не читает и не создаёт файл заметок, в трее нет пункта заметок и комбинация не назначена.

Заметки хранятся только на вашем компьютере, в файле только на дозапись, где каждая запись зашифрована Windows DPAPI для вашей учётной записи — и имя, и текст. Ничего не уходит в сеть, ничего не индексируется поиском Windows, история буфера сама по себе в заметки не превращается, а в архив «Отправить логи автору..» файл не попадает никогда. Это всё же не хранилище секретов: не храните там пароли, боевые токены и приватные ключи. Экспортированный файл уже не зашифрован, и экспорт говорит об этом прямо.

Перенос в Google Keep — ручной, через буфер обмена, и это честный предел, а не упрощение: Keep API у Google — интерфейс для администратора Workspace, а не то, чем может пользоваться личный аккаунт, поэтому CyrFlip не изображает синхронизацию.

Сервер обменаБуфер на сервере (необязательно)

Передайте одну скопированную вещь - текст, картинку или один файл - на другие свои устройства через сервер обмена, который запускаете вы сами или тот, кому вы доверяете. CyrFlip становится ещё одним устройством вашего аккаунта на нём и делает только две вещи: Отправить буфер на сервер и Получить буфер с сервера. По умолчанию выключено: пока вы не включите это в «Настройки → Сервер обмена», CyrFlip не открывает для этого никаких соединений, а его пункты в трее, ярлыки и комбинации недоступны.

  1. Получите аккаунт. CyrFlip только входит в уже существующий - попросите у того, кто управляет сервером, приглашение вида «своё устройство или семья». О сервере обмена объясняет, что это за сервер и как запустить свой.
  2. Откройте «Настройки → Сервер обмена», включите Включить буфер на сервере и нажмите Добавить аккаунт... Вставьте строку подключения (или текст её QR-кода) и проверьте в окне сервер и его сертификат до того, как вводить пароль: окно показывает, куда уйдёт пароль. Если сертификат сервера самоподписанный, вам покажут его отпечаток для подтверждения; CyrFlip запоминает его и отказывается принимать другой.
  3. Скопируйте что-нибудь и выберите Отправить буфер на сервер в меню трея, в Jump List значка CyrFlip на панели задач, ярлыком на рабочем столе или комбинацией. На другом устройстве выберите Получить буфер с сервера и вставьте. Сообщение в трее говорит, что произошло, а при ошибке - что попробовать.

То же самое программа говорит на своей странице: Сервер обмена соединяет ваши устройства, поэтому знает имена вашего аккаунта, устройств, папок и трансляций, видит, какие устройства в сети, и сколько и когда передаётся. Открыть то, что идёт через него, он не может: папки и их файлы, трансляции и буфер шифруются на вашем устройстве и открываются только на других ваших устройствах или у тех, кому вы дали доступ. Чтобы заглянуть внутрь, тому, кто управляет сервером, пришлось бы добавить в ваш аккаунт своё устройство, и оно появилось бы в списке ваших устройств.

CyrFlip никогда ничего не отправляет сам: нет ни наблюдения, ни таймера, ни отправки при запуске. Пароль для входа используется один раз и нигде не хранится; токен устройства и ключ защищены Windows DPAPI. В журнале (exchange-clipboard.log) только виды, размеры и коды результатов - никогда содержимое буфера, имя файла или адрес. Политика конфиденциальности. О буфере на сервере на портале обмена.

Языки интерфейса

Интерфейс доступен на English, Русский, Українська, Deutsch, Italiano, Español, Français, Português, العربية, हिन्दी, বাংলা, اردو и 中文. При первом запуске выбирается язык интерфейса Windows, иначе English; для арабского и урду интерфейс зеркалится справа налево. Переводы на языки, которыми автор не владеет, сделаны моделью и не вычитаны - поправки приветствуются на GitHub.

Шаг 2 - установите расширение для VS Code (необязательно)

Откройте «Индикаторы» для настройки маркера у каретки; метка у каретки, компактная точка и маркер на указателе включены.
Индикаторы в приложении; расширение добавляет маркер внутри VS Code.

Расширение для VS Code не требуется для работы приложения. Если вы не пользуетесь VS Code - пропустите этот шаг. Устанавливайте его только если хотите маркер точно у каретки внутри VS Code. Выберите один способ:

После установки выполните Developer: Reload Window (Ctrl+Shift+P). Расширение запускается само - настройка не требуется.

Шаг 3 - пользуйтесь вместе

Откройте «Исправление текста» для изменения сочетания; строка English US ⇄ Russian включена и использует Ctrl+Shift+F12.
Строка конвертации раскладок и её сочетание клавиш.
  1. Убедитесь, что приложение CyrFlip запущено (значок в трее показывает код раскладки).
  2. Кликните в редактор кода в VS Code и начните печатать. Переключите раскладку - цветной маркер EN/RU/UK следует за кареткой, а в строке состояния видно ⌨ EN, ⌨ DE, ⌨ ZH - смотря что активно.
  3. Везде в других местах (другие приложения, диалоги, рабочий стол) маркер едет на курсоре-«балке» мыши и на значке в трее - всё от того же приложения.
  4. Набрали полсообщения не в той раскладке, прежде чем взглянуть на экран? Выделите и нажмите Ctrl+Shift+F12 - CyrFlip транслитерирует на месте (QWERTY ↔ ЙЦУКЕН, EN ↔ RU). Каждый символ переключается по скрипту, поэтому даже смешанный EN + RU шедевр обрабатывается корректно. Работает в любом приложении, включая VS Code.
  5. Нужна другая языковая пара? Эта Ctrl+Shift+F12 — просто строка EN ⇄ RU, с которой начинается таблица Исправление текста: все такие комбинации живут в одной этой таблице. В Настройки → Языки Windows установите одной кнопкой 13 популярных языков или добавьте любую раскладку Windows, затем добавьте строку для нужной пары. У каждой строки своя комбинация и свой выключатель, преобразование идёт по физическим клавишам и работает в обе стороны (нажмите ту же комбинацию, когда активна целевая раскладка пары, — и текст конвертируется обратно).
  6. Случайно оставили CapsLock и получили ПРИВЕТ вместо «Привет»? Выделите и нажмите Ctrl+Shift+F11 - CyrFlip поменяет БОЛЬШИЕ ↔ маленькие буквы на месте. У этой функции своя настраиваемая горячая клавиша, а необязательный переключатель Синхронизировать CapsLock после исправления регистра ещё и приведёт саму клавишу в соответствие с исправленным текстом - выключит, если текст заканчивается маленькой буквой, и включит, если большой, - чтобы вы печатали дальше ровно так, как теперь написано.

Когда CapsLock включён, вокруг маркера EN/RU/UK появляется тонкая рамка - на курсоре мыши, у каретки и на значке в трее, чтобы состояние CapsLock было видно прямо там, где вы печатаете.

Перенос настроек

На странице «Общие» можно экспортировать настройки CyrFlip в JSON, просмотреть изменения перед импортом и вернуть настройки до импорта. Три последних снимка сохраняются локально. Файл v2 содержит все настройки приложения, сочетания клавиш, положения окон, цели светофора и сценарии запуска. Тексты заметок, история буфера, учётные данные и состояние ввода Windows в него не входят; файлы v1 по-прежнему читаются. Храните файл в тайне: он содержит адреса узлов, сайтов и программ. По умолчанию три последние резервные копии сохраняются в Документы/CyrFlip/Backups. После переустановки из Store новый профиль предлагает восстановление через просмотр импорта. «Не сейчас» сохраняет копию и повторяет вопрос при следующем запуске; «Нет — начать заново» завершает предложение. Включение записи истории и заметок, а также адрес другого сервера перевода требуют отдельного согласия.

Экспортировать настройки... / Импортировать настройки... / Вернуть настройки до импорта...

Что означает цвет маркера

Буквы называют язык: US и Dvorak одинаково читаются как EN, потому что в значке шириной в несколько пикселей нет места для «US-International». Цвет называет раскладку: у каждой из 25 раскладок 13 курируемых языков свой оттенок цвета её языка, поэтому русский всегда красный, но «Русская машинопись» - другой красный. В компактном режиме точки этот цвет и есть весь маркер.

Любая другая раскладка - польская клавиатура, японский IME - сохраняет буквы своего языка (PL, JA, TR) и получает один нейтральный цвет: раздать различимые узнаваемые цвета всем ~218 раскладкам Windows честным способом невозможно.

ЯзыкМаркерРаскладка клавиатурыЦвет
АнглийскийENUS 00000409 #4DA3FF
ENUS-International 00020409 #0A58FF
ENUS-Dvorak 00010409 #C2E3F4
КитайскийZHChinese (Simplified) - US keyboard 00000804 #F3B33D
ZHChinese (Traditional) - US keyboard 00000404 #FAEAA7
ХиндиHIDevanagari - INSCRIPT 00000439 #E68742
HIHindi Traditional 00010439 #F0B88F
ИспанскийESSpanish 0000040A #F06E9C
ESLatin American 0000080A #E92D8F
ФранцузскийFRFrench 0000040C #8D7CF2
FRCanadian French 00001009 #633BEC
АрабскийARArabic (101) 00000401 #35C6B4
ARArabic (102) AZERTY 00020401 #8BE0C7
БенгальскийBNBangla - INSCRIPT 00000445 #C67CDA
ПортугальскийPTPortuguese (Brazil ABNT) 00000416 #46B978
PTPortuguese 00000816 #96C0A1
РусскийRURussian 00000419 #FF5A5A
RURussian (Typewriter) 00010419 #FF1313
УрдуURUrdu 00000420 #E5A3C7
НемецкийDEGerman 00000407 #D8D14A
DEGerman (IBM) 00010407 #CED4A5
ИтальянскийITItalian 00000410 #7FB2E5
ITItalian (142) 00010410 #6587B7
УкраинскийUKUkrainian 00000422 #5AD86A
UKUkrainian (Enhanced) 00020422 #3FD039
всё остальноеPL, JA, TR ..любая другая раскладка Windows #9AA6B2

Маркер рядом с кареткой и у курсора мыши рисуется полупрозрачным, так что текст под ним остаётся читаемым; значок в трее и сам курсор I-beam остаются непрозрачными. Те же цвета использует расширение для VS Code, поэтому раскладка выглядит в редакторе так же, как и везде.

Где показывается раскладка

ПоверхностьКто показываетГде
Текстовый курсор мыши (I-beam)ПриложениеВезде, где можно печатать
Маркер рядом с кареткойПриложениеКлассические Win32 / UI-Automation поля
Маркер у каретки редактораРасширениеРедакторы кода VS Code (точно)
Индикатор в строке состоянияРасширениеVS Code, во всём окне
Значок в трееПриложениеВсегда, в области уведомлений

Внутри VS Code webview-панели и виджеты - встроенный терминал, поля поиска, панели чата, палитра команд - не могут содержать декорации редактора, поэтому маркер у каретки там не появляется. Раскладку по-прежнему показывают индикатор в строке состояния и маркер на курсоре мыши - а также собственный маркер приложения у каретки, который в этих панелях как раз работает.

Двух маркеров сразу не бывает: пока вы работаете в редакторе, маркер рисует расширение, а приложение убирает свой. Расширение сообщает об этом приложению файлом рядом с layout.txt, и признак живёт 5 секунд после последнего ввода или щелчка в редакторе - поэтому в чате, терминале и полях поиска маркер приложения возвращается. Если приложение запущено без расширения, ничего не меняется.

Решение проблем