💾 Archived View for it.omarpolo.com › articoli › fifo-come-clipboard.gmi captured on 2022-04-29 at 12:18:56. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2022-04-28)

-=-=-=-=-=-=-

FIFO come clipboard

La parte più divertente di UNIX è, mia modesta opinione, il fatto che l’intero sistema si comporti in modo “stupido”. (E c’è chi lo prenderebbe come un insulto…) Le utility di sistema non cercano di essere intelligenti o di avere comportamenti strani (almeno quelle classiche per fortuna) e quindi è possibile abusare in ogni modo di ogni strumento.

È ciò che rende UNIX & co sistemi operativi divertenti da usare e affidabili allo stesso tempo, almeno in teoria.

In questi ultimi giorni mi sto divertendo ad abusare delle fifo (named pipe) per costruire un piccolo sistema di “clipboard”… senza clipboard!

L’idea è semplice, in un terminale invio dati a ‘/tmp/clip’ e li vedo spuntare fuori dall’altra parte. Ad esempio, giusto trenta secondi prima di scrivere questa entry stavo preparando un’email per inviare il port di nq nella mailing list di OpenBSD. La mia interazione è stata qualcosa del tipo:

$ molto tempo prima
$ mkfifo /tmp/clip

$ # in un terminale
$ pkg_info nq > /tmp/clip

e poi da mg (“micro Emacs”, un clone minimale del celebre editor di testi) ‘C-x i /tmp/clip RET’ (‘:r /tmp/clip’ per gli amici che usano ed/vi), ovvero ho chiesto all’editor di leggere /tmp/clip e inserirlo nella posizione del cursore.

Certo, avrei potuto fare ‘C-u M-! pkg_info nq RET’ (‘:r !pkg_info nq’ per i cultisti di vi), ma un solo modo di fare le cose è noioso. (Inoltre, mg non supporta — ancora, ho qualche patch in lavorazione − C-u su M-! e M-|.)

È talmente simpatica come interazione che sono tentato di creare /tmp/clip via /etc/rc.local per averlo sempre a disposizione.

$BlogIt: fifo-come-clipboard.gmi,v 1.2 2022/03/03 19:22:59 op Exp $