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

03.10.22

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Упростим работу программиста на Linux - программа ClipKA. :
.zip 16,57Mb
0
0 Скачать (1 SM) Купить за 1 850 руб.

Добрый день.

За последние годы я несколько раз пытался перейти на домашнем компьютере на 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 кодировка скрипты

См. также

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

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

10000 руб.

02.09.2020    151726    833    397    

841

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

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

9360 руб.

17.05.2024    20394    59    42    

106

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

OneRPA - платформа роботизации рутинных операций, в основе которой лежит платформа 1С:Предприятие. Данная платформа позволяет использовать современные технологии роботизации, не теряя при этом наработки, которые были созданы в ходе автоматизации. При этом платформа роботизации сохраняет все преимущества платформы 1С: гибкость, кроссплатформенность, мобильный и Web доступ, простоту расширения. Ну и конечно же роботы создаются и сопровождаются простыми специалистами 1С, при этом не обязательно программистами. Self hosted версия

300000 руб.

03.03.2021    14192    12    27    

36

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

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

18000 руб.

06.10.2023    14019    36    7    

69

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Бизнес-аналитик Руководитель проекта Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:ERP. Управление холдингом Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя.

8400 руб.

20.08.2024    3903    22    6    

36

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

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

10000 руб.

10.11.2023    9109    33    10    

56

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

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

4800 руб.

14.01.2013    185479    1127    0    

899

Инструментарий разработчика Программист 8.3.14 1С:Конвертация данных Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

15000 руб.

07.10.2021    16754    6    29    

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

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