5

Я использую функцию Actions утилиты KDE Klipper для запуска определенных команд, когда копирую что-то в буфер обмена, соответствующее определенному регулярному выражению. К сожалению, я должен включить Enable Clipboard Actions и выбирать команду из меню каждый раз, когда копирую что-то, для чего хочу выполнить команду. Я бы хотел, чтобы эта команда запускалась автоматически.

Вы могли бы подумать, что это возможно, поскольку в диалоговом окне настроек действий есть автоматический флажок:

К сожалению, это, похоже, ничего не делает. В документации, прилагаемой к Klipper, не указано, что должен делать этот флажок.

Можно ли настроить Klipper на автоматический запуск команды, если содержимое буфера обмена соответствует регулярному выражению? Если нет, есть ли другой способ сделать это?

1 ответ1

3

Я не нашел способа сказать klipper, чтобы применить действие автоматически. Самое большее, что делает klipper автоматически, это вызывает меню с действиями. Чтобы применить действие, потребуется еще один щелчок мыши.

Флажок « Automatic в диалоговом окне свойств действия имеет следующий эффект: если вы копируете текст, и текст соответствует настроенному регулярному выражению, то появляется меню с соответствующими действиями. Обратите внимание, что Enable Clipboard Actions должны быть включены для этого. Если параметр « Enable Clipboard Actions или « Automatic отключен, то при копировании меню не появится.

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

Кажется, вам придется написать собственное решение.

Наивная реализация может выглядеть так:

  1. Контролировать содержимое буфера обмена.
  2. Если содержимое меняется, сопоставьте его с регулярным выражением.
  3. Если регулярное выражение совпадает, измените содержимое буфера обмена.

Должна быть возможность кодировать это, используя, например, python и PyGTK или PyQt.

В качестве альтернативы вы можете взломать сценарий оболочки, используя команду xclip -o для выгрузки содержимого буфера обмена и xclip -i для вставки измененного содержимого в буфер обмена.

Я нашел проект, в котором реализована точка № 1 и часть № 2 с использованием perl и команды xclip : https://github.com/trapd00r/clipbored. Может быть, вы можете начать там форму и изменить ее в соответствии со своими потребностями.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .