Existem vários frameworks disponíveis que suportam pranchetas e tal comportamento.
Existe, por exemplo, o GTK , que fornece um evento Gdk GtkClipboard-owner-change que sempre é acionado quando o conteúdo da área de transferência é alterado. Um aplicativo pode ser escrito em uma linguagem de programação que suporte GTK, como C, Python ou Vala .
No Vala, o snippet a seguir pode, por exemplo, ser usado para imprimir no stdout quando um conteúdo da área de transferência é alterado
namespace ClipboardChanged
{
public static int main (string[] args)
{
Gtk.init (ref args);
Gtk.Clipboard clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD);
clipboard.owner_change.connect(() => {
stdout.printf("Clipboard has changed\n");
});
Gtk.main();
return 0;
}
}
Este snippet de código pode ser salvo em um arquivo de texto, por exemplo clipboard-changed.vala e ser compilado com valac com o seguinte comando
valac --pkg=gtk+-3.0 clipboard-changed.vala
Claro que para isso funcionar, o valac precisa ser instalado
sudo apt-get install valac
Há apenas uma lacuna nisso, embora só funcione com a área de transferência principal, mas não com a seleção principal (seleção de conteúdo com o mouse).