Qual é a diferença entre as pranchetas X?

7
  • principal
  • Secundário
  • Área de transferência
  • Cortar buffers

Qual é a diferença entre estes?

Experimentando com xclip e gedit:

Definindo o principal

Nada acontece, tanto quanto eu posso dizer

Definindo o secundário

Novamente, até onde eu sei, não afeta o gedit

Definindo a área de transferência

paste na edição e o menu de contexto está desativado, mas pressionar control-v faz com que o texto que eu quero colar seja exibido.

Copiando no gedit

parece estar configurando primary e clipboard

Para que cada um é usado? Como eles geralmente são acessados nos programas? Como isso é implementado? São propriedades na janela raiz (em caso afirmativo, quais são seus nomes)?

Cortar buffers

Eu entendo que os buffers de clipe são usados no xterm quando você seleciona texto e são colados quando você clica no meio. Algum outro programa usa buffers de corte?

    
por Jeffrey Aylesworth 02.01.2010 / 01:15

2 respostas

7

X seleções, buffers de corte e eliminações

Clipboard: for when the user has explicitly copied something (e.g., the ''Edit/Copy'' menu item.)
Primary: more ephemeral and implicit: it is for when the user has highlighted or selected something (e.g., dragging the mouse over some text.)
Cut Buffers: Obsolete. Never, ever, ever use them. Ever.

Secundário? Definido em ICCCCCCCM, mas não encontrei um programa único que o use.

O artigo da Wikipédia sobre Seleção da X Window diz que apenas buffers de corte eram propriedades da janela do janela raiz, chamada CUT_BUFFER1 e assim por diante.

    
por 02.01.2010 / 10:32
3

X os chama de "seleções" em vez de "pranchetas". De Wikipedia (o artigo todo provavelmente também o ajudará):

At the level of the core protocol, the PRIMARY and CLIPBOARD selections do not differ. But the xclipboard client makes them behave differently. In particular, when another client asserts the ownership of the CLIPBOARD selection, this program requests and displays it in a window. Any further request for this selection are handled by xclipboard. This way, the content of the selection survives the client having copied it.

Não existe diferença inerente entre eles, a única diferença está no comportamento dos aplicativos que os utilizam. Por exemplo, você pode escrever um programa que, quando você pressiona ctrl v , usou a seleção principal em vez da área de transferência, e estaria perfeitamente bem do ponto de vista técnico. A diferença é social, na qual os usuários esperam determinado comportamento, e é inteligente seguir a maior parte do tempo.

Eu achei que selecionar texto e clicar com o botão do meio para colar estava usando a seleção principal, em vez de cortar buffers (que são obsoletos), mas posso estar errado, pois nunca codifiquei diretamente no protocolo X.

    
por 02.01.2010 / 10:43

Tags