Saudações!!!
Essa eu procurava há muito tempo. Quem me conhece vai lembrar que eu já levantei diversas vezes o questionamento: “Porquê não consigo copiar algum texto pelo X11 e colar no TTY (ctrl+alt+F3 por exemplo) e vice-versa? Dever ter alguma ferramenta pra isso ou algum segredo pra fazer isso..“.
Então, hoje instalando o Fedora 13 percebi que um dos softwares da lista de pacotes era xsel – manipulate the X selection.
Rapidamente fuçando no MAN do produto, ví como é simples de utilizar. Segue algumas explicações:
Existem basicamente três seleções: primary, secondary, e a clipboard. Sendo que vamos falar aqui apenas da PRIMARY e da CLIPBOARD pois ja é o suficiente.
A PRIMARY é aquela que voce seleciona algo no X11 com o botão esquerdo do mouse e ele copia, então você consegue colar com o botão do meio do mouse onde o ponteiro do mouse estiver “mirando”.
A CLIPBOARD é aquela que você usa CTRL+C e CTRL+V, e a colagem vai apenas onde está o cursor.
Antes de proceder a leitura é preciso entender que são duas coisas diferentes a primary e a clipboard.
Agora vamos agora ao que interessa:
1) Selecione algum texto com o botão esquerdo do mouse pelo X11 (isso vai preencher a PRIMARY);
2) Selecione algum texto com o mouse pelo X11 e pressione ctrl+c (isso vai preencher a CLIPBOARD);
3) Aperte ctrl+alt+F3 para ir à um novo tty e coloque seu usuário e senha;
4) Exporte a variavel de ambiente DISPLAY conforme instruções logo abaixo;
5) Use o comando xsel -o e você verá em STDOUT o que você havia selecionado lá no X11 (PRIMARY);
6) Use o comando xsel -b -o e você verá em STDOUT o que você selecionou e pressionou ctrl+c lá no X11 (CLIPBOARD);
Obs.: Se você não exportar a variavel de ambiente DISPLAY, verá algo assim ao usar o xsel no novo tty:
[hudson@vostrolab ~]$ xsel -o
xsel: Can’t open display: (null)
Para exportar a variavel DISPLAY, temos que ver qual o display nosso X11 está usando:
[hudson@vostrolab ~]$ ps aux | grep X
root 1277 3.9 1.4 160024 58112 tty1 Ss+ 10:51 8:50 /usr/bin/Xorg :0 -nr -verbose -auth /var/run/gdm/auth-for-gdm-bxfxuy/database -nolisten tcp vt1
Então basta exportar a DISPLAY:
[hudson@vostrolab ~]$ export DISPLAY=:0
Para fazer o processo inverso, de copiar algo no TTY e poder colar no X11, basta usar a opção -i combinada com alguma informação vinda por STDIN:
Para inputar na PRIMARY:
[hudson@vostrolab ~]$ echo “CIALINUX COM O BOTÃO DO MEIO” | xsel -i
Ou na CLIPBOARD:
[hudson@vostrolab ~]$ echo “CIALINUX COM O CTRL+V” | xsel -b -i
Faça seus testes colando com botão do meio ou ctrl+v em qualquer lugar no X11.
Grande abraço e até o próximo POST!
Por: Hudson Murilo dos Santos
Referências: man xsel
Uma interação sobre “Manipulando a clipboard do X11 com o xsel”