Solution · Live
ClipHistory — менеджер буфера обмена для macOS
своя минимальная замена PasteNow под macOS: история буфера по ⌘⇧V, быстрая вставка «зажал-пролистал-отпустил», текст и картинки, ноль зависимостей. Давно искал такое на Mac — сделал сам. Пишите в личку, пришлю бесплатно.
- macos
- clipboard-manager
- swift
- productivity
- utility
- free
TL;DR. Собственная замена PasteNow под macOS — минимальный менеджер буфера обмена: история по
⌘⇧V, быстрая вставка «зажал-пролистал-отпустил» по⌘⇧X/⌘⇧C, текст и картинки, ноль сторонних зависимостей. Такую утилиту давно искал на Mac и не находил — сделал сам. Нужна такая же? Пишите в личку, пришлю бесплатно. → Написать в Telegram
Почему сделал
На Windows менеджеров буфера обмена — вагон, любой на выбор, бесплатно. На Mac с этим всегда было плохо: либо платная подписка, либо сырые поделки. Пользовался взломанной версией PasteNow — и она просто перестала запускаться на свежей macOS. Чинить крякнутый софт смысла не было. Написал свой, под ровно те функции, которыми реально пользуюсь.
Что умеет
⌘⇧V— окно истории буфера: стрелки / Enter / клик / цифры 1–9 / Esc, кнопка-булавка, чтобы закрепить нужный элемент, перетаскивание мышью, окно запоминает свою позицию.⌘⇧X/⌘⇧C— быстрая вставка: зажал⌘⇧, тапаешьXилиCи листаешь кандидатов, отпустил — вставилось. Работает как⌘-Tab, только для буфера, с HUD-плашкой поверх экрана. Годится и для картинок, не только текста.- История хранит и текст, и картинки, с автоочисткой — 100 элементов или 50 МБ, что наступит раньше. Пароли из менеджеров паролей в историю не попадают.
Как сделано
Swift + SwiftUI + AppKit + Carbon (перехват клавиш через RegisterEventHotKey и CGEventTap), ноль сторонних зависимостей, около 700 строк. Хранилище — обычный JSON, никакой CoreData. Собрано и подписано под конкретную машину нормальным сертификатом — доступ Accessibility переживает пересборки, не слетает каждый раз заново.
Пара честных тех-уроков (по-человечески)
Перехвату клавиш хватает разрешения Accessibility — «Мониторинг ввода» тут не нужен, хотя выглядит логичным кандидатом. На проверке этой ложной версии ушли часы.
Второй урок дороже. Обработчик перехвата обязан отвечать мгновенно: если засунуть в него что-то тяжёлое (например, синхронный показ окна) — macOS решает, что тап завис, и молча его отключает. После этого перехватываемые клавиши начинают «протекать» напрямую в активное приложение. Лечится тем, что вся тяжёлая работа уезжает в async, а колбэк только принимает решение и сразу возвращает управление.
Как забрать
В App Store такое не пройдёт — песочница убивает перехват клавиш, а без него нет ни ⌘⇧X/C, ни автовставки. Поэтому только прямая сборка.
Нужен — напишите в личку @Sergeyramas, пришлю бесплатно.