Десктоп · история буфера · без облака · превью
MyClipboard
Локальная история буфера обмена для macOS и Windows — без облака, аккаунта и аналитики
Задача
Что нужно было решить
Системный буфер — один слот. Скопировали ссылку, потом код, потом email — и ссылка уже потеряна. Облачные менеджеры просят аккаунт и синхронизацию; для личных фрагментов и скриншотов это лишний риск и лишний шум.
Решение
Что я сделал
Сделал нативное приложение сразу под две платформы с одинаковым поведением: на macOS — Swift, SwiftUI и AppKit (иконка в Menu Bar, панель ⌘⌥V и быстрый цикл ⌘⇧V), на Windows — .NET 8 и WPF (трей). Цепочка от захвата буфера до вставки: мониторинг, фильтр приватности, хранилище, панель или HUD, сервис вставки. История на диске, без дублей, с избранным, пресетами и поиском; пропускаю скрытый буфер и копирование из менеджеров паролей.
Компромиссы
Чем пришлось пожертвовать
Две нативные кодовые базы вместо одной на Electron — это буквально двойная работа и двойная поддержка. Но утилита, которая живёт в меню-баре и вызывается по хоткею сто раз в день, не имеет права весить сто мегабайт и открываться полсекунды. Отказ от облачной синхронизации закрывает все вопросы о приватности и аккаунтах — и одновременно означает, что история не переезжает между машинами. Для менеджера буфера это честный обмен: приватность здесь важнее переносимости.
Результат
Что получилось
Превью 0.1.0: macOS и Windows с паритетом — панель истории, быстрый цикл, текст, изображения и файлы, без облака и аналитики. Исходники в закрытом репозитории; скачать и поставить можно из публичного MyClipboard-dist.
Итог в трёх словах
- macOS и Windows
- Без облака
- Панель и цикл
- Фильтры приватности
Стек
- Swift
- SwiftUI
- AppKit
- .NET 8
- WPF
- XCTest
- xUnit
- Sparkle