Descarrega a área de transferência para stdout no modo follow (para tubulação)?

1

Estou ciente de xsel e xclip , (também discutido em: link ) e usá-los com frequência.

No entanto, agora eu gostaria de ter a área de transferência primária descartada para o stdout, mas no modo "follow". Atualmente, se eu tentar isso:

$ xclip -o
Currently, if I try this:
$ xsel -o
Currently, if I try this:
$

... os comandos saem imediatamente.

O que eu gostaria, em vez disso, é um comportamento semelhante a tail -f /var/log/syslog - ou seja, "follow mode": tail bloqueia o terminal e sempre que uma nova linha é mostrada no arquivo, ele é copiado para a saída padrão.

Eu gostaria de algo semelhante, mas sempre que faço uma nova cópia (ou seja, pressione Ctrl-C ou Ctrl-Shift-C no terminal) - ou seja, sempre que eu mudo o primário conteúdo da área de transferência.

Existe um comando que me ajudará a fazer isso em bash ?

    
por sdaau 23.10.2017 / 16:24

1 resposta

3

OK, aqui está uma solução python. Eu não acho que precise de comentários, ele faz exatamente o que foi solicitado, mas deixe-me saber se minha suposição está errada.

#!/usr/bin/env python
import sys 
import signal
import gi
gi.require_version("Gtk", "3.0")
from   gi.repository import Gtk, Gdk 

def pcallBack(*args):
    print pclip.wait_for_text() 

if __name__ == '__main__':    
        import signal    
        signal.signal(signal.SIGINT, signal.SIG_DFL)    
        pclip = Gtk.Clipboard.get(Gdk.SELECTION_PRIMARY)
        pclip.connect('owner-change',pcallBack)
        Gtk.main()
    
por 23.10.2017 / 21:24