===Como usar o PRIMÁRIO e a Área de Transferência do X11===
Vou descrever neste pequeno tutorial as 5 formas de compartilhamento de texto (uma de imagem) entre os aplicativos rodados sob o X11. Para quem não e familiar, o X11 é o servidor gráfico de quase todas distros do GNU+Linux, e é muuuuito antigo e muuuito estável... Não sei se as distros que incorporarem o Wayland como servidor gráfico terão essas áreas de transferência....
De qualquer forma, só precisaremos focar em 2 formas para o nosso uso no dia-a-dia: Área de Transferência propriamente dita e o PRIMÁRIO.
-Opera em todas as distribuições que utilizam o X11 para a interface gráfica;
0) Tampão de Cópia ("Cutbuffer") (Em Desuso) e Gerenciadores de Compartilhamento de Texto
Manda cópia de linha arbritrárias para o servidor do "cutbuffer". Os programas automaticamente mandavam linhas de texto para o cutbuffer do servidor do X, o programa podia fazer isso a cada segundo e então gerar um imenso uso da banda de tranferência de dados para o servidor de X, e se o usuário trocava o programa que utilizava, o novo programa poderia "tomar" o cutbuffer e sobrescrever qualquer coisa que estivesse lá sem o controle do usuário; hoje em dia, se você utilizar um gerenciador da área de transferência, ele funcionará como o cutbuffer, já que vai produzir uma cópia do texto e vai se tornar, a partir desse momento, o "dono" da Área de Transferência; porém, hoje em dia uma vulnerabiliade no gerenciador da área de transferência poderia possibilitar o acesso de leitura (sem o pedido pelo usuário) do que está armazenado no gerenciador da área de transferência; imagine se o cutbuffer automaticamente copiasse todas as suas senhas digitadas para o compartilhamento;
==Quando o Usuário Copia a Seleção de Forma Explícita==
1) Área de transferência (Clipboard)
O programa que gerou o texto selecionado "possui" a Área de Transferência, e quando um outro programa (ou o mesmo programa) solicita à Área de Transferẽncia o texto a ser copiado, a Área de Transferência então solicita ao programa que a "possui" para enviar a linha de texto (através do servidor de X) para o ponto de inserção do outro programa que o usuário quer.
Este é o método que o Windows gerencia o compartilhamento de texto e foi implementada no X11 também para que as experiências de quem é de fora do Linux possa ser um pouco mais consistente.
Com relação aos atalhos mais conhecidos entre os usuários de computador em geral, CTL+C e CTL+V, são atalhos de teclado criados pela Microsoft, que geram incompatibilidades, até hoje, com alguns pacotes do GNU+Linux. Pode-se notar isso claramente quando se utiliza uma janela de terminal; se durante a execução de um aplicativo apertar-se CTL+C , geralmente o aplicativo recebe este comando como "cancelar".
==Seleções Efêmeras e Implícitas para Copiar==
2) Seleção do PRIMÁRIO
Quando o MIT desenvolveu o X11, se preocupou em implementar uma forma fundamental e rápida para o compartilhamento de linhas de texto entre aplicativos que estavam sendo usados pelo usuário, e então desenvolveram os Atoms de Seleção do X11. O método do PRIMÁRIO muda constantemente o texto que vai ser compartilhado/copiado, bastando apenas realizar-se uma nova seleção de texto com o ponteiro do mouse.
Para usar o PRIMÁRIO, você só precisa selecionar o texto com o mouse e colocar o cursor extamente no lugar onde você quer inserir uma cópia do texto selecionado, e apertar o botão do *meio* do mouse... Observe que em nenhum momento foi necessário usar o comando de copiar, somente uma seleção de texto e um comando de arrancar uma cópia da seleção do PRIMÁRIO, então _não_ se usa o menu Editar > Copiar, nem CTL+C neste método;
Então automaticamente você tem duas áreas de transferências, uma que se usa o copiar e colar, e a outra que se uso o método do PRIMÁRIO... É um "easter-egg" para os usuários avançados, já que essa funcionalidade esquecida do X11 não influencia em nada no compartilhamento do texto pela Área de Transferência;
3) Seleção do SECUNDÁRIO (Em Desuso);
Seleção que segue os mesmos princípios do PRIMÁRIO, mas exige que você aperte o ALT antes de selecionar o texto a ser copiado com o mouse, e também precionar o ALT quando for clicar com o botão do meio do mouse para arrancar/copiar o texto para o lugar de inserção; infelizmente, é uma função que o X11 tem mas que só funciona se os aplicativos dispuserem da extensão dessa funcionalidade do X11 nos seus apps, então quas enão é utilizado mais hoje em dia; um aplicativo que ainda utiliza o SECUNDÁRIO é o emacs;
4) Arraste (Drag and Drop - XDND);
Quando você seleciona o texto com o mouse, ou uma imagem, e arrasta eles com o botão direito do mouse pressionado para outra janela, ele corta o cola o texto no ponto de inserção escolhido; observe que se você, depois de selecionar o texto e antes de precionar o botão direito do mouse para o arraste, apertar também o CTL, o texto selecionado irá permanecer no local e uma cópia será feita no local de inserção em que você soltar o botão do mouse;
Existem ainda algumas dicas de como estender uma seleção de texto já feita, só para arrumar ela. Nesse caso, você deve pressionar a tecla SHIFT e selecionar uma nova marca de final de seleção, ou seja, a seleção vai continuar saindo do ponto de partida e será estendida até o novo ponto de marcação; também poderá recuar o ponto de partida da seleção utilizando o SHIFT;
Clique duplos selecionam palavras inteiras e cliques triplos selecionam frases inteiras, e em alguns aplicativos, eles selecionam todo o parágrafo.
VÍDEO do Tutorial: https://www.youtube.com/watch?v=UXHlzaIDjP8&t=125s
*Clique com Botão_do_meio = Botão_esquerdo + botão_direito
Referências:
*Não esqueça do serviço de traduções do google!
Gerenciadores de Área de Transferência:
https://opensource.com/article/17/6/clipboard-managers
https://www.slant.co/topics/6280/~linux ... rd-manager
Explicações boas sobre o assunto (em Inglês):
https://sjohannes.wordpress.com/2010/02 ... selection/
http://www.cs.man.ac.uk/~chl/secondary-selection.html
http://www.cs.man.ac.uk/~chl/secondary.html
https://specifications.freedesktop.org/ ... latest.txt
https://www.emacswiki.org/emacs/Seconda ... 1XDND.html