Papuga - це менюбар-утиліта для macOS, яка рятує текст, набраний не тією розкладкою. Виділив текст, дав команду, отримав нормальний результат. Без ритуалів, без копіпаст-акробатики.
- Перетворює вже набраний виділений текст між системними розкладками.
- Працює з будь-якими активними keyboard layouts macOS (мапи будуються динамічно з системних input sources).
- Два режими результату:
КопіюватиабоКопіювати і вставити. - Активація подвійним натисканням (
Opt+Shift,Cmd+Shift,Ctrl+Shift). - Активація кастомним хоткеєм через KeyboardShortcuts recorder.
- Автозаміна під час набору: визначає мову словесного острівця і виправляє «ghbdsn» на «привіт» прямо в полі (з grace-вікном для скасування).
- Окреме вікно «Історія та рекомендації» з sidebar-навігацією, що відкривається через Spotlight або з меню-бару. Сюди ж переїхали всі налаштування — навіть якщо приховати іконку меню-бару, доступ до конфігурації залишиться.
- Історія замін (ручні перемикання + автозаміни + скасування), з фільтром, retention-пресетами (1т / 1м / 3м / завжди) і кнопкою «Очистити».
- Розумні поради на основі чисел Фібоначчі (3 → 5 → 8 → 13 → 21 повторень): пропонує додати слово в allowlist, створити власне правило автозаміни, або заблокувати цілий застосунок — у один клік.
- Власні правила автозаміни (
source → target), що спрацьовують під час набору ще до мовного скорера. - Зберігає історію буфера обміну з часом копіювання, групуванням (
Сьогодні/Вчора/Раніше) та вибором retention-періоду. - Показує аналітику економії часу (сьогодні + загалом).
- Анімована іконка в меню-барі після успішного перемикання.
- Онбординг із покроковою видачею дозволів.
- Підтримує автозапуск при вході в систему.
- macOS 14.0+ (Sonoma або новіше)
- Дозвіл
Accessibility - Дозвіл
Input Monitoring
Без цих дозволів гарячі клавіші й автоматичний copy/paste не працюватимуть стабільно.
- Виділи текст у будь-якому застосунку.
- Виклич перемикання: або подвійним натисканням налаштованої комбінації, або власним шорткатом.
- Papuga скопіює виділене, конвертує, вставить (або залишить у буфері залежно від режиму), і переключить системну розкладку.
Завантаж останній DMG зі сторінки GitHub Releases, перетягни papuga.app в /Applications, запусти й дай дозволи Accessibility та Input Monitoring.
Подальші оновлення підтягуються автоматично через Sparkle — нічого додатково робити не треба.
xcodebuild -resolvePackageDependencies -project papuga.xcodeproj -scheme papuga
xcodebuild -project papuga.xcodeproj -scheme papuga -configuration Debug buildАбо просто відкрий papuga.xcodeproj в Xcode і запускай схему papuga.
Для швидкого dev-інсталу в /Applications (окремий app bundle + зручне тестування TCC-дозволів):
./scripts/dev-install.shАвтооновлення працює через Sparkle і читає appcast з https://rmarinsky.github.io/papuga/appcast.xml.
Реліз триггериться label-driven з PR:
- Відкрий PR у
main. - Додай рівно один лейбл:
release:patch,release:minor,release:majorабоrelease:skip. - Змерджи PR.
Далі CI сам: prepare-release.yml рахує наступну версію з останнього тега, пушить vX.Y.Z, далі release.yml білдить + нотаризує + підписує, створює GitHub Release і оновлює appcast.xml на гілці gh-pages. Версія застосунку береться з тега — MARKETING_VERSION у проекті лише плейсхолдер.
Ніколи не пушити в main напряму, не створювати теги v* руками, не редагувати MARKETING_VERSION чи appcast.xml вручну.
Локальний ./release.sh бере версію з git describe --tags або зі змінної RELEASE_VERSION; для appcast потрібні SPARKLE_EDDSA_PRIVATE_KEY і SPARKLE_DOWNLOAD_URL.
- Swift + SwiftUI
- Defaults
- KeyboardShortcuts
- LaunchAtLogin
- Sauce
Papuga не намагається бути "AI, що все зробить за вас". Це маленький, швидкий інструмент, який закриває одну болючу задачу дуже добре.