Что нового
Каждое обновление одной строкой: что починили и что добавилось. Обновления приходят сами, а поставить их можно в любой момент из «Настройки → Обновления».
версий в списке: 99 · последняя 0.3.16
0.3.16 Pika
- Паузу теперь видно в меню. Пункт «Не мешать» стоит сразу под автопереключением и предлагает помолчать 15 минут, час, три или пять. Раньше она показывалась, только когда уже шла, а включить её оттуда было нельзя.
- Значок в строке меню говорит, когда Keyboop молчит. Наведите на него, и он ответит, что мешает: не выдан доступ, идёт пауза, клавиатуру занял кто-то другой. Пока молчим, значок приглушён.
- Предупреждение больше не съедает код языка. Раньше при нехватке доступа вместо «RU» появлялся треугольник, и язык пропадал целиком. Теперь знак стоит рядом с ним, а не вместо.
- Сообщение про занятую клавиатуру стало человеческим. Было «включён Secure Input (держит Пароли Safari)», стало «Скрытый ввод: Пароли Safari». Заодно оно перестало растягивать меню вдвое.
- Списки автозамены и сниппетов подстраиваются под содержимое. Раньше они были фиксированной высоты и занимали пол-окна даже с тремя записями.
- Поле исключений отвечает, что получилось: слово уже в списке, или мы его и так бережём. Заодно список, вставленный строками, добавляется по словам, а не одной мёртвой записью.
0.3.15 Pika
- Сниппеты стали отдельным списком и вставляются по сочетанию. Автозамена срабатывает сама по аббревиатуре, а эти вставляются осознанно: нажали сочетание, увидели список, выбрали цифрой или мышью. Сюда просится то, что на аббревиатуру вешать страшно: длинные команды, реквизиты, шаблоны писем.
- У значка в строке меню появилось быстрое действие по правому клику. Левый по-прежнему открывает меню, правый сразу делает выбранное: копирует последнюю диктовку, начинает диктовку, открывает историю или настройки.
- Keyboop можно попросить помолчать. Пауза на 15 минут, час, три или пять часов: всё это время он не трогает ни текст, ни сочетания, а потом возвращается к работе сам. Тем и отличается от выключенного тумблера, про который забывают на неделю.
- При назначении сочетания видно, если оно уже занято. Критичные вроде ⌘C и ⌘V не отдадим никогда, а про системные функции macOS предупредим и всё равно дадим назначить: это ваш Mac и ваш выбор.
- Две настройки назвали понятнее. «Исправлять слово после пробела» стало «Автоматическое исправление раскладки», а «Менять раскладку своей клавишей» стало «Менять раскладку без задержки». Со второй заодно снята пометка «бета».
- Сообщение «Скопировано» выглядит как остальные плашки. Раньше текст в нём был выкрашен в чужой зелёный цвет.
0.3.14 Pika
- Клик мышью с зажатым модификатором больше не переключает язык. Если на переключение назначен одиночный модификатор (правый ⌘, ⌥, ⌃, Caps Lock или 🌐), то ⌘-клик по ссылке или ⌥-клик читались как чистое нажатие. Раскладка менялась сама по себе несколько раз в день, и связать это с мышью было невозможно: мы слушали только клавиатуру.
- В Spotlight больше не портится запрос. Его подсказка дополняет строку выделенным хвостом, и наш первый Backspace гасил выделение вместо буквы, из-за чего «ghjdthrf» превращалось в «gпров». Заодно к Spotlight наконец применяются его собственные настройки: по ⌘Space система не считает его активной программой, поэтому ни привязка языка, ни исключения для него не работали никогда.
- Значок языка в строке меню перестал угадывать. Английская раскладка записана в системе как «U.S.», и мы разбирали это имя неправильно. Про русский индикатор отвечал честно, а про английский показывал последнее, что запомнил, и потому отставал от реальности.
- Если система не применила переключение, приложение это заметит. Раньше команда считалась выполненной по факту отправки, и дальше мы верили себе, даже когда раскладка осталась прежней. Теперь результат сверяется, и одна поправка делается сама.
0.3.13 Pika
- Микрофон больше не включается сам. Если хоткей диктовки это одиночный модификатор (по умолчанию правый ⌥), он срабатывал и внутри чужого сочетания: нажали ⌥⇧ правым Option, и попутно пошла запись. То же ловило hyper-клавишу на Caps Lock. Теперь жест засчитывается только чистым нажатием, а начатая по ошибке запись обрывается.
- Копирование больше не портит буфер обмена. Когда мы читаем выделение, мы снимаем буфер и возвращаем на место, и в этом возврате терялся порядок форматов. Из-за него текст, скопированный из Telegram, мог вставиться в Заметки нечитаемой кашей, а в другие программы нормально.
- «вк», «тг» и «vk» стали настоящими исключениями. Раньше они показывались в списке, но крестик на них ничего не менял: защита сидела глубже. Теперь удалили — снова переключаются, как интерфейс и обещает. Заодно латинское «vk» перестало превращаться в «мл»: на русской раскладке это миллилитр, и детектор честно его чинил.
- Окно записи комбинации стало вдвое компактнее. Оно раздувалось под длину подсказки, а подсказка к тому же умалчивала, что один модификатор тоже можно назначить: достаточно нажать и отпустить. Теперь про это написано, а ⌃ добавлен в готовые варианты.
- Проверка хоткея диктовки больше не зависает на экране. У окошка не было ни кнопки закрытия, ни Esc, ни времени жизни, и оно могло остаться висеть до перезапуска. Плюс оно не замечало модификаторы, то есть для настройки по умолчанию не могло завершиться в принципе.
- Плашка диктовки не исчезает посреди речи. Короткое сообщение поверх неё гасило её своим таймером, даже если запись продолжалась.
- Перевод выделенного больше не отбирает ⌃⌥T на macOS 13 и 14. Там его не существует (нужна macOS 15), но сочетание мы перехватывали и отвечали гудком. Теперь раздел честно говорит, что нужна система новее.
- История диктовок чистится по сроку, а не только при новой записи. Продиктовали один раз и ушли — запись всё равно исчезнет вовремя.
- Поле «Слово…» в исключениях переехало над списком. Раньше вы печатали внизу, а слово появлялось выше того места, куда вы смотрите.
- Раздел «Приватность» перестал недоговаривать. Он называл два повода выхода в сеть, а их четыре: не хватало как раз отправки отзыва, то есть единственного случая, когда наружу уходит кусок лога. На сайте было написано верно, в приложении нет.
- Капсулы клавиш в окне записи комбинации больше не теряются при смене темы. Заливка бралась один раз, а подпись перекрашивалась, и получалось тёмное по тёмному.
- Модель распознавания больше не занимает память впустую. Она грелась при запуске, чтобы первая диктовка не тормозила, но срок её жизни заводился только после первой диктовки. То есть у того, кто просто держит Keyboop запущенным, полтора гигабайта висели бессрочно. Теперь модель уходит из памяти после часа простоя в любом случае.
- У каждой модели появилась кнопка «i». Там написано, сколько она занимает на диске и в памяти, насколько быстрая и для чего годится. Раньше выбор выглядел как «какая точнее», а чем за это платят, человек узнавал из монитора системы.
0.3.12 Pika
- Светлая тема больше не разъезжается. Если оформление стоит «как в системе», окно теперь целиком светлое в светлой теме и целиком тёмное в тёмной, и переключение на лету не оставляет половин. Раньше правая часть оставалась тёмной, а подписи на ней почти не читались.
- Выбранный язык диктовки наконец работает. Он передавался не до конца, и Parakeet, решив что речь русская, писал кириллицей даже английские слова: «Did you commit and push» превращалось в «Дидю коммит энд пуш». Выбор языка такую подмену отсекает.
- Приложение скажет, если обновления перестали приходить. Проверка могла молча не доходить до сервера месяцами: мешают сеть, VPN, корпоративный фильтр или антивирус. Теперь в «Обновлениях» появляется честная строка и кнопка отправить отчёт.
- Escape с модификатором больше не отменяет диктовку. Тильда и Escape соседи, и промах мимо ⌥` гасил запись без объяснений. Обычный Escape отменяет как отменял.
- Отменённая диктовка больше не портит следующую. Пометка «только в историю» оставалась висеть, если запись не дошла до расшифровки, и доставалась уже следующей записи: человек диктовал в поле, а текст молча уезжал в историю.
0.3.11 Pika
- Двойное нажатие модификатора больше не срабатывает внутри чужого сочетания. Если у вас конверсия висит на двойном Shift, а в другой программе вы жмёте ⌘⇧⇧, Keyboop раньше считал это своим жестом и лез менять слово. Проверка «а не было ли других клавиш» видела только обычные клавиши, а ⌘ для неё был невидим.
- Keyboop больше не просит не тот доступ. Раньше он в любом случае писал «Нужен доступ (Accessibility)» и вёл в раздел Универсального доступа. Если там уже было разрешено, а не хватало Мониторинга ввода, человек видел галочку на месте и решал, что приложение сломано. Теперь называем ту дверь, в которую надо, и открываем именно её.
- Если Keyboop запущен не из «Программ», он это скажет. Доступы macOS привязывает к месту, откуда приложение работает: у копии в «Загрузках» они не держатся, а обновления не ставятся вовсе. Раньше мы предупреждали только про запуск прямо из образа, теперь про любое неподходящее место.
- В отчёт об ошибке добавилась строка о том, откуда приложение запущено. Без неё половину таких писем нечем было проверить. Полный путь не отправляется, только «Программы» или «не Программы»: в пути бывает ваше имя.
0.3.10 Pika
- Оформление приложения теперь можно выбрать. В «Общих» появился переключатель: как в системе, светлое или тёмное. По умолчанию как в системе, то есть Keyboop переоденется вместе с macOS. Раньше выбора не было вовсе, и в светлой теме окно настроек разъезжалось: боковое меню светлело, а правая часть оставалась тёмной.
- Окно настроек больше не уезжает вбок. На macOS 26 боковое меню стало плавающей панелью поверх содержимого, а мы считали, что оно по-прежнему отнимает ширину. Страницу можно было утащить в сторону, и текст прятался под меню.
- Подавление дребезга больше не съедает ⌘C и ⌘V. Фильтр смотрел только на клавишу и время, поэтому команду под зажатым ⌘ принимал за дребезг и глотал. Сочетания с ⌘, ⌃ и ⌥ теперь идут мимо него: пропущенная команда заметнее лишней буквы.
- Одиночная буква больше не меняется после клика мышью. Если поправить одну букву внутри уже написанного слова, мы видели только её и могли перевернуть обратно, отменив ваше же исправление. После переноса каретки одиночные буквы теперь не трогаем.
- Диктовка перестала занимать все производительные ядра. Потоки считались по всем ядрам сразу, и звуку в других программах оставались только экономичные, отсюда заикание музыки во время распознавания.
- Клавишу переключения стало видно в настройках. Строка называлась по выгоде, а не по действию, и люди не находили, где назначить себе Caps Lock. Теперь это «Менять раскладку своей клавишей», а если перенастроить клавишу не вышло, приложение честно говорит почему.
- У режима диктовки появилась подсказка. «Переключать» переименовано в «Нажимать», а под кнопкой «i» написано, чем два режима отличаются и когда какой удобнее.
- Потоковый набор убран из настроек. Он обещал показывать речь на плашке и этого не делал. Вернётся в 0.4, уже с показом.
0.3.8 Pika
- Программе можно назначить раскладку. В «Исключениях» рядом с каждой программой появился выбор языка: при переходе в неё Keyboop включит именно его. Переключаем на входе и не спорим дальше: если внутри вы сменили язык сами, так и оставим.
0.3.7 Pika
- Keyboop больше не может подвесить ввод. Перехват клавиатуры устроен так, что система ждёт нашего ответа на каждое нажатие, и если мы задумались, встаёт не только клавиатура, но и мышь. Раньше мы в такой ситуации бесконечно включались обратно и попадали в тот же капкан снова. Теперь после трёх срывов за минуту Keyboop снимает перехват сам и честно пишет об этом в меню, а через пять минут пробует вернуться: лучше временно не работать, чем держать компьютер в заложниках.
- Движок научился оживать сам. Если перехват умирал уже после запуска (отозвали и вернули доступ, система его закрыла), приложение молча переставало работать до ручного перезапуска, и догадаться об этом было нельзя. Теперь оно замечает и поднимается заново, с нарастающими паузами и потолком, чтобы не долбиться в закрытую дверь.
- Правка на лету больше не выключается на весь день. Одной случайной заминки системы хватало, чтобы отключить самый аккуратный способ замены до перезапуска. Теперь это пауза на три минуты, а насовсем только если срывы идут раз за разом.
- Автозамена сокращений теперь уважает исключения. Раньше сниппет разворачивался даже там, где Keyboop сознательно не трогает ничего: в терминале, в видеоредакторах. Системные настройки и поиск Spotlight добавлены в исключения по умолчанию, в первых вводят пароли, во втором наша замена промахивалась на символ из-за подсказок поиска. Обе записи видны в списке, их можно убрать.
- Модель распознавания речи проверяется по контрольной сумме. Раньше скачанный архив принимался на веру: оборванная загрузка или сбой на зеркале прошли бы насквозь, прямо в распаковку.
0.3.6 Pika
- Приглушение звука на время диктовки стало плавным: громкость съезжает вниз по мягкой кривой и так же мягко возвращается, без щелчка в начале и в конце. Уровень теперь задаётся ползунком, а не выбором из нескольких значений, потому что на слух его подбирают, а не выбирают.
- Whisper перестал подписывать вашу речь чужими титрами. На тишине и шуме он иногда выдавал обрывки из обучающих данных, вроде «Субтитры создавал…» или «Продолжение следует», и это уезжало прямо в текст. Теперь такие фразы отсекаются, но только когда стоят отдельным предложением: живую речь мы не режем, даже если вы правда сказали «спасибо за просмотр».
- Отменённую по Escape диктовку можно всё-таки сохранять. В поле по-прежнему не вставляется ничего, но текст распознаётся и ложится в историю, откуда его можно забрать. Выключено по умолчанию: Escape означает «не надо», и сохранять вопреки этому без вашего согласия мы не станем. Плашка «Распознаю» при этом не показывается: вы нажали отмену, и мелькать на экране после этого нечему.
- Потоковый набор переехал в бета-канал. Фича экспериментальная, и её место у тех, кто сам включил «Ставить бета-версии» и готов встретить свежую ошибку раньше остальных. Ваш выбор сохранён: включите бета-канал, и настройка вернётся на место.
0.3.5 Pika
- Кнопки в уведомлении об обновлении наконец нажимаются. Работал только крестик, поэтому обновиться из плашки было нельзя вовсе: у безрамочной кнопки macOS считает зону нажатия по нарисованному тексту, а не по всей цветной пилюле, и клик рядом с буквами уходил в пустоту. Теперь ловится вся площадь кнопки.
- Сама плашка стала аккуратнее: кнопки ниже и у́же, поля ровные со всех сторон, ширина подстраивается под текст, а не прибита к одной цифре. Раньше правая кнопка упиралась в край, а на английском справа зияла пустота.
- В меню «История голосового набора» встала выше «Скопировать последнюю диктовку».
0.3.4 Pika
- Починено ручное переключение слова у тех, кто назначил диктовке сочетание из двух модификаторов, например ⌥⌘. Оно переставало работать полностью: разбор хоткея конверсии до него просто не доходил. Спасибо @denis_kuprienko за точный отчёт, по нему это нашлось за минуту.
- Пока вы диктуете, звук можно приглушать. Музыка и видео перестают перекрикивать, а после диктовки громкость возвращается на прежнее место. Насколько убавлять, выбираете сами, вплоть до полной тишины. Если вы сами покрутите громкость во время диктовки, мы не станем спорить и оставим ваше значение. Выключено по умолчанию, включается в настройках голоса.
- Потоковый набор перестал молчать. Он показывает распознанное прямо на плашке «Слушаю», пока вы говорите, а в документ текст по-прежнему попадает один раз, в конце. Печатать по ходу речи мы намеренно не стали: модель переписывает уже сказанное, и в вашем тексте это выглядело бы как буквы, которые сами себя стирают. Заодно настройка теперь честно пишет, что ей нужен движок Parakeet: раньше на другом движке тумблер включался и не делал ничего.
- Обновление стало на одно нажатие короче. Раньше в уведомлении надо было нажать «Обновить», а потом ещё раз то же самое в отдельном окне. Теперь любая из двух кнопок ставит версию и перезапускает приложение сразу. Правая заодно включает автоматические обновления, чтобы это уведомление больше не появлялось.
0.3.3 Pika
- «Скопировать последнюю диктовку» теперь появляется в меню, только когда копировать действительно есть что. Пункт брал текст из истории диктовок, другого источника у него нет, поэтому при выключенной истории он был мёртвым, а после истечения срока хранения обещал то, чего уже не существует. Теперь он просто исчезает.
- Срок хранения истории перестал умалчивать о последствиях: под ним написано, что вместе с записями пропадает и копирование последней диктовки из меню.
- Первая диктовка после смены движка в настройках больше не теряется. Parakeet при первом запуске готовит модель под нейродвижок Mac, и это занимает больше полуминуты, а ждали мы пятнадцать секунд и выбрасывали готовый результат. Теперь новый движок прогревается сразу при выборе, а ожидание считается честно.
- В форме «Сообщить о проблеме» появился второй способ отправки, через Telegram. Отчёт сохраняется файлом, открывается чат с ботом, дальше вы отправляете сами. Видно ровно то, что уходит, и ничего не уходит без вашего участия. Прежняя кнопка осталась на месте.
- Keyboop больше не трогает текст в собственных окнах. Раньше он обрабатывал форму отзыва и настройки как любое чужое приложение: копил слово и на границе мог его «починить», стерев набранное. Отсюда и жалобы, что в форме обратной связи не видно, что печатаешь.
- Появилось исправление двух заглавных подряд: «КОгда» становится «Когда». Так выходит, когда Shift отпущен на миг позже, чем нажата вторая буква. Слова целиком заглавными, вроде ГОСТ и USB, не трогаются. Выключено по умолчанию, включается в настройках переключения: это правка самого текста, а не раскладки.
- Имя версии теперь видно везде, где показан её номер: в меню, внизу списка настроек и в «О программе».
- Меню в строке меню обновляется в момент открытия. Раньше список микрофонов и предупреждения о неполадках показывали состояние на момент последней смены раскладки.
0.3.2 Pika
- В меню появился пункт «Скопировать последнюю диктовку». Раньше за последней расшифровкой приходилось открывать окно истории, теперь она уезжает в буфер обмена одним нажатием. Если на историю поставлен пароль, он спросится и здесь: отдавать последнюю фразу мимо пароля было бы странно.
- Меню перебрано. Язык распознавания уехал в настройки, где он и так был, «Проверить обновления» и «Сообщить о проблеме» встали рядом внизу, и у каждого пункта теперь свой значок.
- Окно настроек больше не разворачивается на весь экран. Зелёная кнопка вместо этого подгоняет его по высоте экрана, что для длинного списка настроек куда полезнее.
- Настройка языка распознавания перестала молчать о подвохе. Если выбрать конкретный язык, речь на другом распознаётся заметно хуже, а иногда не распознаётся совсем. Теперь это написано прямо под настройкой, а «Авто» честно назван тем, что понимает смешанную речь.
- Обновления проверяются раз в два часа вместо раза в сутки. И если с обновлением что-то пойдёт не так, теперь это можно разобрать: приложение записывает в свой лог, что именно ответил сервер обновлений. Раньше там было пусто, и на жалобу «у меня не обновляется» ответить было нечем.
- У версий появились имена. Текущее видно в шапке меню, меняться оно будет раз в десяток версий.
0.3.1 Pika
- Язык больше не переключается сам после первой заглавной буквы. Если мгновенная смена языка висела на Shift, могло получаться «Cнова» вместо «Снова»: первая буква в одной раскладке, остальные в другой. Причина не в тексте, а в том, что macOS иногда прячет от программ нажатия клавиш (это защита полей ввода, и её умеет залипать чужой процесс). Модификаторы при этом видны, обычные клавиши нет, и мы принимали «Shift нажали и отпустили, а между ними ничего» за осознанный жест, хотя между ними была заглавная буква. Теперь, когда клавиши от нас скрыты, жесты по модификаторам просто молчат.
- Заодно Shift больше нельзя назначить на мгновенную смену языка, а у кого он уже стоял, функция выключена. Shift нажимают перед каждой заглавной, и держать на нём переключение языка означает подписаться на ложные срабатывания.
- Хоткей диктовки наконец принимает сочетания из нескольких клавиш. Раньше при попытке задать ⌃⌥ записывалась только одна из них, а кнопка «Назначить» оставалась серой. Caps Lock через HyperKey теперь тоже подходит. Спасибо за скринкаст, по нему это нашлось за минуту.
- Отправка по Enter стала безопаснее. Мы доделывали слишком много работы прямо в момент нажатия, и в худших случаях система за это могла на время отключить нас от клавиатуры, теряя набранное. Лишнее убрано в сторону.
- Мелочи: в отчёт об ошибке больше не сыплются десятки одинаковых строк про смену микрофона, а почта для связи теперь одна и та же везде, hi@keyboop.com.
0.3.0 Pika
- Настройки наконец разложены по полкам. Раньше в голосовом наборе было двенадцать разных строк подряд в одной куче: микрофон стоял в начале, а его же прогрев где-то в середине, между чужими пунктами. Теперь всё собрано по смыслу, а параметры, которые нужны не всем, прячутся под своими переключателями и выезжают, только когда вы их включаете.
- У пунктов появились подсказки. Кружок с буквой «i» рядом с настройкой открывает нормальное объяснение: что именно произойдёт, чем это грозит и когда это стоит включать. Раньше объяснение обрывалось на середине, потому что не влезало по ширине.
- Светлая тема перестала выглядеть вывернутой наизнанку. У macOS страница светлая, а блоки настроек чуть темнее; у нас было ровно наоборот. В тёмной теме всё совпадало, поэтому мы это годами не замечали. Спасибо тому, кто показал скриншотом.
- Окно настроек стало шире, а подписи под пунктами перестали обрезаться на полуслове.
- Диктовка научилась подстраиваться под то, куда вы пишете. Можно не начинать с заглавной буквы, не ставить точку в конце и отправлять сообщение сразу после диктовки. Отправку можно повесить на Enter или на ⌘Enter, потому что в разных программах это разные клавиши.
- И починка, которую поймал Стас (привет!). Если выделить слово мышью и нажать хоткей, соседнее слово могло исчезнуть вместе с пробелом. Причина оказалась обидной: после клика мы забывали, что выделение вообще есть, и стирали ровно столько символов, сколько было в выделенном слове, но начиная не оттуда.
- Плюс мелочи: звук записи больше не пропадает при быстром наборе, микрофон следует за тем, что выбрано в системе (AirPods наконец подхватываются), а логотип не появляется в строке меню, если вы его выключили.
0.2.70
- Это обновление почти целиком собрано по вашим письмам. Я разобрал всё, что пришло через форму отзыва, сгруппировал по симптомам и починил то, что чинилось. Ниже честно: что было сломано и как это выглядело с вашей стороны.
- Самое неприятное. У части из вас переставал работать пробел, а иногда и другие клавиши, причём сразу во всех программах, и лечилось это только выходом из Keyboop. Виноват был Keyboop: он перехватывал отпускание клавиши, нажатие которой не трогал, и система оставалась в уверенности, что клавиша всё ещё зажата. Теперь правило жёсткое: перехватили нажатие, значит перехватим и отпускание. Не перехватили, значит не трогаем ни то, ни другое.
- Мгновенная смена языка работала в одну сторону. Уходило в русский и обратно не возвращалось. Оказалось, латинскую раскладку я искал по признаку «английская», а у ABC-AZERTY, QWERTZ, испанской, чешской и польской первым языком записан вовсе не английский. Теперь ищем по способности набирать латиницу, а не по названию.
- Назначение своей комбинации переехало в отдельное окно. Видно, что вы нажимаете, прямо в момент нажатия. Если сочетание занято системой или уже занято другой функцией Keyboop, окно скажет об этом на месте, а не выкинет поверх себя предупреждение, которое перекрывало всё и обрывало запись. И оно больше не закрывается само, пока вы перебираете варианты.
- Хоткей из одного модификатора больше не срабатывает внутри чужого сочетания. Кто работает с Windows-машиной по удалённому доступу и жмёт там Alt+Shift, у того Keyboop заодно менял язык на своей стороне.
- Автообновления чинились. После первой скачанной версии проверки прекращались совсем, то есть приложение тихо застревало на ней навсегда. Если вы давно не видели предложения обновиться, дело было в этом.
- Keyboop научился признаваться, что не работает. Раньше он мог молчать: система забрала клавиатуру в защищённый режим, доступ к клавиатуре отозвали, микрофон не отдаёт звук. Снаружи это выглядело как «просто перестало работать». Теперь причина написана прямо в меню.
- Ещё по мелочи: окно «Что нового» больше не падает при втором открытии, а форма отзыва теперь показывает, что письмо ушло, и ждёт, пока вы сами её закроете, а не исчезает через секунду.
0.2.69
- Ваши предложения доезжают до сборки быстрее, чем вы думаете: почти всё в этом обновлении пришло из ваших писем. Пишете — я беру в работу сразу, а не «когда-нибудь в бэклоге».
- Появились «Спорные слова» — раздел для тех случаев, где Keyboop честно не может угадать. Есть слова, которые набираются одними и теми же клавишами и существуют в обоих языках: «vs» и «мы», «here» и «руку», «gj» и «по». Кто-то пишет «versus» каждый день, кто-то — «мы» в каждом втором предложении, и правильного ответа на всех не существует. Теперь у каждой такой пары три положения: оставить английское, оставить русское или (по умолчанию) не вмешиваться и решать по контексту. Настройки → Исключения → «Спорные слова».
- В строке меню теперь может жить флаг языка — как в Punto. Тем, кто привык коситься в правый верхний угол, так быстрее: Настройки → Общие → значок в строке меню → «Флаг языка».
- В голосовом наборе перестали вываливать на вас весь список моделей. Сверху — две, которыми пользуется большинство: Parakeet за скорость и Whisper Turbo за пунктуацию. Остальные никуда не делись, они за ссылкой «Другие модели».
- В «О программе» комбинации клавиш перестали врать. Раньше там был зашит текст с сочетаниями по умолчанию — и если вы их поменяли, описание жило своей жизнью. Теперь показывает ваши.
- Мелочь про мгновенное переключение языка: пока сама функция выключена, комбинацию к ней больше нельзя выбрать. Незачем настраивать то, что не работает.
- И последнее, совсем коротко. Несколько человек спросили, как автора можно поблагодарить. Я подумал — почему бы и нет, и сделал страницу: keyboop.com/tips. Приложение было и остаётся бесплатным, платных функций там не появится; это просто способ сказать «работает, спасибо». В настройках внизу теперь есть тихая ссылка туда же.
0.2.68
- Исправление на лету стало по-настоящему мгновенным. Раньше слово чинилось с небольшой задержкой, и при быстром наборе могло порваться: «yнормаmyj» вместо «нормально». Мы провели исследование и нашли решение — теперь замена происходит ровно в тот момент, когда вы нажимаете клавишу, и ваш следующий символ физически не может вклиниться в неё. Не «стало реже», а «больше не может произойти». Заодно раскладка чинится на лету снова по умолчанию — ради этого всё и переделывалось.
- Своя комбинация клавиш наконец назначается. Некоторые из вас писали, что нажимаете «назначить свою» — и ничего не происходит. Виноваты были мы: Keyboop перехватывал нажатие раньше, чем оно доходило до настроек, и вместо записи запускал старое действие. Теперь на время записи он вежливо отходит в сторону.
- И больше нельзя случайно занять ⌘C. Раньше это удавалось — после чего каждое копирование запускало перевод, а перевод снова просил копию: получался круг с бесконечным звуком. Системные сочетания (⌘C, ⌘V, ⌘Z и родня) теперь не принимаются, а Keyboop объясняет, почему и что нажать вместо них. Сам круг мы тоже разорвали — на уровне механики, для любых хоткеев.
- В звуках переключения появился свой — короткий двойной, сухой, без звона. По умолчанию всё как было (системный Pop), но если он вам примелькался, наш лежит первым в списке: Настройки → Общие → звук.
- Первый запуск больше не спорит сам с собой: окно приветствия не выскакивает поверх системного запроса доступа. Сначала знакомство, доступ — по кнопке, когда вы к нему готовы.
- «Вы» наконец чинится. Слово «ds» мы пропускали, потому что в английском словаре есть такое сокращение — а это, между прочим, основное вежливое обращение в русском (спасибо тому, кто написал). Заодно починили «при». Правило теперь простое: частое русское слово важнее нишевой английской аббревиатуры, а если вам нужно наоборот — добавьте слово в исключения, они всегда сильнее наших списков.
- В форме обратной связи подписали, зачем оставлять телеграм: без него письмо прочитаю, но ответить будет некуда. С ним — напишу лично, что починил.
- Мелочь в настройках: строка «Назначить свою…» теперь на месте всегда, даже когда своя комбинация уже назначена (раньше было непонятно, куда нажать, чтобы сменить).
0.2.67
- Срочная починка: у части людей приложение вообще не запускалось. Значок не появлялся, окно не открывалось, двойной клик будто уходил в пустоту — и никакого сообщения об ошибке. Виноваты мы: библиотека распознавания собралась с расчётом на самую свежую macOS и на выходе требовала деталь, которой в macOS 14 (Sonoma) просто нет. Система молча закрывала приложение ещё до первой строки нашего кода — поэтому и сказать было нечему. Пересобрали правильно: теперь запускается на Sonoma, как и обещали.
- Спасибо тем, кто не поленился написать и прислать вывод из Терминала — по одной строчке ошибки нашли причину за полчаса. Без вас искали бы неделю.
0.2.66
- День большой охоты. Со вчерашнего вечера переключение могло фантомить: слово перепечатывалось само в себя со звуком, а иногда конверсия просто молчала. Мы разобрали это до винтиков — и нашли не свой баг, а устройство macOS: перевод нажатия, который система кладёт в событие, и перевод, которым рисует буквы само приложение, — два разных перевода на двух разных часах. После смены раскладки первый отстаёт на секунды. Теперь Keyboop не спрашивает систему вовсе: раскладку он помнит сам и переводит клавиши так же, как это делает приложение на экране. По нашим тестам фантомы ушли.
- «Чинить на лету» стало опцией, а не умолчанием. Перепечатка слова прямо под быстрые пальцы усиливала любую мелкую рассинхронизацию до слышимой. Конверсия по пробелу и Enter — как работала, так и работает; кому нравится мид-слово — тумблер на месте, и он теперь срабатывает на паузе набора, а не наперегонки с вами.
- Мгновенное переключение языка (бета) довели до ума: 🌐 действительно отключает системное действие на время режима (и честно возвращает при выключении или выходе), а Caps Lock переключает язык, не зажигая капс — старым способом это было невозможно в принципе, пришлось спуститься на уровень ниже.
- Страховка от чужих глюков: если что-то в системе держит «безопасный ввод пароля» (бывает — браузер или диалог не отпускают), Keyboop слеп не по своей воле. Теперь он хотя бы записывает в служебный журнал, кто именно держал и сколько, — по «Сообщить о проблеме…» мы это увидим.
- Диалоги обновлений заговорили по-русски. «You're up to date» в русском интерфейсе смущало — теперь «У вас последняя версия», как и положено.
0.2.65
- Мгновенная смена языка — по любой удобной комбинации (бета). Системное переключение раскладки всегда идёт с задержкой: macOS ждёт, не окажется ли это началом комбинации. Мы не ждём — меняем язык сразу, как только клавишу отпустили. Включается в Настройках → Переключение, по умолчанию выключено. Комбинацию выбираете сами: 🌐 (на новых маках), ⌘Space, ⌃Space, Caps Lock — или записываете свою.
- Ничего не подерётся за одно нажатие. Если выбранная комбинация уже занята в самой системе (например, ⌘Space открывает Spotlight), мы честно предупредим, что именно перестанет работать, — и перехватим клавишу так, что второе действие не сработает. Выключите тумблер — и всё вернётся как было: системные настройки мы не трогаем вообще. А если комбинация уже занята другой функцией Keyboop, просто не дадим её назначить.
- Клавишу 🌐 можно повесить и на ручное исправление слова — она появилась в списке горячих клавиш вместе с привычными ⌥⇧ и двойным Shift.
- Мелочь, которая раздражала: при выключенном авто-переключении тумблер «чинить на лету» теперь тоже гаснет и становится недоступным — он ведь всё равно не работал бы. Включите авто обратно — вернётся ровно таким, каким вы его оставили.
0.2.64
- Работа над ошибками. Честно: в такой ответственный день мы немного перемудрили — в сегодняшних версиях переключение раскладки могло чудить: лишний звук конверсии на уже правильном слове, а местами слово не переключалось вовсе. Простите. Ловили весь вечер — нашли гонку в обработке раскладки (кэш обновлялся по запаздывающему системному уведомлению, а мы переключаем раскладку при каждой конверсии), закрыли, и по нашим тестам всё снова стабильно.
- Чтобы такое больше не тянулось вечерами, движок теперь ведёт подробный служебный дневник своих решений: кто сконвертировал, кто промолчал и почему. Ни текста, ни содержимого — только события. Если что-то ещё заметите, «Сообщить о проблеме…» привезёт разгадку вместе с жалобой.
- Модели распознавания теперь качаются с нашего зеркала keyboop.com — сервер в Москве, так что «застряло на 2%» уходит в историю. Не получилось с зеркала — сами тихо переключимся на прежний источник. Целостность файлов проверяется как и раньше.
- Значок в строке меню — теперь по-настоящему: выбор с живым превью (фирменный знак / клавиатура / совсем скрыть) плюс отдельная галка «показывать язык (RU/EN)». Любая комбинация. Спрятали всё — настройки откроются повторным запуском Keyboop из «Программ».
- Пояснили перевод: он заменяет ВАШ набранный текст в поле ввода — в письме, чате, заметке. Текст на чужой веб-странице ему заменить негде — для этого есть переводчик браузера.
0.2.63
- Keyboop научился жить на компьютерах Intel и на более старых версиях macOS. Раньше приложение требовало Mac на Apple Silicon и macOS 14 — и у части людей просто не запускалось с сухим «эта версия не подходит». Теперь на Intel-маках (от macOS 13) работает переключение раскладки, автозамена и голосовой набор через Whisper. Единственное, чего там нет, — движок Parakeet: он живёт на нейропроцессоре Apple, которого в Intel-маках не существует. Распознавание на Intel идёт на обычном процессоре: медленнее и чуть теплее, поэтому в настройках подскажем выбрать модель полегче.
- Значок в строке меню теперь настраивается. В «Настройки → Общие» появился выбор: фирменный знак Keyboop, буква K, только индикатор языка (RU/EN), классическая клавиатура — или совсем спрятать значок, если он мешает. Спрятали? Настройки всё равно под рукой: просто запустите Keyboop ещё раз из папки «Программы», и работающая копия сама откроет окно настроек.
0.2.62
- Диктовка снова стартует мгновенно — всегда. Причин у «задержки в полсекунды-секунду» оказалось две. Первая: зажав хоткей, Keyboop честно ждал, пока крупная модель распознавания поднимется с диска (у Large V3 Turbo — около секунды), и только потом включал микрофон. Теперь запись начинается сразу, а модель догружается параллельно и успевает, пока ты говоришь.
- Вторая причина тоньше: крупная модель сама создавала то давление на память, по которому мы её же и выгружали — карусель «выгрузили-загрузили» каждые полчаса, и каждая первая диктовка после неё платила за перезагрузку. Теперь при активной работе модель остаётся в памяти; выгружаем её только в простое или когда системе действительно критично.
- Сторож распознавания научился учитывать холодную загрузку модели — долгая первая загрузка больше не может быть принята за зависание. И в образе установки теперь первой строкой написаны требования (Apple Silicon, macOS 14+) — чтобы никаких сюрпризов после скачивания.
0.2.61
- Сегодня я впервые рассказал о Keyboop большой аудитории — и быстро понял, что хочу слышать вас, а не догадываться. Поэтому в меню у часов появилось «Сообщить о проблеме…» (та же форма — за кнопкой в «О программе»): пишешь, что сломалось, что бесит или чего не хватает, по желанию оставляешь контакт для ответа. Галочка прикладывает диагностику — версия, настройки, служебный лог; текста ввода и речи там нет, и всё это можно посмотреть глазами до отправки. Мне такие письма прилетают мгновенно — сегодняшние фиксы родились ровно из ваших сообщений. Без сети — фолбэк на почту. Делитесь опытом: Keyboop растёт на ваших отзывах, а не на фокус-группах.
- И первая идея уже приехала из комментариев: на историю диктовок теперь можно повесить пароль. По умолчанию выключено; включается в Настройках → Голосовой набор, рядом с историей. Пароль спрашивается при открытии окна истории — это защита от любопытных глаз за твоим же Mac (на диске история и так зашифрована). Восстановления пароля нет — есть честная кнопка «стереть историю и снять пароль». Так и задумано.
0.2.60
- Переписали захват микрофона. Самая коварная беда звучала так: «выбран внешний микрофон, подключены AirPods — и тишина»: macOS втихую открывала не то устройство, а формат записи «протухал» при смене наушников. Теперь Keyboop прибивает запись к выбранному микрофону напрямую и сам объявляет нужный формат — капризные связки устройств больше не превращаются в молчание, а старт диктовки стал быстрее.
- Если микрофон всё же отдаёт тишину (устройство уснуло, система приглушила) — Keyboop больше не молчит в ответ: сам пробует системный вход, затем встроенный микрофон, а если не помогло — честно пишет на экране, что случилось и куда посмотреть. Раньше это выглядело как «меня не слышит», без объяснений.
- «Распознаю» больше не может зависнуть навечно. У распознавания появился сторож: если движок застрял, плашка убирается, Keyboop сухо признаётся «распознавание застряло — бросил» и готов к новой попытке. Заодно выход из приложения больше не блокируется зависшим распознаванием — перезагружать Mac не придётся (спасибо за репорт!).
- Поля паролей неприкосновенны. Если во время диктовки фокус вдруг украл системный диалог с паролем, надиктованное больше не печатается в него — текст сохраняется в истории, а на экране появляется подсказка. И сама «связка ключей» больше никогда не спросит пароль от имени Keyboop: ключ истории обслуживается без диалогов.
- Переключение раскладки стало устойчивее под нагрузкой: перехват клавиш заметно облегчили (тяжёлая работа ушла с горячего пути в фон), так что системе реже хочется его отключать в моменты, когда Mac занят.
- Живое исправление — чинить слово прямо во время набора, не дожидаясь пробела — теперь включено по умолчанию. Не понравится — выключается в настройках одним тумблером.
- Мелочи со вкусом: в меню у часов теперь видна версия приложения; новости переехали в телеграм-канал @keyboop (кнопка — в «О программе»); знакомство при первом запуске научилось рассказывать про голосовой набор и показывает настоящие хоткеи.
0.2.59
- Починили вчерашнюю оплошность. В 0.2.58 мы научили Keyboop отдавать полтора гигабайта памяти после простоя — но поставили таймер на 5 минут, и при обычном ритме «диктовка каждые полчаса» модель перегружалась почти на каждую сессию: диктовка вызывалась заметно дольше. Теперь по-умному: модель выгружается тогда, когда системе реально не хватает памяти (macOS сама сообщает об этом), плюс страховка на действительно долгий простой — час, а не пять минут. И память отдаём, и скорость не страдает.
- Убрали редкий вылет при выходе из приложения. Если закрыть Keyboop сразу после диктовки (пока модель ещё в памяти), внутренняя проверка движка распознавания могла уронить приложение прямо на выходе. Теперь модель аккуратно освобождается перед завершением — и проверке не на что ругаться.
0.2.58
- Keyboop перестал держать полтора гигабайта памяти просто так. Модель распознавания речи загружалась один раз и оставалась в памяти до перезапуска приложения — фоновая утилита в строке меню занимала под два гигабайта и давила на память всей системы, отчего подтормаживал не только Keyboop. Теперь модель выгружается после пяти минут простоя и подгружается снова, когда понадобится: файл остаётся в кэше системы, так что задержки почти не видно. Если памяти много и дороже каждая миллисекунда — поведение настраивается.
- Появился счётчик надиктованного — рядом с «Расколдовано кракозябр» в разделе «О программе». Видно, сколько символов и слов вы наговорили голосом за всё время. Чисто для удовольствия.
- Настройки стали спокойнее внутри. В macOS 26 системные переключатели и списки переехали на SwiftUI, и каждая перерисовка раздела теперь обходится дороже. Мы убрали лишние: раздел «Голос» больше не пересобирается при каждом возврате к окну, а только когда на диске реально что-то изменилось. Заодно это снижает риск редких вылетов, которые мы сейчас расследуем.
- Добавили тихую диагностику: если система на мгновение отключает наш перехват клавиатуры под нагрузкой (это её штатное поведение, когда всё занято), теперь это видно в логе. Так мы наконец поймаем редкий случай «раскладка не переключилась, хотя должна была».
0.2.57
- Настройки теперь честнее показывают, какие модели распознавания реально лежат на диске. Если удалить файл модели вручную (через Finder, чтобы освободить место), Keyboop раньше мог продолжать показывать «Установлена» — статус строился один раз и не пересчитывался. Теперь он освежается при каждом открытии окна настроек и при возврате к нему, так что «Установлена / Скачать» всегда соответствует реальности. Сама диктовка и раньше не путалась — честно проверяла файл и предлагала скачать, если его нет; подтянулась именно надпись.
0.2.56
- Enter больше не обгоняет исправление. Раньше было так: набрал «nbgf», нажал Enter — мессенджер отправляет сообщение мгновенно, а исправление приходит на долю секунды позже, в уже пустую строку. В чат улетала абракадабра, а исправленное слово сиротливо оставалось в поле ввода (спасибо за скриншот, Женя!). Теперь Keyboop придерживает Enter на пару десятых, чинит слово прямо в строке — и отпускает. В чат уходит уже «типа», а не «nbgf». Работает и в редакторах: сначала починка, потом перенос строки. Если слово в порядке — Enter проходит как обычно, без малейшей задержки.
0.2.55
- Whisper перестал глотать знаки препинания. Прошлая диагностика (0.2.52) показала: примерно каждая третья диктовка на Whisper приходила сплошняком, без единого знака — причём аудио чистое, так что дело не в тихом хвосте, как думали сперва. Whisper — авторегрессионная модель и на «холодном» старте иногда залипает в режиме без пунктуации. Дали ему короткую натуральную фразу-затравку со знаками (вы её не видите — она лишь настраивает модель на «пиши со знаками»), подобранную под язык распознавания. Знаки вернулись. Parakeet эта правка не касается — у него с пунктуацией и так был порядок.
0.2.54
- Починили периодические подтормаживания. В прошлой версии (добавили переключение микрофона на лету) в путь старта диктовки просочилась тяжёлая работа с аудио-устройствами, а реакция на смену входа могла зациклиться — отсюда «диктовка началась не сразу» и редкие задержки, порой заметные и на переключении раскладки. Убрали тяжёлую часть с горячего пути (теперь она в фоне) и поставили предохранитель от зацикливания. Снова шустро.
0.2.53
- Диктовка больше не глохнет при подключении наушников. Воткнул EarPods или подключил гарнитуру — macOS переключает микрофон, а запись раньше молча оставалась на старом устройстве (или вовсе останавливалась) — получалась тишина. Теперь Keyboop замечает смену входа: в простое — тихо пересаживается на новое устройство, а прямо во время записи — переключается на лету, не теряя уже надиктованное. В лог теперь пишется, с какого микрофона идёт запись.
- Про значок «Консоль» в Доке: кнопка «Системный лог» открывает лог-файл в штатной macOS-программе «Консоль» — это нормально, не вирус. Подписали это прямо в настройках, чтобы не пугало.
0.2.52
- Разбираемся, почему диктовка иногда приходит «сплошняком», без единого знака препинания (бывает на обеих моделях). Изучили причину по источникам (у Whisper это авторегрессионный «режим без пунктуации» на тихих хвостах, у Parakeet — своя механика) и добавили тихую диагностику в лог — только счётчики, без текста, — чтобы точно поймать, когда и почему это случается. Само лечение будет следующим шагом.
0.2.51
- В настройках голосового набора честно объяснили разницу между движками распознавания. Parakeet (по умолчанию) — самый быстрый: текст появляется почти сразу, работает на Neural Engine, но пунктуацию иногда ставит вольно. Whisper Turbo — аккуратнее с пунктуацией и связностью, но на 1–4 секунды медленнее. Выбирай по вкусу: скорость или чистота текста. (Мы проверили это по источникам — разница реальная и упирается в архитектуру движков.)
0.2.50
- Технический лог больше не разрастается без предела. Keyboop ведёт локальный служебный лог (без текста ввода, речи и перевода — только счётчики и события), и за месяцы использования файл мог раздуться и занимать место на диске. Теперь он держится в пределах ~1 МБ: при переполнении самые старые строки удаляются, а свежие (которые и нужны, если что-то чинить) остаются. Уже раздувшийся лог подчистится сам при первом запуске этой версии.
0.2.49
- При старте вместе с системой (автозагрузка) Keyboop больше не открывает окно настроек — тихо садится в строку меню, как и положено фоновому помощнику. А если запустить приложение вручную (из Finder или Spotlight) — настройки откроются: так до них можно добраться, даже если потерял значок в тесной строке меню. Различаем по тому, КАК система запустила приложение (логин или твой двойной клик), а не по флагу автозапуска.
0.2.48
- «не» теперь чинится даже после латинского слова. Раньше после английского слова или бренда «yt» бережно оставляли как есть — вдруг это «yt» = YouTube. Но «не» — одно из самых частых слов в русском, и «instagram не работает», набранное в неверной раскладке, застревало как «instagram yt работает». Теперь «yt» всегда превращается в «не». (Если ты правда имел в виду английское «yt» — верни хоткеем.)
0.2.47
- Починили зависание при удалении модели распознавания. В Настройки → Голосовой набор нажатие на корзину у модели могло намертво подвесить окно — вплоть до «Завершить принудительно». Причина: тяжёлая работа (освобождение модели и удаление ~465 МБ файлов) шла в главном потоке и морозила интерфейс. Теперь удаление уходит в фон, окно остаётся живым, а кнопка на время показывает «Удаляю…».
0.2.46
- Языковой пакет для перевода теперь скачивается прямо в приложении. Раньше надо было уйти в Системные настройки и догадаться, куда там нажать, — совсем неочевидно. Теперь в Настройки → Перевод есть кнопка «Скачать»: пакет RU↔EN загрузится на месте (система разок спросит подтверждение), окно закроется само.
- Нажал перевод, а пакет ещё не установлен — теперь всплывает подсказка с кнопкой «Скачать» прямо в ней. Один тап — и перевод настроен, без похода в дебри системных настроек. И, разумеется, никакой «тихой» конвертации раскладки вместо перевода.
- Кнопка «Системный лог» переехала из «Голосового набора» в «О программе», к «Написать разработчику». Лог всегда был про всё приложение, а не только про диктовку, — теперь он там, где его логично искать.
- Всплывающие плашки (уведомление об обновлении, «запомнил слово», подсказки) больше не сливаются в светлой теме системы. Фон у них всегда тёмный, а цвет текста по ошибке брался из системной темы — в светлой выходил тёмным по тёмному, еле читаемо. Теперь плашки читаются при любой теме macOS.
0.2.45
- Хоткей на клавише «`» теперь срабатывает на любой клавиатуре — и ANSI (US), и ISO (европейские/российские). На ISO эта клавиша физически в другом месте и с другим кодом: раньше из-за этого хоткей мог не сработать, а вместо тильды набирался «§». Теперь распознаём обе.
- Перевод: если для него не установлен языковой пакет, честно подсказываем «нужен языковой пакет → Настройки → Перевод», а не молчим. И звук подтверждения теперь звучит только когда перевод реально случился.
0.2.44
- Плашка «Слушаю» теперь появляется у текстового курсора, а не у курсора мыши — в нативных полях (Notes, Mail, Pages, поля Safari). В web- и Electron-приложениях (Chrome, VS Code, Slack), где macOS не отдаёт позицию курсора, она остаётся у мыши. Заодно плашка стала по ширине текста, а не наугад, с живым waveform по громкости голоса.
- Перевод теперь описан в онбординге: как это работает (выдели текст → нажми хоткей), можно попробовать прямо в песочнице. И честно показано, что нужен одноразовый языковой пакет — его ставит система, кнопкой; без него переводить нечем.
- Подпись хоткея больше не путает: клавиша «`» теперь так и подписана, а не буквой «ё» (её на Mac-клавиатуре там нет — она на «\»). Раньше при записи на русской раскладке подпись бралась не с той стороны.
- Запускаешь Keyboop, когда он уже работает — просто открываются настройки (и иконка появляется в Доке, чтобы вернуться в приложение, если в строке меню тесно), а не сообщение «уже запущено». Закрыл окно — иконка из Дока уходит.
- Кнопку «Показать лог» переименовали в «Системный лог» — чтобы не путать её с историей диктовки.
- В строке меню во время диктовки — наш значок-клавиша с живым waveform по громкости голоса, вместо микрофона с точкой.
- Провели полный аудит безопасности и подтянули приватность: ключ шифрования истории диктовки переехал в Keychain (а не в файле рядом), скачанные модели проверяются по контрольной сумме, а в полях пароля Keyboop не читает выделение. Ничего о тебе по-прежнему не покидает Mac.
0.2.43
- Перестали превращать окончание слова в кашу. Если поправить хвост слова (стереть пару букв, набрать заново), а в этот момент мигнёт фокус (уведомление, баннер) — Keyboop больше не «забывает» начало слова и не дёргает раскладку у одного окончания (был баг: «…ть» вдруг становилось «…nm»). Теперь короткие русские окончания (ть, ся, сь, ет) не уезжают в латиницу, а английские слова, набранные на русской раскладке (the, so, no, can…), по-прежнему чинятся.
0.2.42
- Починили «переключилось только окончание». Если набрать слово, поправить опечатку в конце (стереть пару букв и набрать заново) и продолжить — раньше слово могло застрять наполовину в одной раскладке, наполовину в другой («привtn», «приdет»). Теперь Keyboop собирает такие слова целиком: на пробеле он видит всё слово и, если его конверсия даёт настоящее слово из словаря, чинит целиком. Намеренно двуязычные штуки (API-ключ, C++код, x-ray) при этом не трогаются — они не складываются в словарное слово, значит так и задумано.
0.2.41
- Раскладка больше не «залипает» в быстром циклическом переключении. В редких случаях авто-переключение могло войти в петлю и замелькать туда-сюда (RU↔EN) десятки раз в секунду. Добавили предохранитель: как только Keyboop замечает такую осцилляцию, он на пару секунд замораживает авто-переключение и разрывает цикл. Ручное переключение по хоткею работает как обычно.
0.2.40
- Рядом с хоткеем диктовки появилась кнопка «Проверить». Нажми — приложение попросит нажать хоткей и покажет, что реально поймал tap и совпадает ли с тем, что записано в настройках. Помогает понять, почему хоткей «не срабатывает».
0.2.39
- Онбординг теперь сразу рекомендует Parakeet по имени: объясняет, что модель офлайн и не зацикливается на длинных фразах. Кнопка скачивания стала заметнее — акцентный цвет. Просто нажми один раз, дальше всё на твоём Mac.
- Горячая клавиша переключения в режиме «клавиша + модификатор» (например, ⌥`) больше не печатает случайный символ в поле после переключения раскладки.
0.2.38
- Диктовка на длинных текстах больше не зацикливается. Whisper иногда повторял одно слово или фразу много раз подряд — вернули штатный механизм, который такие срывы распознаёт и переписывает. (А движок по умолчанию, Parakeet, этим вообще не страдает — он другой архитектуры.)
- Автозамена: теперь можно выбрать, по каким клавишам разворачивать сокращение — Пробел, Enter, Tab (любая комбинация). Снимешь все галочки — автозамена отключена, так и подписано.
- Диктовка для новых пользователей теперь по умолчанию «переключение»: нажал — начал, нажал ещё — остановил. Кто уже настроил под себя — не трогаем. Поменять можно в Настройки → Голосовой набор.
- Иконка Keyboop теперь появляется в Доке, пока открыты настройки — чтобы вернуться в приложение, даже если в строке меню тесно и нашей иконки не видно.
- Онбординг: системный запрос микрофона больше не выскакивает поверх приветствия — анимацию видно полностью.
- Если запущен Punto Switcher — предупреждаем о конфликте (он тоже переключает раскладку) и предлагаем его закрыть прямо из Keyboop.
- Final Cut: если установлены две версии, теперь в исключения попадают обе (раньше цеплялась только одна).
0.2.37
- Починили редактор автозамены. Кнопка удаления (корзина) больше не прячется за правым краем — всё умещается в окне, без горизонтального скролла. Ячейки теперь редактируются по первому клику (раньше нужен был двойной). Введённое сохраняется при любом действии — по Tab, по клику в другую ячейку, не только по Enter. И добавление строки снизу больше не глючит (текст не пропадает).
0.2.36
- Перестали «переключать» слово, когда правишь опечатку. Если стереть букву внутри слова и допечатать заново, Keyboop больше не дёргает раскладку посреди слова (раньше из-за этого хвост слова мог уехать в чужую раскладку, типа «пройдём» + «ся»→«cz»). Финальная проверка всё равно отрабатывает на пробеле.
- Левый ⌥ и левый ⌃ теперь есть прямо в списке горячих клавиш переключения — выбрал и готово, без «Свой…».
- Дефисные термины: «e-ink», «wi-fi», «t-shirt», «x-ray» и т.п. теперь переключаются целиком (по списку известных терминов). Обычные русские слова через дефис — «из-за», «что-то», «по-русски» — мы по-прежнему не трогаем.
0.2.35
- Починили назначение своей горячей клавиши переключения. Раньше при выборе «Свой…» одиночный модификатор (например левый Option) не записывался — поле «висело» в режиме записи, и любое нажатие воспринималось не так. Теперь нажми и отпусти один модификатор (левый/правый Option, Cmd…) — он и станет переключателем; Esc — отмена записи.
0.2.34
- «tot» теперь переключается в «ещё». Одно из самых частых русских слов раньше застревало латиницей, потому что «tot» — ещё и английское слово (малыш / «tot up»), и мы его берегли. Решили: «ещё» важнее — теперь форсим (если вдруг печатаешь английское «tot» — переключи хоткеем обратно).
0.2.33
- Обучение на отмене больше не пристаёт после каждой отмены. Теперь Keyboop предлагает добавить слово в исключения, только если ты отменял его переключение ТРИ раза (счётчик копится между сессиями и со временем сбрасывается). Одиночные отмены — молча, слово просто не трогается в этой сессии.
0.2.32
- Поправил раскладку слова сам (хоткеем) — следующий пробел больше не перекинет его обратно «не туда». Раньше авто-переключение могло тут же отменить твою ручную правку: исправляешь, жмёшь пробел — а оно снова не туда.
0.2.31
- Раскладка переключается умнее в обе стороны. Чаще ловится «ну» (раньше застревало латиницей как «ye»), английские сокращения с апострофом (i'm, don't, let's, that's, can't…) и английские i/u/a на русской раскладке. По нашему фразовому тесту промахов стало вдвое меньше — и при этом верный текст по-прежнему не трогаем (точность не просела).
0.2.30
- Английский, набранный по ошибке на РУССКОЙ раскладке, теперь переключается заметно лучше: одиночные i/u/a и частые сокращения (idk, tbh, ngl, pls, brb, wtf…). Раньше английский-на-кириллице ловился слабо — теперь в полтора раза меньше промахов, и при этом верный текст по-прежнему не трогаем.
0.2.29
- Частые двухбуквенные слова теперь переключаются даже когда они стоят отдельно или первыми: «да», «но», «на», «по», «от», «он». Раньше такие коротыши чинились только в середине фразы.
0.2.28
- «ща» (разговорное «сейчас») больше не превращается в «of» — добавили в словарь-исключение.
0.2.27
- Всплывающие баннеры (вроде «Запомнил…») теперь закрываются по-человечески: крестик работает, баннер сам уходит через 5 секунд, можно смахнуть вправо или просто кликнуть. И вид аккуратнее — компактный, по ширине текста, логотип слева с ровными полями.
0.2.26
- Две копии Keyboop больше не запустятся одновременно. Раньше вторая копия дралась с первой за каждую клавишу — выходила мешанина (дубли букв, латинские огрызки). Теперь вторая тихо уступает: один зверёк на клавиатуру.
- Появился ЭКСПЕРИМЕНТАЛЬНЫЙ потоковый набор (Настройки → Голос): текст печатается по мере речи, не дожидаясь конца фразы. Очень экспериментально, по умолчанию выключено, нужна отдельная модель.
0.2.25
- Ручное переключение раскладки последнего слова больше не выдаёт мешанину вроде «лоkjrfyj» и не «теряется». Отмена, нажатая пока зверёк дочиняет предыдущее слово, теперь не пропадает, а ждёт своей очереди; а слово, у которого начало уже перескочило в кириллицу, само доводится до конца — без полусырых хвостов.
0.2.24
- Устранено зависание системы при первом нажатии диктовки после старта. Загрузка модели Whisper теперь идёт в фоне — мышь и клавиатура не замерзают пока модель грузится с диска.
0.2.23
- Первый запуск стал тише: теперь Keyboop не выводит несколько уведомлений о доступе к Accessibility подряд. Пока открыт онбординг — он ведёт тебя через все разрешения, дополнительные диалоги не появляются.
0.2.22
- Окно истории диктовки теперь почти непрозрачное по умолчанию (80%) — было слишком «стеклянным». Настраивается правым кликом или длинным удержанием на окне.
- В онбординге появилась подсказка про историю как страховку: если надиктованное не попало куда надо — оно в «Истории» из меню значка, двойной клик скопирует. На help-странице — отдельный Q&A на этот случай.
0.2.21
- Конец «щёлканью» на словах-исключениях. Раньше при наборе слова из словаря/исключений (например «гифки») переключение «на лету» дёргало его на 4-й букве в латиницу, а на границе возвращало обратно. Теперь, пока ты дописываешь слово-исключение, на лету его не трогаем вовсе — никаких метаний туда-сюда.
0.2.20
- Полная ревизия локализации: причесали интерфейс на обоих языках. Места, где у англоязычных пользователей ещё проскакивал русский — диалоги доступа, назначение хоткея, индикатор диктовки «Слушаю…», список хранения истории, описания моделей и тултипы — теперь корректно переключаются RU/EN.
0.2.19
- Автозамена больше не оставляет хвостов: триггер всегда стирается целиком — без «прилипшего» символа в конце и без лишнего «длинного» пробела. Раньше при быстром наборе (и особенно в русской раскладке) стирание гналось с приложением: триггер мог остаться, а раскрытие «всплыть» после него. Теперь клавиша-граница (пробел/Tab/Enter), раскрывающая сниппет, обрабатывается нами целиком — гонки нет.
0.2.18
- «Учиться на отмене» теперь работает по-человечески: откатил переключение слова — Keyboop спросит баннером в правом верхнем углу, добавить ли его в исключения. Нажал «Не надо» — больше про это слово не спросит. (Раньше пытался запоминать молча после нескольких откатов, но это почти не срабатывало.)
- «гифки» больше не улетает в латиницу — добавили слово и его формы в словарь.
0.2.17
- Автозамена: сниппеты теперь сохраняются в том порядке, как ты их добавлял (раньше пересортировывались по алфавиту) — новые просто встают вниз. Вернули кнопку удаления строки (в прошлой версии она пропадала) и кнопку «+»; добавлять можно и просто кликом по пустой строке. Заполненные строки сразу встают наверх по порядку, без пустых дыр между ними.
0.2.16
- Автозамена стала удобнее: строки добавляются прямо кликом по пустому полю (или кнопкой «+»), а в поля наконец работает вставка из буфера (Cmd+V, как и копирование/вырезание/выделить всё/отмена) — раньше в них ничего не вставлялось. Заодно текст в полях выровнялся по высоте, список стал выше, а кнопка-корзина — компактнее. Заполненные строки сами поднимаются наверх, пустые остаются снизу.
- Окно знакомства больше не уползает вправо, когда меняешь его высоту.
0.2.15
- Программы-исключения теперь предзаполняются сами: при запуске Keyboop находит установленные видеоредакторы, терминалы и код-редакторы и сразу заносит их в список (видеоредакторы и терминалы — выключено, код-редакторы — мягкий режим). Всё видно в Настройках → Исключения, любую программу можно переключить или убрать — твой выбор приоритетнее, удалённую не вернём.
0.2.14
- Починили потерю первой буквы: в Spotlight и поиске на сайтах первый символ больше не оставался в старой раскладке («adguard» → «adguard», а не «фdguard»).
- Видеоредакторы (Final Cut, Premiere, DaVinci…) и терминалы теперь по умолчанию не трогаются вовсе, а код-редакторы (VS Code, Xcode…) — в мягком режиме. Раньше это надо было настраивать руками, и в Final Cut Keyboop мог мешать. Свои программы по-прежнему добавляются в Настройки → Исключения.
- «Проверить обновления» теперь показывает окно со статусом (проверяю → есть обновление / актуальная версия), а не молчит.
0.2.13
- Мелочь для глаза: пункт «Проверить обновления…» в меню у часов встал ровно по левому краю, как остальные (раньше съезжал вправо из-за системной иконки у «Настройки»).
0.2.12
- Обновления переехали в отдельный раздел настроек «Обновления» — раньше прятались в «Общих», их не находили. И логичнее: «Ставить сразу без вопросов» теперь сам включает «Проверять обновления» и блокирует его (без проверки тихая установка невозможна).
- Чиним слова, набранные с концевой буквой б/ю/ж: «yj;» → «нож» (раньше выходило «но;» — терялась буква), «[kt,» → «хлеб».
- Чиним слова с цифрой на конце: «ghbdtn2» → «привет2». Короткие технические токены (gj1, h2o) не трогаем.
0.2.11
- В меню у часов появился пункт «Проверить обновления…» — удобно глянуть свежую версию вручную.
0.2.10
- Чиним слова со скобкой/кавычкой/тире перед ними: «(tckb» теперь превращается в «(если», а раньше упрямо оставалось как есть. Раньше любой символ перед словом (скобка, кавычка, дефис) ломал распознавание целиком.
0.2.9
- Главное: авто-переключение стало НАДЁЖНЫМ при быстром сплошном наборе. Раньше при печати без пауз часть слов чинилась, часть нет, а иногда первые буквы оставались в старой раскладке («gпривет»). Причина — приложение путало собственные нажатия с твоими по таймеру; теперь оно метит свой ввод и не теряет ни одной твоей буквы.
- Стыдный недосмотр: у новых пользователей авто-переключение было выключено из коробки. Теперь включено по умолчанию.
- Enter теперь тоже чинит слово — «ghbdtn» + Enter в чате превратится в «привет» перед отправкой.
0.2.8
- Знакомство теперь открывается заставкой во весь экран: на тёмном фоне K собирается из чертежа, затем плавно растворяется — и появляется приветствие. Коротко, один раз, без звука.
- Пересмотреть можно когда угодно — пункт «Знакомство…» в меню у часов.
0.2.6
- Баннер обновления довели до ума: крупный логотип, ровные поля со всех сторон, а коралловая кнопка «Обновить сейчас» теперь надёжно заметна в любом окружении (раньше в живом окне могла тускнеть до серой).
0.2.5
- Маленькая пасхалка в тему: теперь Keyboop находится в Spotlight, даже если набрать его имя вслепую на русской раскладке — «лунищщз». А ещё по «punto», «раскладка», «switcher».
0.2.4
- Баннер обновления стал аккуратнее: тёмный фон, кнопка «Обновить сейчас» теперь коралловая и заметная, больше воздуха, текст короче.
0.2.3
- Песочница в окне знакомства теперь на две строки — удобнее попробовать целую фразу.
- Высоту окна знакомства можно менять под себя.
0.2.2
- Про обновление теперь спрашивает наш собственный аккуратный баннер у часов («Обновить сейчас» / «Обновлять автоматически») — вместо системного уведомления. Никаких лишних разрешений на уведомления.
0.2.1
- Причесали подзаголовки в настройках и окне знакомства — читаемые, ровные, в фирменном коралловом стиле (раньше были мелкие, серые и с кривым отступом).
- В окне знакомства разъехались слипшиеся ряды выбора горячих клавиш — стало просторнее.
0.2.0
- Keyboop теперь сам находит новые версии. Когда выйдет новая — покажет уведомление с кнопкой «Обновить сейчас». Надоест нажимать каждый раз — там же кнопка «Обновлять автоматически»: дальше ставим тихо, в простое, когда ты отошёл, не мешая. Всё настраивается/выключается в Настройках → Обновления.
- Обновления подписаны и проверяются — подсунуть поддельную сборку под видом апдейта не выйдет. Проверка «есть ли новее?» отправляет только твой IP и номер версии, как любой заход на сайт. Ничего из того, что ты печатаешь или диктуешь.
0.1.75
- Хоткей диктовки по умолчанию теперь — правый ⌥: зажал, говоришь, отпустил. Его (как и хоткей раскладки) можно поменять прямо в окне знакомства или в настройках.
- Доступ к раскладке подхватывается на лету: выдал «Универсальный доступ» — переключение включается сразу, перезапуск не нужен. А если Keyboop запущен из образа или Загрузок — подскажем перетащить его в «Программы».
- Модели распознавания — теперь в одном списке: любую можно скачать, активировать и удалить, чтобы не занимала место (переключатель Whisper/Parakeet убрали — меньше путаницы).
- Хоткей перевода теперь тоже меняется в настройках.
0.1.59
- Предлоги-буквы теперь чинятся даже после английского слова: «room d новой» → «room в новой».
- Но английские маркеры бережём по контексту: «vitamin d», «plan b», «gen z», «type o» остаются целыми.
- Выбор движка распознавания: статус «используется» теперь стоит прямо напротив активной модели — и у Whisper, и у Parakeet.
- Подсказки в настройках всплывают только у длинных подписей, которые не умещаются.
0.1.56
- Режим для разработчиков стал умнее: одиночные буквы и короткие сочетания (переменные, команды) не переключаются нигде — не только в IDE. Подпись в настройках теперь об этом говорит.
- Без него предлоги-буквы чинятся как обычно: «d» → «в», «z» → «я» — кроме английского контекста («vitamin d» цел).
0.1.55
- Детектор поумнел на коротких словах: смотрит на язык предыдущего слова. «привет yt» → «привет не», а «смотрю tv» и «Спартак vs Зенит» не трогает.
- Одиночная «c» в английском тексте больше не превращается в «с».
0.1.54
- Длинные подсказки в настройках больше не теряются: текст усечён, а полный — во всплывающей подсказке (появляется почти сразу).
0.1.53
- Переключение нескольких слов сразу одним хоткеем — теперь в основных настройках, сразу после ручного хоткея. Недоступно при авто-переключении, чтобы не конфликтовать. Под капотом — защита от порчи текста.
- Свой звук для перевода: можно выбрать наш, системный или выключить, и настроить громкость.
- Точнее с короткими словами: «c» → «с». «net» больше не трогаем — это английское слово, а не «нет».
- История диктовок корректно переносится со старых версий.
0.1.52
- Выбор микрофона — прямо в настройках голосового набора.
- Автозамена: кнопка-корзина у каждой строки, кнопка «Добавить» для удобства.
- Исключения: кнопка «Добавить слово» переводит фокус на поле ввода.
- История хранится в минутах (30 мин / 1 ч / 2 ч / 4 ч / 8 ч).
- «с» и «tot» теперь корректно переключаются на русский.
0.1.18
- Длинная диктовка больше не теряет хвост — распознаётся целиком.
- Под капотом подготовлен новый движок распознавания Parakeet (точнее на русском) — скоро.
0.1.15
- История диктовок: живое обновление, прокрутка к последней, настраиваемая прозрачность окна.
- Срок хранения истории — на выбор (3 / 7 / 30 дней).
0.1.12
- После голосового ввода ставится пробел — следующая фраза не слипается.
- Отдельные настройки звука записи: вкл/выкл и громкость.
0.1.9
- Свои звуки старта/окончания записи.
- В «О программе» — кнопка обратной связи и подписка на обновления (почта + Telegram).
0.1.8
- Умнее с раскладкой: не переключаем короткие «не-слова» (например «тк»), добавлены русские сокращения.
0.1.2
- Хоткей диктовки по умолчанию — ⌥` , режим «нажал-старт / нажал-стоп».
- Доступ к микрофону спрашивается сам; автозапуск при входе включён.