Recibir notificaciones sobre cambios en el contenido del portapapeles

Recibir notificaciones sobre cambios en el contenido del portapapeles

Me gustaría ver el portapapeles de una manera similar a cómo inotifyobserva los archivos para poder mostrar el contenido real del portapapeles en la línea de estado de tmux o en cualquier otra GUI personalizada en mi sistema. No me gusta el sondeo porque carga el sistema y no responde del todo. Estoy en GNOME/X11. ¿Qué formas existen?

Respuesta1

Dado que esto ha pasado tanto tiempo sin una respuesta, lo atacaré.

En primer lugar, realizar una encuesta sería fácil, pero usted dijo que no quería hacerlo.

Descubra qué programa proporciona su portapapeles real, elimínelo y luego ejecútelo con strace y realice algunas acciones simples en el portapapeles y vea qué hace. Con suerte, esto le dará algunas pistas sobre cómo y dónde almacena los nuevos datos. Una vez que sepas eso, sabrás específicamente lo que estás tratando de detectar.

Respuesta2

Clipnotificares un programa sencillo que responde cuando se detecta algún cambio en el portapapeles.

PD. También monitorea los eventos PRINCIPALES del portapapeles (selecciones de texto) que podrían no ser deseados. Esto se evita fácilmente simplemente comentando una línea: -

XFixesSelectSelectionInput(disp, root, XA_PRIMARY, XFixesSetSelectionOwnerNotifyMask);

en el archivo de código fuente clipnotify.c(Todos los créditos a un comentario enotra respuesta de intercambio de pilahecho por un usuario llamadoAkhilpor sugerir esta solución... me ahorró muchos problemas)

PD. Para instalar clipnotify, simplemente clone el repositorio de github y ejecute el comando makeen el directorio clonado. Se creará un nuevo archivo ejecutable en el directorio que se ejecutará para ejecutar el programa.

información relacionada