[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Command line interface to X selections (clipboard)



On Wed, Dec 31, 2008 at 12:18:28PM +0200, Serhiy Storchaka wrote:
> Stanislav Maslovski wrote:
> > On Wed, Dec 31, 2008 at 12:01:47AM +0200, Serhiy Storchaka wrote:
> >> Stanislav Maslovski wrote:
> >> > On Tue, Dec 30, 2008 at 10:28:43PM +0200, Serhiy Storchaka wrote:
> >> >> Как получить доступ к иксовому буферу обмена из командной строки? С
> >> >> целью использования в простых скриптах и однострочниках.
> >> >> 
> >> >> Увидел в репозитарии xclip, который именно для этого и предназначен.
> >> >> Всё бы хорошо, но работает он только с Latin1. Как быть?
> >> > 
> >> > apt-get install xsel
> >> 
> >> Аналогично. Всё, что не в Latin1 заменяет на '?'
> > 
> > Откуда (или куда) пытаешься вставить текст?
> 
> Набираю «e1é2е3», выделяю мышью, запускаю «xsel -o; echo» — получаю «e1�2?».
> Запускаю «xsel -o|iconv -f latin1; echo» — получаю «e1é2?». Вставка средней
> кнопкой мыши везде работает нормально. Локаль en_US.UTF-8.

Набираешь-то где? Обмен содержимым X selection реализован через механизм
межпроцессного взаимодействия, в котором участвуют _обе_ стороны.
Так что я не случайно спрашиваю.

Содержимое selection, как правило, приводится к Latin1 (STRING)
в том случае, если сторонам не удалось договориться о другом общем
формате (например, CTEXT или UTF8_STRING). Так вот, xsel _понимает_
UTF8_STRING.

Например, у меня в качестве терминала -- xterm, в нем запущен jed. Я
выделяю «e1é2е3» в окне c jed и делаю xsel -o в другом xterm. Проблемы
нет.

-- 
Stanislav


Reply to: