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

Материал из Rosalab Wiki
Перейти к: навигация, поиск
(дополнение)
 
(не показано 9 промежуточных версий этого же участника)
Строка 1: Строка 1:
У буфера обмена пятых кед (у четвертых, если не ошибаюсь, тоже, но kde4 — RIP) есть такая крутая функция, как «Действия», которая позволяет расширять функциональность с помощью скриптов, а значит всё, что мы можем делать с содержимым буфера ограничивается лишь нашей фантазией. Ниже будут приведены несколько простых примеров.<br />
+
У буфера обмена пятых кед (у четвертых, если не ошибаюсь, тоже) есть такая крутая функция, как «'''Действия'''», которая позволяет расширять функциональность с помощью скриптов. Ниже приведены несколько простых примеров.<br />
  
 
== Преобразование текста ==
 
== Преобразование текста ==
Строка 8: Строка 8:
 
==== Перевести текст в нижний регистр. ====
 
==== Перевести текст в нижний регистр. ====
 
-----
 
-----
Жмем пкм по значку ножниц на панели -> Настроить буфер обмена -> Действия.<br />
+
Жмём '''пкм по значку буфера обмена''' на панели -> «'''Настроить буфер обмена'''» -> «'''Настройка действий'''».<br />
[[File:Screenshot_1.png||400px]]<br />
+
  
Жмем «Добавить действие».<br />
+
:[[File:2023-11-21_1.png||400px]]<br />
В открывшемся окне в «Свойствах действия» оставим поле для регулярного выражения пустым, так как мы хотим, чтоб действие выполнялось для любого текста; отключим флажок «Автоматически». Описание здесь не обязательно, его все равно не видно, когда действие выбираешь.<br />
+
 
Далее — добавим команду.<br />
+
Жмём «'''Добавить действие'''».<br />
  Команда: string="%s" ; echo -n "${string,,}"
+
В открывшемся окне поле «'''Шаблон соответствия'''» '''оставляем пустым''', так как мы хотим, чтобы действие выполнялось для любого текста;<br />
  Вывод команды: тыкаем два раза лкм по "Игнорировать" и выбираем "Скопировать в буфер обмена".
+
В описании пишем, например, «'''Конвертация текста'''».<br />
  Описание: "Convert to lowercase", ну, или можно ввести "Перевести в нижний регистр".
+
'''Отключим''' флажок «'''Включить во всплывающем меню авто действий'''».<br />
[[File:Screenshot_2.png||400px]]<br />
+
Жмякаем «'''Добавить команду'''».<br />
Жмем «Ок». В предыдущем окне тож «Ок».<br />
+
:[[File:2023-11-21_2.png||400px]]<br />
 +
 
 +
В окне «'''Свойства команды'''» указываем:
 +
Команда: TEXT="%s" && echo -n "${TEXT,,}"
 +
Описание: "Перевести в нижний регистр".  
 +
Выходные данные команды: Активируем "Заменить текущее содержимое буфера обмена".
 +
:[[File:2023-11-21_3.png||400px]]
 +
 
 +
Жмем «'''Ок'''». В предыдущем окне тоже «'''Ок'''». Далее «'''Применить'''».<br />
 
Проверяем:<br />
 
Проверяем:<br />
[[File:Screenshot_3.png||400px]]<br /><br />
 
[[File:Screenshot_4.png||400px]]<br /><br />
 
[[File:Screenshot_5.png||400px]]<br /><br />
 
  
Если текст из буфера пропал после выполнения действия, то скорее всего была допущена ошибка в команде.<br />
+
:[[File:2023-11-21_4.png||400px]]<br /><br />
 +
:[[File:2023-11-23_5.png||400px]]<br /><br />
 +
:[[File:2023-11-21_6.png||400px]]<br />
 +
 
 +
Если текст из буфера пропал после выполнения действия, то скорее всего была допущена ошибка в команде и следует всё перепроверить.<br />
  
 
==== Перевести текст в верхний регистр. ====
 
==== Перевести текст в верхний регистр. ====
 
-----
 
-----
Нужно проделать то же, что и в предыдущем примере, только указать другую команду и описание.<br />
+
Если действие «'''Конвертация текста'''» уже существует, то кликаем по нему и жмём кнопку «'''Изменить действие'''», в открывшемся окне жмякаем «'''Добавить команду'''».<br />
  Свойства действия:
+
В окне «'''Свойства команды'''» указываем:
    Регулярное выражение: отсутствует
+
Команда: TEXT="%s" && echo -n "${TEXT^^}"
    Автоматически: Нет
+
Описание: "Перевести в верхний регистр".
    Описание: отсутствует
+
Выходные данные команды: "Заменить текущее содержимое буфера обмена".
  Команда для действия:
+
 
    Команда: string="%s" ; echo -n "${string^^}"
+
Если действие «'''Конвертация текста'''» ещё не существует, то выполняем то же, что и в разделе «'''Перевести текст в нижний регистр'''» в начале этой страницы, только нужно будет указать команду и описание из этого раздела.<br />
    Вывод команды: Сохранить в буфер
+
    Описание: "Convert to uppercase". Или "Перевести в верхний регистр".
+
[[File:Screenshot_6.png||400px]]
+
  
==== Каждое слово начинается с заглавной буквы ====
 
 
-----
 
-----
  Свойства действия:
 
    Регулярное выражение: отсутствует
 
    Автоматически: Нет
 
    Описание: отсутствует
 
  Команда для действия:
 
    Команда: string="%s" ; string=($string) ; string="${string[@]^}" ; echo -n "$string"
 
    Вывод команды: Сохранить в буфер
 
    Описание: "Convert to titlecase".
 
[[File:Screenshot_7.png||400px]]<br />
 
  
Тут есть один нюанс. Если текст в буфере в верхнем регистре, то его нужно сначала перевести в нижний, а потом уже в titlecase. Иначе не сработает.<br /><br />
+
Окно настроек действий с добавленными командами:<br />
  
Окно настройки действий с добавленными командами:<br />
+
:[[File:2023-11-23_0.png||400px]]
  
[[File:Screenshot_8.png||400px]]
+
=== Используя sed ===
 +
-----
  
 +
==== Перевести текст в нижний регистр ====
 +
-----
 +
Свойства команды:
 +
  Команда: TEXT="%s" && echo -n "$TEXT" | sed -e 's/\(.*\)/\L\1/'
 +
  Выходные данные команды: "Заменить текущее содержимое буфера обмена".
 +
 +
==== Перевести текст в верхний регистр ====
 +
-----
 +
Свойства команды:
 +
  Команда: TEXT="%s" && echo -n "$TEXT" | sed -e 's/\(.*\)/\U\1/'
 +
  Выходные данные команды: "Заменить текущее содержимое буфера обмена".
 +
 +
==== Сделать первую букву каждого слова большой (titlecase) ====
 +
-----
 +
Свойства команды:
 +
  Команда: TEXT="%s" && echo -n "$TEXT" | sed "s/.*/\L&/; s/[a-zа-я']*/\u&/g"
 +
  Выходные данные команды: "Заменить текущее содержимое буфера обмена".
  
 
=== Используя скрипт на python3 ===
 
=== Используя скрипт на python3 ===
 
-----
 
-----
Скачиваем этот скрипт: [[:File:text-processing.zip]]<br />
+
Скачиваем этот скрипт: [[File:text-processing.zip]]<br />
Кладем его, например, в ~/.local/bin/.<br />
+
Кладем его, например, в '''~/.local/bin/'''.<br />
Далее, добавляем новые действия.<br />
+
Далее, если есть действие «'''Конвертация текста'''» жмём «'''Изменить действие'''» и добавляем команды, если такого действия нет — добавляем по инструкции в начале этой страницы.<br />
  
 
==== Перевести текст в нижний регистр. ====
 
==== Перевести текст в нижний регистр. ====
 
-----
 
-----
  Свойства действия:
+
Свойства команды:
    Регулярное выражение: отсутствует
+
  Команда: python3 ~/.local/bin/text-processing -l -n -i '%s'
    Автоматически: Нет
+
  Выходные данные команды: "Заменить текущее содержимое буфера обмена".
    Описание: отсутствует
+
  Команда для действия:
+
    Команда: 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 -u -n -i '%s'
 +
  Выходные данные команды: "Заменить текущее содержимое буфера обмена".
  
==== Каждое слово начинается с заглавной буквы ====
+
==== Сделать первую букву каждого слова большой (titlecase) ====
 
-----
 
-----
    Команда: python3 ~/.local/bin/text-processing -t -n -i '%s'
+
Свойства команды:
 +
  Команда: python3 ~/.local/bin/text-processing -t -n -i '%s'
 +
  Выходные данные команды: "Заменить текущее содержимое буфера обмена".
  
==== Сделать инверсию ====
+
==== Перевести символы нижнего регистра в верхний, а верхнего — в нижний ====
 
-----
 
-----
Символы в верхнем регистре перевести в нижний, а в нижнем - в верхний.
+
Свойства команды:
    Команда: python3 ~/.local/bin/text-processing -s -n -i '%s'
+
  Команда: python3 ~/.local/bin/text-processing -s -n -i '%s'
 +
  Выходные данные команды: "Заменить текущее содержимое буфера обмена".
  
 
Пример:
 
Пример:
  HeLlO WoRlD.
+
HeLlO WoRlD.
  hElLo wOrLd.
+
hElLo wOrLd.
 
+
  
 
== Прочее ==
 
== Прочее ==
 +
 
=== Открыть скопированный текст в kwrite ===
 
=== Открыть скопированный текст в kwrite ===
  Свойства действия:
+
Свойства действия:
    Регулярное выражение: отсутствует
+
  Шаблон соответствия: отсутствует
    Автоматически: Нет
+
  Описание: "Открыть в kwrite"
    Описание: отсутствует
+
  Включить во всплывающем меню авто действий: Нет
  Команда для действия:
+
Свойства команды:
    Команда: echo -n '%s' | kwrite -i -l 1 -c 1
+
  Команда: echo '%s' | kwrite -i -l 1 -c 1
    Вывод команды: Игнорировать
+
  Описание: "Открыть в kwrite".
    Описание: "Open at kwrite".
+
  Выходные данные команды: "Игнорировать"
 +
 
 +
=== Скопировать в буфер важные данные ===
 +
В действиях можно хранить любые данные, например, номера банковских карт:
 +
Свойства действия:
 +
  Шаблон соответствия: отсутствует
 +
  Описание: "Номера банковских карт"
 +
  Включить во всплывающем меню авто действий: Нет
 +
 
 +
Свойства команды:
 +
  Команда: echo -n "0000 0000 0000 0000"
 +
  Описание: Visa
 +
  Выходные данные команды: "Дописать в буфер обмена"
 +
 
 +
Свойства команды:
 +
  Команда: echo -n "1111 1111 1111 1111"
 +
  Описание: MasterCard
 +
  Выходные данные команды: "Дописать в буфер обмена"
 +
 
 +
Свойства команды:
 +
  Команда: echo -n "2222 2222 2222 2222"
 +
  Описание: Мир
 +
  Выходные данные команды: "Дописать в буфер обмена"
 +
 
 +
:[[File:2023-11-23_09.png||400px]]
 +
 
 +
Ну а дальше, если буфер не пуст, то после нажатия '''Ctrl+Alt+R''', появится такое окно:
 +
 
 +
:[[File:2023-11-23_10.png]]
 +
 
 +
При выборе любой карты её номер тут же будет скопирован в буфер и можно будет его вставить куда-нибудь с помощью ctrl+v.
 +
 
 +
=== Скопировать в буфер внешний ip ===
 +
Свойства команды:
 +
  Команда: curl ifconfig.me
 +
  Выходные данные команды: "Дописать в буфер обмена"
 +
 
 +
=== Скопировать в буфер базовую информацию о системе выданную neofetch ===
 +
  Свойства команды:
 +
  Команда: neofetch --stdout
 +
  Выходные данные команды: "Дописать в буфер обмена"
 +
 
 +
Данные в буфер добавляются с небольшой паузой.
 +
 
 +
=== Скопировать в буфер всю информацию о системе выданную inxi ===
 +
Свойства команды:
 +
  Команда: inxi -Fc 0
 +
  Выходные данные команды: "Дописать в буфер обмена"
 +
 
 +
Данные в буфер добавляются с небольшой паузой.
 +
 
 +
=== Где klipper сохраняет пользовательские действия ===
 +
klipper сохраняет пользовательские действия в файле '''~/.config/plasmashellrc''' в разделах «'''[Action_№]'''» и «'''[Action_№/Command_№]'''».

Текущая версия на 14:39, 24 ноября 2023

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

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

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


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


Жмём пкм по значку буфера обмена на панели -> «Настроить буфер обмена» -> «Настройка действий».

2023-11-21 1.png

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

2023-11-21 2.png

В окне «Свойства команды» указываем:

Команда: TEXT="%s" && echo -n "${TEXT,,}"
Описание: "Перевести в нижний регистр". 
Выходные данные команды: Активируем "Заменить текущее содержимое буфера обмена".
2023-11-21 3.png

Жмем «Ок». В предыдущем окне тоже «Ок». Далее «Применить».
Проверяем:

2023-11-21 4.png

2023-11-23 5.png

2023-11-21 6.png

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

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


Если действие «Конвертация текста» уже существует, то кликаем по нему и жмём кнопку «Изменить действие», в открывшемся окне жмякаем «Добавить команду».
В окне «Свойства команды» указываем:

Команда: TEXT="%s" && echo -n "${TEXT^^}"
Описание: "Перевести в верхний регистр".
Выходные данные команды: "Заменить текущее содержимое буфера обмена".

Если действие «Конвертация текста» ещё не существует, то выполняем то же, что и в разделе «Перевести текст в нижний регистр» в начале этой страницы, только нужно будет указать команду и описание из этого раздела.


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

2023-11-23 0.png

Используя sed


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


Свойства команды:
  Команда: TEXT="%s" && echo -n "$TEXT" | sed -e 's/\(.*\)/\L\1/'
  Выходные данные команды: "Заменить текущее содержимое буфера обмена".

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


Свойства команды:
  Команда: TEXT="%s" && echo -n "$TEXT" | sed -e 's/\(.*\)/\U\1/'
  Выходные данные команды: "Заменить текущее содержимое буфера обмена".

Сделать первую букву каждого слова большой (titlecase)


Свойства команды:
  Команда: TEXT="%s" && echo -n "$TEXT" | sed "s/.*/\L&/; s/[a-zа-я']*/\u&/g"
  Выходные данные команды: "Заменить текущее содержимое буфера обмена".

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


Скачиваем этот скрипт: Файл:Text-processing.zip
Кладем его, например, в ~/.local/bin/.
Далее, если есть действие «Конвертация текста» жмём «Изменить действие» и добавляем команды, если такого действия нет — добавляем по инструкции в начале этой страницы.

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


Свойства команды:
  Команда: python3 ~/.local/bin/text-processing -l -n -i '%s'
  Выходные данные команды: "Заменить текущее содержимое буфера обмена".

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


Свойства команды:
  Команда: python3 ~/.local/bin/text-processing -u -n -i '%s'
  Выходные данные команды: "Заменить текущее содержимое буфера обмена".

Сделать первую букву каждого слова большой (titlecase)


Свойства команды:
  Команда: python3 ~/.local/bin/text-processing -t -n -i '%s'
  Выходные данные команды: "Заменить текущее содержимое буфера обмена".

Перевести символы нижнего регистра в верхний, а верхнего — в нижний


Свойства команды:
  Команда: python3 ~/.local/bin/text-processing -s -n -i '%s'
  Выходные данные команды: "Заменить текущее содержимое буфера обмена".

Пример:

HeLlO WoRlD.
hElLo wOrLd.

Прочее

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

Свойства действия:
  Шаблон соответствия: отсутствует
  Описание: "Открыть в kwrite"
  Включить во всплывающем меню авто действий: Нет
Свойства команды:
  Команда: echo '%s' | kwrite -i -l 1 -c 1
  Описание: "Открыть в kwrite".
  Выходные данные команды: "Игнорировать"

Скопировать в буфер важные данные

В действиях можно хранить любые данные, например, номера банковских карт:

Свойства действия:
  Шаблон соответствия: отсутствует
  Описание: "Номера банковских карт"
  Включить во всплывающем меню авто действий: Нет
Свойства команды:
  Команда: echo -n "0000 0000 0000 0000"
  Описание: Visa
  Выходные данные команды: "Дописать в буфер обмена"
Свойства команды:
  Команда: echo -n "1111 1111 1111 1111"
  Описание: MasterCard
  Выходные данные команды: "Дописать в буфер обмена"
Свойства команды:
  Команда: echo -n "2222 2222 2222 2222"
  Описание: Мир
  Выходные данные команды: "Дописать в буфер обмена"
2023-11-23 09.png

Ну а дальше, если буфер не пуст, то после нажатия Ctrl+Alt+R, появится такое окно:

2023-11-23 10.png

При выборе любой карты её номер тут же будет скопирован в буфер и можно будет его вставить куда-нибудь с помощью ctrl+v.

Скопировать в буфер внешний ip

Свойства команды:
  Команда: curl ifconfig.me
  Выходные данные команды: "Дописать в буфер обмена"

Скопировать в буфер базовую информацию о системе выданную neofetch

 Свойства команды:
  Команда: neofetch --stdout
  Выходные данные команды: "Дописать в буфер обмена"

Данные в буфер добавляются с небольшой паузой.

Скопировать в буфер всю информацию о системе выданную inxi

Свойства команды:
  Команда: inxi -Fc 0
  Выходные данные команды: "Дописать в буфер обмена"

Данные в буфер добавляются с небольшой паузой.

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

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