Упростим работу программиста на Linux - программа ClipKA

03.10.22

Разработка - Инструментарий разработчика

Множественный буфер обмена и менеджер горячих клавиш. Замена неправильной кодировки, Замена неправильно набранного регистра текста. Задачи на скриптовом языке Groovy. Работает как в Windows, так и в Linux.

Скачать исходный код

Наименование Файл Версия Размер
Упростим работу программиста на Linux - программа ClipKA. :
.zip 16,57Mb
0
.zip 16,57Mb Скачать

Добрый день.

За последние годы я несколько раз пытался перейти на домашнем компьютере на Linux. Несмотря на то, что компьютер домашний, хотелось бы на нём иметь возможность работать, а также подключаться к Windows серверам по rdp.

И каждый раз мне не хватало нескольких программ, которые накопились за годы работы в Windows.

Основная проблема - удобный множественный буфер обмена. В Linux жить без подобной программы плохо, хотя бы потому, что при копировании данных в буфер и закрытии окна программы - данные не сохраняются. Но, кроме того, я привык видеть, какое приложение сделало запись в буфер обмена, и в какое время. В этом случае можно использовать программу как простой таймер для учета времени. Если данные копировались в буфер последовательно несколько раз - должна быть возможность их удобно получить. Все найденные программы под Linux меня никак не устраивали.

Также, хотелось быстро исправлять текст, введенный в ошибочной раскладке или неверном (верхнем/нижнем) регистре. Кроме того, у меня на autohotkey были написаны задачи, облегчающие работу. Ну, например, вставка комментария с текущей датой в любом месте. На первый взгляд, в Linux с этим все хорошо. Есть и compose key, и много скриптов на bash. Однако едва я попробовал запустить их в сессии rdp, как выяснилось, что со всем этим хозяйством есть огромные проблемы. Поэтому необходима программа, которая будет производить выполнение некоторых задач.

И если уж писать программу, хотелось бы, чтобы она работала как под Windows, так и под Linux.

Пока это глубокая альфа, особенно в визуальной части, но программа работает. Основные задачи по использованию буфера обмена я использую несколько месяцев, и операционную систему Windows дома уже давненько не запускал.

Исходные коды опубликованы на https://github.com/KAO-GIT/clipka

PS. Java я, конечно, не изучил, но переписать все уже хочется.

Тестирование

Windows 7, Windows 10.

PSLinuxOs XFCE - система на домашнем компьютере, на котором идет основная проверка.

Задачи выполняются двумя способами:

  • проверка нажатия указанных клавиш
  • запуск программы с параметрами

Данные хранятся в файлах sqlite, расположены в папке dat. Файлы можно удалить, при запуске будут проинициализированы заново.

Работа с текстом

Как в общем случае можно обработать выделенный текст в любом поле ввода. Можно послать сочетание клавиш для копирования, дождаться появления текста в буфере обмена (в некоторых случаях это может занимать достаточно продолжительное время). Обработать полученный текст. Вставить новый текст в позицию курсора. И вот есть 2 варианта: 1 - послать сочетание клавиш для вставки текста. 2 - послать специальное сочетание символов в виде набора кодов, который будет соответствовать символу. Для системы Windows - это клавиша Alt. Коды соответствуют OEM кодировке текущей системы (для русского языка кодовая страница 866). Для Linux можно использовать клавишу Compose. В папке с установленной программой находится файл .XCompose, в котором описаны коды, аналогичные кодам в Windows. На самом деле, первый вариант достаточно надежный, если не брать в расчет некоторые терминалы, для которых необходимо указывать специальные клавиши вставки. Второй вариант лучше использовать только для вставки коротких текстов.

Ограничения

Версия Java 11

Пока не работает на 32 разрядном Linux.

Некрасиво отображается системный трей в окружении Cinnamon. Причем эти проблемы даже у тестовой программы java. Вместо трея лучше запускать обычное окно с кнопками действий.

Горячие клавиши не работают с дисплейным сервером Wayland. Функции для отслеживания нажатий клавиш используют X11. Работает множественный буфер обмена. Задачи можно запускать с помощью командной строки.

Минимальная версия Windows для работы программы: Windows Vista

Для проверки запуска приложения и запуска задач с помощью командной строки открывается порт на компьютере. Для запуска нескольких приложений нужно использовать разные порты.

Нет защиты базы с записями буфера обмена. Можно ограничить запись в базу, фильтруя заголовки/классы окон.

Настройки

 

 

Системные настройки

Socket port. При первом запуске программа резервирует указанный порт. При повторном запуске порт проверяется и не дает запустить вторую копию программы. Еще одно использование - запуск задачи из командной строки.

Показывать окно с кнопками действий. У программы имеется обычное окно с кнопками основных действий. Возможна ситуация, когда системный tray недоступен. Тогда должно показываться данное окно (это действие по умолчанию). При установке флажка окно будет показываться всегда.

Показывать иконку в системном трее. Если флажок не установлен, показывается окно с кнопками действий.

Показывать уведомление, если задача завершена с ошибкой. Если флажок установлен, после задачи, которая завершена с ошибкой, показывается всплывающее окно уведомлений. В любом случае, записи можно посмотреть в окне 'Оповещения и ошибки'

Время в секундах для всплывающего окна уведомления по умолчанию. Если значение равно нулю, окно уведомлений не закрывается.

Настройки для буфера обмена

Количество записей на странице. При открытии списка клипов буфера обмена на экране показывается указанное количество клипов.

Максимальный размер текста.Q98;Ограничение размера текста при копировании в буфер.

Поиск в списке клипов без учета раскладки клавиатуры. При установленном флажке поиск будет происходить, даже если выбрана другая раскладка клавиатуры.

Удалить дубликаты текстов в буфере. При вставке клипа проверяются клипы с таким же содержимым. Чтобы не набирать дубликаты в писке клипов - их можно удалять. Следует иметь в виду, что при удалении дубликатов можно потерять информацию о времени создания и источнике текста в буфере.

Время в секундах, после которого прекращается запоминание позиции в списке клипов. Для удобного выбора нескольких идущих последовательно клипов, при открытии списка сохраняется предыдущая позиция. После указанного времени - список клипов открывается, начиная с самых последних.

Разделитель текстов клипов при выделении нескольких в списке клипов. При выделении нескольких клипов в списке их можно получить одной строкой. Каждый клип будет отделяться от другого указанным текстом (по умолчанию используется перенос строки).

Строка для конвертирования ошибочных раскладок клавиатуры. На данный момент конвертирование происходит только для 2-х раскладок.

Строка для конвертирования ошибочно набранного регистра букв.

Отслеживать буфер обмена: выделение - настройка видна только в Linux. По умолчанию выделение не отслеживается.

Окно сохраненных текстовых клипов буфера обмена

 

 

Показывается список клипов с указанием времени копирования, заголовка и класса окна владельца. Для системы Linux дополнительно показывается буфер обмена: обычный или выделение. При выборе клипа запоминается текущая позиция. При повторном открытии списка курсор устанавливается на предыдущий клип. Позиция курсора сбрасывается после истечения времени, указанного в настройках.

Выделенные строки в списке клипов автоматически объединяются в общую строку, с разделителем, указанным в настройках.
Можно выполнить задачи, попадающие в специальную группу.

Группы задач

 

 

Задачи можно сгруппировать. При открытии группы задач, можно посмотреть/запустить задачи только из указанной группы. У группы можно указать горячие клавиши. При вводе этих клавиш открывается список задач с отбором по выбранной группе.

Задачи

 

 

Можно выполнять действия над строками, полученными из буфера обмена или выделенными в текстовом редакторе. Каждая задача состоит из списка подзадач, выполняемых последовательно.

Обмен данными между подзадачами ведется с помощью специального хранилища- словаря, куда можно поместить текстовое содержимое, указав любой код, а также получить обратно. Если код словаря пустой - работаем с текущей обрабатываемой строкой.

Необходимо принять во внимание, что есть две специальные подзадачи: копирование в буфер обмена и вставка из буфера. Несмотря на указание сочетаний клавиш, эти подзадачи особые. В некоторых случаях (например, при работе с сервером RDP) обновление буфера обмена может занимать длительное время и нельзя использовать просто имитацию нажатия клавиш. Необходимо дождаться реального обновления буфера.

Существующие подзадачи:

"Посылать символ(ы), имитируя ввод на клавиатуре" - Можно безопасно использовать только для клавиш, которые не зависят от раскладки клавиатуры. Не стоит использовать для передачи текста.

"Попытаться скопировать выделенный текст в буфер обмена" - Несмотря на указание горячей клавиши, это не просто имитация нажатия клавиш. Операция пытается именно скопировать значение в буфер обмена, ожидая ответа.

"Попытаться вставить текст из буфера обмена в текущую позицию курсора" - Несмотря на указание горячей клавиши, это не просто имитация нажатия клавиш. Операция пытается именно вставить значение из буфера обмена

"Посылать символ(ы), используя специальную клавишу Compose (для системы Windows - Alt)" - Отсылает коды клавиш с помощью специально настроеной клавиши Compose (для системы Windows - Alt). Может являться аналогом вставки из буфера обмена

"Получить строку из буфера обмена и поместить в словарь"

"Сохранить указанную строку в буфер обмена"

"Введенную в содержание строку сохранить как текущую обрабатываемую"

"Сохранить текущую обрабатываемую строку в словарь"

"Получить текущую обрабатываемую строку из словаря"

"Удалить строку из словаря (если больше не нужна)"

"Изменить кодировку текста"

"Изменить регистр текста"

"Поместить в список клипов"

"Прочитать строку из списка клипов" - Если в содержании указано число, оно интерпретируется как смещение от последнего клипа. Число 0 - последний клип. Если содержание пустое и задача выполняется из списка клипов - получает выделенные строки. Если содержание пустое и задача выполняется самостоятельно - получает последний клип.

"Показать окно оповещения" - Показывает окно оповещения, если заполнена текущая обрабатываемая строка. В содержание можно занести время в секундах, в течение которого будет открыто окно.

"Показать окно уведомления об ошибке" - Показывает окно уведомления об ошибке, если заполнена текущая обрабатываемая строка. В содержание можно занести время в секундах, в течение которого будет открыто окно.

"Записать оповещение в таблицу 'Оповещения и ошибки'" - Записывает текущую обрабатываемую строку как оповещение в таблицу 'Оповещения и ошибки'. В содержание можно занести имя оповещения.

"Записать ошибку в таблицу 'Оповещения и ошибки'" - Записывает текущую обрабатываемую строку как ошибку в таблицу 'Оповещения и ошибки'. В содержание можно занести имя ошибки. "Очистить таблицу 'Оповещения и ошибки'"

"Выполнить код на языке Groovy" - В содержание заносится код на языке Groovy. Можно использовать переменные result, result1...result9. В переменную result заносится текущая обрабатываемую строку. После возврата в текущую обрабатываемую строку записывается последнее значение или значение, находящееся в переменной result. Остальные переменные можно получить из хранилища по кодам 1...9.

"Показать/скрыть сохраненный список буфера обмена"

"Показать сохраненный список клипов буфера обмена"

"Скрыть сохраненный список клипов буфера обмена" "Получить свойства текущего окна"

Фильтры окон

 

 

Задача может выполняться только в указанном окне или позиции экрана. Можно указать в формате регулярных выражений разрешенную или запрещенную комбинацию символовQ98; Q98; в заголовке или классе окна. Можно, например, использовать фильтр, чтобы не копировать в список клипов сохраненные пароли.

Оповещения и ошибки

 

 

Это отдельная таблица, в которую автоматически попадают ошибки при выполнении задач. Кроме того, вы можете сами записывать туда текст, чтобы потом анализировать.

Множественный буфер обмена Groovy кодировка скрипты

См. также

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    125081    683    389    

732

Infostart PrintWizard - создание и редактирование печатных форм в 1С 8.3

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

18000 руб.

06.10.2023    7797    24    6    

42

Infostart УДиФ: Управление данными и формами 1С

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 руб.

10.11.2023    4300    12    2    

36

SALE! %

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2280 руб.

14.01.2013    178681    1084    0    

862

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99655    239    97    

298

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18410    6    8    

40

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    23866    16    15    

33

1С HTML Шаблоны / HTML Templates

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28331    3    10    

16
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. leosoft 165 04.10.22 10:57 Сейчас в теме
Подскажите, пожалуйсьа, под Windows какую программу используете для множественного буфера?
2. K_A_O 538 04.10.22 14:25 Сейчас в теме
(1) Некоторое время назад перешел на свою, а до этого использовал Clibor, хорошая портативная, бесплатная программа от китайцев. И занимала всего 5 Мб памяти
3. ProstoProgrammist 3 05.10.22 17:30 Сейчас в теме
(1) В Windows 10 буфер итак множественный, у меня работает по сочетанию клавивишь Win+V.
Помойму его надо где-то включать.

Так же очень удобное сочетание клавишь Shift+WIN+S - вырезает из экрана произвольную область и копирует картинку в буфер обмена. Пользуюь в день по 100 раз.
4. K_A_O 538 05.10.22 20:56 Сейчас в теме
(3) Буфер обмена - только малая часть, например, я привык, что могу быстро проверить, что буква "с" в русском слове не латинская. Ну или быстро преобразовать текст в синоним/из синонима. Ну и еще накопилась масса вариантов. В Windows у меня все это было. Но в Linux нет. И мне это очень мешало. Сейчас я конечно и на работе перешел на свою программу, просто хотя бы из-за тестирования. Но в описании упомянул именно Linux, под Windows выбор большой. Хотя из-за особенностей работы по rdp, я именно старался добиться, чтобы даже в условиях медленной работы с буфером обмена - все работало.
ProstoProgrammist; +1 Ответить
Оставьте свое сообщение