Добавляем действия в буфер обмена (klipper) kde5 (plasma5)

Материал из Rosalab Wiki
Перейти к: навигация, поиск

У буфера обмена пятых кед (у четвертых, если не ошибаюсь, тоже, но kde4 — RIP) есть такая крутая функция, как «Действия», которая позволяет расширять функциональность с помощью скриптов, а значит всё, что мы можем делать с содержимым буфера ограничивается лишь нашей фантазией. Ниже будут приведены несколько простых примеров.

Преобразование текста

Используя возможности bash


Перевести текст в нижний регистр.


Жмем пкм по значку ножниц на панели -> Настроить буфер обмена -> Действия.
Screenshot 1.png

Жмем «Добавить действие».
В открывшемся окне в «Свойствах действия» оставим поле для регулярного выражения пустым, так как мы хотим, чтоб действие выполнялось для любого текста; отключим флажок «Автоматически». Описание здесь не обязательно, его все равно не видно, когда действие выбираешь.
Далее — добавим команду.

 Команда: string="%s" ; echo -n "${string,,}"
 Вывод команды: тыкаем два раза лкм по "Игнорировать" и выбираем "Скопировать в буфер обмена".
 Описание: "Convert to lowercase", ну, или можно ввести "Перевести в нижний регистр".

Screenshot 2.png
Жмем «Ок». В предыдущем окне тож «Ок».
Проверяем:
Screenshot 3.png

Screenshot 4.png

Screenshot 5.png

Если текст из буфера пропал после выполнения действия, то скорее всего была допущена ошибка в команде.

Перевести текст в верхний регистр.


Нужно проделать то же, что и в предыдущем примере, только указать другую команду и описание.

 Свойства действия:
   Регулярное выражение: отсутствует
   Автоматически: Нет
   Описание: отсутствует
 Команда для действия:
   Команда: string="%s" ; echo -n "${string^^}"
   Вывод команды: Сохранить в буфер
   Описание: "Convert to uppercase". Или "Перевести в верхний регистр".

Screenshot 6.png

Каждое слово начинается с заглавной буквы


 Свойства действия:
   Регулярное выражение: отсутствует
   Автоматически: Нет
   Описание: отсутствует
 Команда для действия:
   Команда: string="%s" ; string=($string) ; string="${string[@]^}" ; echo -n "$string"
   Вывод команды: Сохранить в буфер
   Описание: "Convert to titlecase".

Screenshot 7.png

Тут есть один нюанс. Если текст в буфере в верхнем регистре, то его нужно сначала перевести в нижний, а потом уже в titlecase. Иначе не сработает.

Окно настройки действий с добавленными командами:

Screenshot 8.png


Используя скрипт на python3


Скачиваем этот скрипт: File:text-processing.zip
Кладем его, например, в ~/.local/bin/.
Далее, добавляем новые действия.

Перевести текст в нижний регистр.


 Свойства действия:
   Регулярное выражение: отсутствует
   Автоматически: Нет
   Описание: отсутствует
 Команда для действия:
   Команда: python3 ~/.local/bin/text-processing -l -n -i '%s'
   Вывод команды: Сохранить в буфер
   Описание: "Convert to lowercase with python script.".

Перевести текст в верхний регистр.


Все тоже, что и в примере выше, только другое описание и команда.

   Команда: python3 ~/.local/bin/text-processing -u -n -i '%s'

Каждое слово начинается с заглавной буквы


   Команда: python3 ~/.local/bin/text-processing -t -n -i '%s'

Сделать инверсию


Символы в верхнем регистре перевести в нижний, а в нижнем - в верхний.

   Команда: python3 ~/.local/bin/text-processing -s -n -i '%s'

Пример:

 HeLlO WoRlD.
 hElLo wOrLd.


Прочее

Открыть скопированный текст в kwrite

 Свойства действия:
   Регулярное выражение: отсутствует
   Автоматически: Нет
   Описание: отсутствует
 Команда для действия:
   Команда: echo -n '%s' | kwrite -i -l 1 -c 1
   Вывод команды: Игнорировать
   Описание: "Open at kwrite".

Где klipper сохраняет пользовательские действия

klipper сохраняет пользовательские действия в файле ~/.config/plasmashellrc в разделах "[Action_№]" и "[Action_№/Command_№]".