xclip no puede hablar con su servidor X. Verifique que $ DISPLAY esté configurado correctamente. ¿Otros clientes X trabajan con la misma configuración $ DISPLAY?
Esta:
$ echo 'hello' | xclip
funciona bien para mí
editar
Obtiene el error después de acceder su
a otro usuario porque ese usuario no tiene los permisos adecuados para conectarse a su servidor X. X usa un protocolo de verificación de permisos conocido como MIT magic cookie, que funciona creando una cadena aleatoria para usar como contraseña. Esa contraseña se almacena en el archivo $XAUTHORITY
o ~/.Xauthority
si la variable de entorno no está establecida. Es manipulado por la xauth
herramienta. Por ejemplo,
$ xauth list
…
Feynman/unix:0 MIT-MAGIC-COOKIE-1 <<redacted>>
…
No estoy seguro de para qué estás haciendo el su, pero:
- si es así, puede leer el archivo, simplemente ejecute el gato como el otro usuario y canalice la salida de su a xclip. De esta manera, xclip se ejecuta como su usuario y funciona.
- si está intentando configurar el portapapeles para la sesión X de otro usuario, deberá configurarlo
$DISPLAY
en la pantalla $XAUTHORITY
de ese usuario y en el archivo de autoridad X de ese usuario. Mire en ConsoleKit (si lo está usando) y /var/lib/gdm
(si está usando gdm) para encontrar dichas cosas.
Si nada de lo anterior, tendrá que usar xauth para configurar la autorización, y tenga en cuenta que cualquier cosa que se conecte a su servidor X puede hacer todo tipo de maldad, como ver todas las pulsaciones de teclas.
PD: se $DISPLAY
refiere al servidor X en el que están conectados. A menos que haya configurado varios servidores en ejecución (por lo que varios usuarios pueden iniciar sesión a la vez), será lo mismo para todos los usuarios.