Програмная работа с буфером обмена в графиеской среде KDE

Добрый день.
Имеется мышка с дополнительными кнопками. В винде я привык на две из них вешать копирование\вставку. Перейдя на Kubuntu 13.10., попытался настроить то же самое. С помощью xbyndkeys повесил на дополнительные кнопки произвольные скрипты, с помощью которых осуществляется должна осуществляться работа с буфером обмена. С этим проблем нет. Теперь самое сложное - нужно програмно вызывать копирование\вставку, что бы все это надежно работало. Что я пробовал:
1. С помощью xvkbd/xdotool/xto эмулировать нажатие клавиш Ctrl+C/V или Ctrl/Shift+Insert.
2. С помощью этих же утилит напрямую набирать текст, получаемый из буфера обмена через xclip/xsel.
Первый вариант работает через раз - криво и ненадежно. Второй ещё хуже.
В свзяи с этим вопрос - как можно вызвать копирование\вставку быстро и надежно, не связываясь с глючной эмуляцией нажатия клавиатуры? Я долго гуглил, но ничего не нашел.

0
Foxy - 26 Декабрь, 2013 - 22:38
Изображение пользователя Foxy.

А чем копировать/вставить через среднюю кнопку мыши не устраивает, что нужен такой велосипед?

0
IceCube - 26 Декабрь, 2013 - 22:42

То же вариант, но все таки это неудобно по ряду причин. Например, если нужно скопировать кусок кода поверх другого - средняя кнопка не поможет.

0
DarkneSS - 26 Декабрь, 2013 - 23:23
Изображение пользователя DarkneSS.

У меня imwheel легко и ненавязчиво навешивает на боковые клавиши нужные сочетания. Можно разные в разных приложениях. Лучше я не нашёл.

0
IceCube - 27 Декабрь, 2013 - 01:47

Смотрел я эту программу. То же самое, что и xbyndkeys. Главный вопрос - работу с буфером обмена - она никак не решает.

0
DarkneSS - 27 Декабрь, 2013 - 06:39
Изображение пользователя DarkneSS.

И чем плохо эмулирование Ctrl+C/V?..

0
IceCube - 27 Декабрь, 2013 - 16:04

Тем, что в некоторых случаях страшно глючит.

0
DarkneSS - 27 Декабрь, 2013 - 18:15
Изображение пользователя DarkneSS.

В каких случаях? Как глючит? Из вас всё надо клещами тянуть :( Я этой утилитой пользуюсь, сколько на линуксе, никаких нареканий.

0
IceCube - 27 Декабрь, 2013 - 22:18

В общем, я частично решил проблему. Оказывается, часть глюков вызывает klipper, а именно опция "не допускать пустого буфера обмена". Её нужно снять.
Для копирования\вставки используется xdotool - она работает надежнее и гибче настраивается, чем xvkbd. Но у xdotool есть глюк - она не работает при русской раскладке. Поэтому пришлось повесить на кнопки Win форсированное переключение раскладки и дальше вызывать скрипт для копирования:
#!/bin/bash
LANG=$(xset -q | awk 'BEGIN { a[1]="ru"; a[0]="en"; } /LED/ { print a[$10 && 32]; }')
case $LANG in
ru)
xdotool key 'ISO_First_Group'
xdotool keydown 'Control'
xdotool keydown 'Insert'
sleep 0.3
xdotool keyup 'Insert'
xdotool keyup 'Control'
xdotool key 'ISO_Last_Group';;
en)
xdotool keydown 'Control'
xdotool keydown 'Insert'
sleep 0.3
xdotool keyup 'Insert'
xdotool keyup 'Control'
esac

для вставки - аналогично.

Но в любом случае, такое решение корявое. По прежнему хотелось бы найти родное средство для работы с буфером обмена (как xclip, но для окон, а не терминала). Неужели в открытой ОС нет ничего подобного?

0
Michael72 - 29 Декабрь, 2013 - 18:11
Изображение пользователя Michael72.

Вы хотите с помощью мышки производить команды:
1. "Копировать в буфер обмена"
2. "Вставить из буфера обмена"

У меня средняя кнопка мышки выполняет команду по пункту 2. А первый пункт можно сделать так: в klipper в настройках убрать галку у опции "Игнорировать выделение мышью" как показано на скрин-шоте:

После этого при выделении текста мышью он сразу же попадает в буфер обмена вообще без нажатия какой либо кнопки. Возможно это не так удобно, но тем не менее чем то похоже на решение вашей задачи. Кстати, здесь будет полезно посмотреть в справке к приложению klipper статью «Работа с буфером обмена». Например я только сейчас узнал, что есть два разных буфера: буфер обмена и буфер выделения.

Третья задача, которую, — как я понял, — вы также перед собой ставите — производить действия с буфером обмена специальными скриптами. Эту задачу также можно решить с помощью утилиты klipper. Для этого в настройках перейдите на вкладку "Действия":

Отправить комментарий

CAPTCHA на основе изображений
Введите цифры