
Estou ajustando o navegador Webkit emLinuxe me deparei com os termos "Seleção Primária" e "Seleção ou buffer da área de transferência" muitas vezes.
- Quero entender o que são e que diferença têm?
- Onde se encaixa a colagem arrastar e soltar?
- Qual é exatamente a função
xclip
neste assunto?
Responder1
Eles fazem parteÁtomos de seleção, ouX átomos.
OManual de convenções de comunicação entre clientespara estados X:
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 estas três seleções:
- PRIMÁRIO
- SECUNDÁRIO
- PRANCHETA
Resumidamente:
- PRIMÁRIOa seleção é normalmente usada, por exemplo, por terminais ao selecionar texto e colá-lo pressionando o botão do meio do mouse. Como emo texto selecionado está na área de transferência principalsem nenhumexplícitoação de cópia ocorrendo. Quick-Copy é um bom nome para isso. (Não limitado a emuladores de terminal, mas como exemplo.)
- PRANCHETAé usado principalmente em conexão comEstilo MS Windowsoperações da área de transferência. Selecione+Copiar. Os dados residem noamortecedor.
O suporte para PRIMARY foiadicionado 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 deles usar pela -clipboard
opção dada como argumento.
Corr.: Arrastar e Soltar reside emXdnd.Há também uma entrada na Wikipédia noespecificação. Ele usaXdndSelectione não deve interferir no PRIMARY.
O protocolo é implementado pelo menos por Qt e GTK.
Responder2
FWIW, no Debian (Kali), aqui está como as diferentes seleções correspondem às várias ‘opções de colagem’:
echo primary | xclip -sel p
echo secondary | xclip -sel s
echo clipboard | xclip -sel c
# Ctrl + Shift + v: clipboard
# Middle click: primary
# Paste selection: (Shift + Insert): primary
# with the -o option, xclip outputs the specified "selection"
# to stdout:
xclip -o -sel p
# stdout output: "primary"
xclip -o -sel s
# stdout output: "secondary"
xclip -o -sel c
# stdout output: "clipboard"
No meu caso, fiz isso em uma VM VMWare. A seleção que o sistema operacional host usa/vê/recebe é primária.
Se você não se importa em usar seleções múltiplas, você pode usar o alias xclip para usar as seleções primárias e da área de transferência da seguinte forma: