Приветствую!
До 2015-го года я использовал Parcellite, который в целом работал, но время от времени зависал, глючил и крашился. На тот момент были другие альтернативы, но они либо были привязаны к DE (например, clipman из xfce), либо имели свои собственные глюки, не лучше чем глюки в Parcellite.
В 2015-м я решил пофиксить код Parcellite и навсегда закрыть для себя вопрос с менеджером буфера обмена. Изучение кода показало его крайне низкое качество, так что фиксы вылились в то, что программа была почти полностью переписана.
Около пяти лет я пользовался программой, но не сделал официального релиза. На моем компьютере она просто работает без нареканий и багов. Думаю, надо выпустить её в свет.
Итак, что было сделано:
- Около половины исходного кода было удалено.
- Оставшаяся часть кода была в значительной мере переписана. (Но еще не полностью. Во многом оставшийся код всё еще походит на лапшу.)
- Удалены все функции и фичи не имеющие прямого отношения к управлению буфером обмена, такие как поддержка запуска произвольных команд хоткеями. А также просто мусорные опции, такие как смена иконки приложения через конфиг.
- Удалены все функции и фичи, которые были недоделаны или надежная реализация которых невозможна в рамках существующего оконного стека X11. (Например, попытка делать операцию Paste в произвольное приложение, при том что под X11 не существует никакого API для этого.)
- Полностью переписана логика слежения за буфером обмена, теперь она не зацикливается, не приводит к невозможности работы некоторых других приложений и не жрёт процессор по таймеру.
Функции и возможности программы:
- Для сборки и работы приложения требуется только X11 и gtk2, что обеспечивает совместимость с максимально широким рядом операционных систем и дистрибутивов.
- Программа разрабатывается как часть проекта https://github.com/sde-gui/ , но не содержит никаких зависимостей от него.
- Приложение отображает иконку в трее через стандартный X11-совместимый API. (Также в целях максимальной совместимости )
- Вызов истории буфера обмена: ЛКМ по иконке в трее или нажатие Mod4 + Insert. (Хоткей можно сменить в настройках.)
- Вызов меню для управления приложением: ПКМ по иконке в трее или нажатие Ctrl + Mod4 + Insert. (Хоткей можно сменить в настройках.)
- Выбор пункта истории буфера обмена приводит к помещению его в буфер обмена, но без попытки сделать Paste. Paste в разных тулкитах и программах реализуется собственными средствами, так что для вставки вам нужно обычным образом нажать Ctrl+V, Shift+Insert или другой хоткей, в зависимости от конкретного приложения.
- Слежение за буфером обмена и/или за буфером выделения, на усмотрение пользователя.
- Возможность синхронизации буфера обмена и буфера выделения.
- Быстрое включение/отключение программы через меню по ПКМ (на случай если нужно копировать конфиденциальные данные и т.п.).
- Мгновенный поиск по истории буфера обмена: при открытом меню истории начинайте вводить текст, и приложение отфильтрует элементы. Поддерживается совместимость со стандартным переключением раскладок X11. С альтернативынмии методами ввода работоспособность еще не тестирорвалась.
- Возможность закреплять элементы в истории. (При открытом меню истории: ПКМ по пункту меню -> откроется дополнительное меню -> Прикрепить)
Известные на данный момент баги и недоработки:
Невозможно одновременно открыть окно настроек и окно About.FIXED 2020-03-02Попытка хоткеем вызвать меню истории буфера обмена при открытом окне настроек приводит к зависанию программы.FIXED 2020-03-02- Иконка приложения осталась от Parcellite, требует замены.
Редизайн окна настроек не завершен, требует доработки.FIXED 2020-03-01Русская локализация выполнена не полностью,также в ней не назначены мнемоники контроллов в окне настроек.- Отсутствует документация.
Планируемое развитие программы:
- Продолжение чистки кода.
- Поддержка сохранения в истории буфера обмена изображений и текста с форматированием, а не только плейнтекста.
Чего не будет:
- Перехода на другой тулкит, такой gtk3 или gtk4.
- Привязки к непортабельным или привязанным к конкретному дистрибутиву API.
- Bells and whistles.
Ссылки:
Ожидаемый фидбек:
- Багрепорты относительно сборки и работы программы.
- Локализация на другие языки, если найдутся желающие.