Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Вставка текста по сочетанию клавиш. Решение.  (Прочитано 1571 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн dolsky

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Пришлось прошерстить не один десяток ресурсов, чтобы понять, что нет готового решения проблемы по сабжу. Решил поделиться своим скриптом, вдруг кто столкнется с такой же проблемой. Решение самое простое, пусть и не самое красивое.

Задача:
По определенным сочетаниям клавиш вставлять куда-угодно (в графической оболочке) определенный текст. Т.е. Сделать аналог автотекста в hotkey-менеджерах для Windows. К сожалению, стандартными средствами Ubuntu это сделать не удается, а потребность в таком функционале при работе с большими объемами данных растет (по крайней мере у меня).

Решение:
1. Устанавливаем xclip и xvkbd
sudo apt-get update
sudo apt-get install xclip xvkbd

2. Создаем в домашней директории bash-скрипт, например, autotext.sh, не забывая установить права на исполнение:
Texts=( "text 1" "text 2" "text 3" )
echo ${Texts[$1]} | xclip -selection clipboard | xvkbd -xsendevent -text '\[Shift_L]\[Insert]'

В массиве Texts задаем нужный нам текст.
Принцип работы прост. С помощью утилиты xclip помещаем нужное значение из массива в буфер обмена (clipboard), а с помощью xvkbd эмулируем нажатие Shift + Insert, вставляя текст из буфера в текущее окно графической оболочки.

3. Теперь при вызове скрипта, получим вставку текста из массива с индексом переданного аргумента:
~/autotext.sh 0  # вставка text 1
~/autotext.sh 1  # вставка text 2
~/autotext.sh 2  # вставка text 3

Остается только повесить вызов скрипта с аргументами на сочетания клавиш, сделать это можно в настройках: Параметры системы - Клавиатура - Комбинации клавиш.
« Последнее редактирование: 18 Марта 2015, 21:01:31 от dolsky »

Оффлайн M1ke

  • Участник
  • *
  • Сообщений: 228
  • ✎…
    • Просмотр профиля
    • IT блог
Делал нечто подобное:  http://maddot.ru/38-ubuntu_-_sozdaem_prodvinutiyi_bufer_obmena.html (в гугле третья ссылка на "свой буфер обмена ubuntu") :)

А вообще есть же программа менеджер буфера обмена glippy
define(TRUE, FALSE); //секс и наркотики

Оффлайн dolsky

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Делал нечто подобное:  http://maddot.ru/38-ubuntu_-_sozdaem_prodvinutiyi_bufer_obmena.html (в гугле третья ссылка на "свой буфер обмена ubuntu") :)

А вообще есть же программа менеджер буфера обмена glippy

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

 

Страница сгенерирована за 0.016 секунд. Запросов: 22.