¿Cuál es la diferencia entre la selección primaria y el búfer del portapapeles?

¿Cuál es la diferencia entre la selección primaria y el búfer del portapapeles?

Estoy modificando la tierra del navegador Webkit enlinuxy me encuentro con los términos "Selección primaria" y "Selección del portapapeles o búfer" muy a menudo.

  • Quiero entender ¿qué son y qué diferencia tienen?
  • ¿Dónde encaja el pegado de arrastrar y soltar?
  • ¿Cuál es el trabajo de xclipen este asunto exactamente?

Respuesta1

son parte deSelección de átomos, oX átomos.

ElManual de convenciones de comunicación entre clientespara X estados:

Puede haber un número arbitrario de selecciones, cada una nombrada por un átomo. Sin embargo, para cumplir con las convenciones entre clientes, los clientes deben lidiar solo con estas tres selecciones:

  • PRIMARIO
  • SECUNDARIO
  • PORTAPAPELES

En breve:

  • PRIMARIOLa selección se utiliza normalmente, por ejemplo, en terminales al seleccionar texto y pegarlo presionando el botón central del mouse. Como enel texto seleccionado está en el portapapeles principalsin ningúnexplícitoacción de copia que tiene lugar. Quick-Copy es un buen nombre para ello. (No se limita a emuladores de terminal, sino como ejemplo).
  • PORTAPAPELESse utiliza principalmente en relación conEstilo MS Windowsoperaciones del portapapeles. Seleccione+Copiar. Los datos residen en elbuffer.

Leer más aquí.

El apoyo a PRIMARIO fueagregado a WebKit en 2008.

xclip, que es una interfaz de línea de comandos (herramienta) para selecciones X (portapapeles), tradicionalmente agrega datos al Portapapeles principal. Opcionalmente, se puede elegir cuál usar mediante la -clipboardopción dada como argumento de cualquiera de los dos.


Corr.: Arrastrar y soltar se encuentra enXdd.También hay una entrada de Wikipedia sobreEspecificaciones. UsaXdndSeleccióny no debe interferir con PRIMARIO.

El protocolo está implementado al menos por Qt y GTK.

Respuesta2

FWIW, en Debian (Kali), así es como las diferentes selecciones corresponden a las distintas 'opciones de pegado':

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"

En mi caso, realicé esto en una VM VMWare. La selección que utiliza/ve/recibe el sistema operativo host es primaria.

Si no le interesa utilizar selecciones múltiples, puede utilizar el alias xclip para utilizar selecciones tanto primarias como del portapapeles, así:

xclip

información relacionada