Qual é a diferença entre Seleção Primária e Buffer da Área de Transferência?

32

Estou aprimorando o navegador Webkit no Linux e me deparo com os termos " Seleção Primária " e " Seleção da área de transferência ou buffer " com muita frequência.

  • Eu quero entender o que são e que diferença eles têm?
  • Onde a cola arrastar e soltar se encaixa?
  • Qual é o trabalho xclipexatamente nesta questão?
r004
fonte
3
Por que ter uma única área de transferência coerente quando você pode ter duas? </sarcasm>
LatinSuD 25/06

Respostas:

28

Eles fazem parte dos átomos de seleção ou X átomos .

O Manual de Convenções de Comunicação entre Clientes para X declara:

Pode haver um número arbitrário de seleções, cada uma nomeada por um átomo. Para estar em conformidade com as convenções entre clientes, no entanto, os clientes precisam lidar apenas com essas três seleções:

  • PRIMARY
  • SECUNDÁRIO
  • PRANCHETA

Em resumo:

  • A seleção PRIMARY é normalmente usada por, por exemplo, terminais ao selecionar texto e colar pressionando o botão do meio do mouse. Como no texto selecionado, está na área de transferência principal sem que nenhuma ação de cópia explícita ocorra. Cópia rápida é um bom nome para ele. (Não limitado a emuladores de terminal, mas como um exemplo.)
  • O CLIPBOARD é usado principalmente em conexão com as operações da área de transferência no estilo MS Windows . Selecione + Copiar. Os dados residem no buffer .

Leia mais aqui.

O suporte ao PRIMARY foi adicionado ao WebKit em 2008 .

xclip, que é uma interface de linha de comando (ferramenta) para seleções X (área de transferência), tradicionalmente adiciona dados à Área de transferência primária. Opcionalmente, pode-se escolher qual usar pela -clipboardopção dada pelo argumento de qualquer um.


Corr .: O Arrastar e Soltar reside em Xdnd. Há também uma entrada da Wikipedia sobre as especificações . Ele usa XdndSelection e não deve interferir no PRIMARY.

O protocolo é pelo menos implementado pelo Qt e GTK.

Runium
fonte
O CLIPBOARD é usado principalmente em conexão com as operações da área de transferência no estilo MS Windows. Selecione + Copiar. Os dados residem no buffer. Nós apenas falando sobre isso no linux em nenhum outro lugar
R004
@ R004: O que eu quis dizer é que é um MS Windows como área de transferência (eles trabalham perto de forma idêntica, incluindo, (muitas vezes), atalhos etc.)
Runium
... para o usuário final, é isso.
Runium 25/06
14
E o SECUNDÁRIO?
e18r
9
@emisilva: Isso é secundário (trocadilho.) Não. (Infelizmente) raramente usado. Se você quiser algo mais além dos links em resposta, talvez um mergulho rápido na luta de Charles Lindsey pela seleção secundária seja do agrado :) Você também pode testar com o Emacs - mas o seu WindowManager provavelmente bagunçará as coisas ...
Runium