Acceder al portapapeles de Unix

16

Tenemos un servidor Linux, y hay varios usuarios (por lo tanto, varias cuentas) en ese servidor. Entonces, lógicamente, habría diferentes portapapeles para diferentes usuarios.

Mi pregunta es: al igual que en Windows podemos tener un visor de portapapeles, ¿cómo puedo ver el contenido del portapapeles en Unix?

Maggi
fuente
3
¿No estoy seguro de lo que estás pidiendo? ¿Están usando sus usuarios X? Si no, y están usando ssh, no tienen un portapapeles.
Ulrich Dangel

Respuestas:

16

Su razonamiento es sólido, pero comenzó con una premisa incorrecta. Linux realmente no tiene "portapapeles", ese concepto simplemente no es parte del sistema operativo. En cambio, el sistema de ventanas, casi siempre X11, implementa portapapeles . El servidor X11, que administra y ejecuta la pantalla, hace portapapeles. De esa manera, un portapapeles es una propiedad de un programa de nivel de usuario, no del sistema operativo, y además, hay un conjunto de portapapeles para cada pantalla (que es más o menos cada monitor o pantalla, pero no siempre).

Dicho esto, el portapapeles X11 es un poco extraño .

En cuanto a ver el contenido, siempre me ha gustado xcb , pero al parecer eso se considera bastante oscuro en estos días. Puede que le guste parcellite , pero mire a su alrededor, parece que existen muchos administradores de portapapeles X11 y programas de interacción.

Bruce Ediger
fuente
10

Un portapapeles es nada especial y sólo un detalle de implementación de algunos programas, por ejemplo X, emacs, vimy otros programas tienen implementaciones de lo que podría hacer referencia a como clipboards.

Como está hablando de un servidor, supongo que sus usuarios inician sesión en el sistema a través de ssheso significa que no hay un portapapeles para estos usuarios, esto es manejado por su sistema host y terminal.

Si desea acceder al Xportapapeles, hay varias soluciones, por ejemplo:

  • xclip : una interfaz de línea de comandos para el clibpoard
  • clipit : un administrador de portapapeles sin dependencias de otros entornos de escritorio

Si desea acceder al Xcontenido del portapapeles para otro usuario, debe acceder a la Xsesión para este usuario.

Hay muchas otras cosas que puede considerar, por ejemplo , autocutsel , integración entre el portapapeles X y emacs, etc.

Ulrich Dangel
fuente
1

En emacs, examine

clipboard-kill-region
clipboard-kill-ring-save
clipboard-yank

Escribí esto para copiar un búfer completo al portapapeles:

(defun copy-all ()
  "copy buffer to clipboard"
  (interactive)
  (clipboard-kill-ring-save (point-min) (point-max))
  (message "Copy done.") )

También, he hecho un alias útil llamado xc, como esto: xclip -selection clipboard. Luego, echo $(pwd) | xc(por ejemplo) enviará la posición del árbol de directorios al portapapeles.

Y, por accidente, noté que puedo pegar en urxvt presionando el botón de la rueda del mouse. No me gusta usar el mouse en absoluto, así que si sabes cómo vincular esto a un atajo de teclado, dímelo.

Editar: Encontré (en algún lugar de este sitio) que la respuesta a la pregunta final (mi) es: ya está hecho, a saber, Shift-Insert.

Emanuel Berg
fuente
Debería publicar su método abreviado de enlace-pegar-teclado como una pregunta; así obtendrá una mejor ayuda.
Bruce Ediger
@BruceEdiger: Correcto, pero todo lo demás en la publicación, incluida la forma de pegar en un terminal (al menos una forma de hacerlo) es útil, ya que entendí la pregunta, así que, ¿ves dónde estoy llegando? - solo ignora la última oración si te molesta :)
Emanuel Berg