Lingua: Italiano | English
Vedi anche: Politica di Sicurezza (IT) · Security Policy (EN)
Incolla immagini dagli appunti direttamente nel terminale come percorsi file — pronto per qualsiasi assistente di coding da CLI.
Premi una scorciatoia da tastiera e l'immagine negli appunti viene salvata come file temporaneo, con il suo percorso digitato automaticamente nella finestra del terminale attivo.
Gli assistenti di coding da CLI come Claude Code, Aider, Gemini CLI e altri accettano file immagine come input, ma non hanno un modo nativo per incollare immagini dagli appunti di sistema. Questo tool colma quel vuoto: copia un'immagine, premi la scorciatoia e il percorso del file viene digitato nel terminale — pronto per l'invio.
Funziona con qualsiasi tool CLI che accetta percorsi file come input.
# 1. Copia un'immagine (screenshot, immagine dal browser, ecc.)
# 2. Metti il focus sul terminale con il tuo assistente di coding
# 3. Premi Ctrl+Shift+V
# 4. Il percorso viene digitato automaticamente:
/tmp/paste_image_20260309_143022_a1b2c3.png
Il nome del file include un timestamp e un suffisso casuale generato da mktemp per sicurezza e unicità.
- Scorciatoia da tastiera globale GNOME (configurabile)
- Rilevamento automatico del tipo di immagine (PNG/JPEG)
- Creazione sicura e atomica dei file tramite
mktempcon permessi0600 - Gestione del focus della finestra (ricorda quale terminale era attivo)
- Notifiche desktop per successi ed errori (con fallback su zenity)
- Pulizia automatica dei file temporanei più vecchi di 7 giorni
- Rotazione dei log con scritture sicure contro race condition tramite
flock - Installazione dipendenze cross-distro (apt/dnf/pacman)
- Supporto flag versione (
--version,-v) - Suite di test completa (50+ casi di test)
- Codice validato con ShellCheck
| Requisito | Dettaglio |
|---|---|
| Sistema operativo | Linux (Ubuntu, Fedora, Arch o altra distro basata su GNOME) |
| Display server | X11 (Wayland non è supportato) |
| Ambiente desktop | GNOME (per la configurazione automatica della scorciatoia) |
| Shell | Bash 4.0+ |
Formati immagine supportati: PNG, JPEG.
git clone https://github.com/user/cli-image-paste.git
cd cli-image-paste
bash install.shL'installer gestisce tutto:
- Rileva e installa le dipendenze mancanti (
xclip,xdotool,libnotify-bin) - Copia lo script in
~/.local/bin/paste-image - Aggiunge
~/.local/binal PATH se necessario - Configura una scorciatoia da tastiera globale GNOME (default:
Ctrl+Shift+V) - Verifica che il servizio
gsd-media-keyssia attivo
Ti verrà chiesto di scegliere una scorciatoia personalizzata o accettare quella predefinita.
| Dipendenza | Scopo | Pacchetto (apt) |
|---|---|---|
xclip |
Lettura immagini dalla clipboard X11 | xclip |
xdotool |
Simulazione input tastiera nel terminale | xdotool |
notify-send |
Notifiche desktop | libnotify-bin |
python3 |
Manipolazione configurazione JSON | python3 |
Tutte le dipendenze vengono installate automaticamente durante il setup. Se preferisci l'installazione manuale:
# Ubuntu/Debian
sudo apt install xclip xdotool libnotify-bin
# Fedora
sudo dnf install xclip xdotool libnotify
# Arch
sudo pacman -S xclip xdotool libnotify- Copia un'immagine negli appunti (screenshot, tasto destro > copia immagine, ecc.)
- Metti il focus sul terminale dove è in esecuzione il tuo assistente di coding
- Premi la scorciatoia (default:
Ctrl+Shift+V) - L'immagine viene salvata e il suo percorso digitato nel terminale
- Premi Invio per inviarla all'assistente di coding
paste-image # Esegui lo script direttamente
paste-image --version # Mostra la versione
paste-image -v # Mostra la versione (forma breve)Durante l'installazione puoi scegliere una scorciatoia personalizzata. Dopo l'installazione, modificala con:
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/paste-image/ binding "<Control><Alt>v"Formato tasti modificatori: <Control>, <Shift>, <Alt>, <Super>.
Puoi anche cambiarla da Impostazioni > Tastiera > Scorciatoie > Scorciatoie personalizzate.
Nota:
Ctrl+Shift+Vè la scorciatoia predefinita per incollare nella maggior parte dei terminali Linux. Se causa conflitti, scegli una scorciatoia diversa (es.<Control><Alt>v).
Le seguenti costanti possono essere modificate direttamente in ~/.local/bin/paste-image:
| Costante | Default | Descrizione |
|---|---|---|
MAX_LOG_LINES |
500 |
Soglia rotazione log (righe) |
NOTIFY_TIMEOUT |
3000 |
Durata notifica (millisecondi) |
CLEANUP_DAYS |
7 |
Eliminazione automatica file temporanei (giorni) |
TYPING_DELAY |
0.1 |
Ritardo prima della digitazione (secondi) |
I log sono salvati in ~/.local/state/paste-image/paste_image.log (oppure $XDG_STATE_HOME/paste-image/ se impostato).
- Formato:
[YYYY-MM-DD HH:MM:SS] messaggio - Rotazione automatica a 500 righe (mantiene ultime 250)
- Scritture sicure contro race condition tramite
flock - Contiene solo timestamp e percorsi file (nessun contenuto degli appunti)
bash uninstall.shQuesto rimuove:
- Lo script da
~/.local/bin/paste-image - La scorciatoia da tastiera GNOME
- Le modifiche PATH da
.bashrce.zshrc - La directory log (
~/.local/state/paste-image/) - I file temporanei in
/tmp/paste_image_*
Le dipendenze di sistema vengono intenzionalmente lasciate installate (potrebbero essere usate da altri programmi). I file temporanei più vecchi di 7 giorni vengono puliti automaticamente ad ogni invocazione; quelli più recenti vengono rimossi al riavvio del sistema.
- Assicurati che il terminale abbia il focus quando premi la scorciatoia
- Verifica che X11 sia in uso:
echo $XDG_SESSION_TYPEdeve restituirex11 - Prova ad eseguire
paste-imagemanualmente per vedere l'output di errore
- Assicurati di aver copiato un'immagine vera (non testo o un file)
- Alcune applicazioni non copiano le immagini negli appunti di sistema
Il servizio GNOME che gestisce le scorciatoie personalizzate (gsd-media-keys) potrebbe non essere attivo:
# Controlla se è attivo
pgrep -x gsd-media-keys
# Se non restituisce nulla, riavvialo
systemctl --user start org.gnome.SettingsDaemon.MediaKeys.targetSe il problema persiste:
- Verifica che la scorciatoia sia registrata:
gsettings get org.gnome.settings-daemon.plugins.media-keys custom-keybindings - Controlla conflitti con altre scorciatoie di sistema
- Aumenta
TYPING_DELAYnella configurazione dello script (default:0.1secondi) - Alcuni emulatori di terminale potrebbero aver bisogno di un ritardo maggiore per il corretto funzionamento di
xdotool
cli-image-paste/
├── paste-image # Script principale
├── install.sh # Script di installazione
├── uninstall.sh # Script di disinstallazione
├── README.md # Documentazione (inglese)
├── README.it.md # Documentazione (italiano)
├── SECURITY.md # Politica di sicurezza (inglese)
├── SECURITY.it.md # Politica di sicurezza (italiano)
├── LICENSE # Licenza MIT
├── .gitignore # Regole di esclusione Git
├── .shellcheckrc # Configurazione linter ShellCheck
├── tests/ # Suite di test
│ ├── run_tests.sh # Runner dei test
│ ├── test_framework.sh # Framework di test personalizzato
│ ├── test_paste_image.sh # Test dello script principale
│ ├── test_install.sh # Test dell'installazione
│ └── test_uninstall.sh # Test della disinstallazione
└── docs/ # Documentazione
bash tests/run_tests.shLa suite di test include 50+ casi di test che coprono:
- Funzionalità script principale (18 test): verifica dipendenze, gestione clipboard, rilevamento MIME type, sicurezza mktemp, pulizia file, notifiche, flag versione
- Flusso installazione (12 test): installazione dipendenze, configurazione PATH, manipolazione array gsettings, rilevamento conflitti shortcut, idempotenza
- Flusso disinstallazione (7 test): rimozione script, pulizia gsettings, pulizia PATH
I test usano utility di sistema mockate per un'esecuzione sicura senza richiedere X11 o GNOME reali.
Analisi statica con ShellCheck:
shellcheck paste-image install.sh uninstall.shTutti gli script passano la validazione ShellCheck senza warning.
- Solo X11 — non compatibile con Wayland (richiederebbe
wl-paste+ydotool) - Solo GNOME — la configurazione automatica della scorciatoia usa
gsettings - Il terminale deve avere il focus quando si preme la scorciatoia
- Solo immagini PNG e JPEG sono supportate
- Fai un fork del repository
- Crea un branch per la feature (
git checkout -b feature/la-mia-feature) - Assicurati che tutti i test passino (
bash tests/run_tests.sh) - Assicurati che ShellCheck passi (
shellcheck paste-image install.sh uninstall.sh) - Fai commit delle modifiche e apri una pull request
Per informazioni sulle considerazioni di sicurezza e su come segnalare vulnerabilità, vedi SECURITY.it.md.
Questo progetto è rilasciato sotto la Licenza MIT.