UNPKG

arch-wiki-md-repo

Version:

All arch-wiki articles in markdown format, updated every two days.

256 lines (164 loc) 7.86 kB
[Feh](https://derf.homelinux.org/~derf/projects/feh/) è un programma leggero e potente per visualizzare immagini che può essere anche utilizzato per la gestione degli sfondi del desktop in window manager standalone che non comprendono questa funzionalità. ## Contents * [1 Installazione](#Installazione) * [2 Utilizzo](#Utilizzo) * [2.1 Image Browser](#Image_Browser) * [2.1.1 Lanciatore per il visualizzatore di immagini](#Lanciatore_per_il_visualizzatore_di_immagini) * [2.2 Sfondo del Desktop](#Sfondo_del_Desktop) * [3 Tips](#Tips) * [3.1 Immagine di sfondo casuale](#Immagine_di_sfondo_casuale) * [3.1.1 Usare uno script](#Usare_uno_script) * [3.1.1.1 Doppio schermo senza Xinerama](#Doppio_schermo_senza_Xinerama) * [3.1.2 Usare cron](#Usare_cron) * [3.1.3 Usare systemd/user](#Usare_systemd.2Fuser) * [4 See also](#See_also) ## Installazione [feh](https://www.archlinux.org/packages/?name=feh) è disponibile nei [repository ufficiali](/index.php/Official_repositories_(Italiano) "Official repositories (Italiano)"). ## Utilizzo Feh è altamente configurabile, per una lista completa di opzioni eseguire `feh --help`. ### Image Browser Per visualizzare velocemente le immagini in una specifica directory si può lanciare feh con le seguenti opzioni: ``` $ feh -g 640x480 -d -S filename /percorso/directory ``` * L'opzione `-g 640x480` forza le immagini di apparire al massimo ad una risoluzione di 640x480 * L'opzione `-d` stampa il nome del file * L'opzione `-S filename` fa si che le immagini siano ordinate per nome Questo è solo un esempio, è possibile utilizzare molte altre opzioni se si desidera una maggiore flessibilità. #### Lanciatore per il visualizzatore di immagini Il seguente script, è molto utile per una visualizzazione più agevole delle immagini: visualizzerà con feh tutte le immagini selezionate tramite il file manager o tutte le immagini di una specifica directory nell'ordine di default. Questo script assume che il primo argomento sia il nome del file da aprire. `feh_browser.sh` ``` #!/bin/bash shopt -s nullglob if [[ ! -f $1 ]]; then echo "$0: first argument is not a file" >&2 exit 1 fi file=$(basename -- "$1") dir=$(dirname -- "$1") arr=() shift cd -- "$dir" for i in *; do [[ -f $i ]] || continue arr+=("$i") [[ $i == $file ]] && c=$((${#arr[@]} - 1)) done exec feh "$@" -- "${arr[@]:c}" "${arr[@]:0:c}" ``` Lo script in questione va usato sul percorso delle immagini selezionate, seguito (volendo) da altre opzioni di feh. Un esempio di come lanciare lo script in un file manager è: ` $/percorso/dello/script/feh_browser.sh %f -F -Z` dove `-F` e `-Z` sono opzioni di feh: * `-F` apre l'immagine a schermo pieno * `-Z` setta in modo automatico lo zoom Aggiungendo `-q` (quiet) non vengono mostrati nel terminale tutti gli errori di feh quando tenta di aprire file che non sono immagini presenti nella directory. Una semplice, ma meno versatile, alternativa è: `feh_browser.sh` ``` #! /bin/sh feh -. "$(dirname "$1")" --start-at "$1" ``` Tale script non accetta opzioni passategli sulla riga di comando. ### Sfondo del Desktop Feh può essere utilizzato per gestire lo sfondo del desktop in window manager che non hanno questa possibilità (ad esempio [Openbox](/index.php/Openbox_(Italiano) "Openbox (Italiano)") e [Fluxbox](/index.php/Fluxbox_(Italiano) "Fluxbox (Italiano)")). Se si sta utilizzando [GNOME](/index.php/GNOME_(Italiano) "GNOME (Italiano)"), è fondamentale disabilitare il controllo che GNOME Files applica sul desktop. Il metodo più semplice e veloce è lanciando in un terminale: ``` $ gconftool-2 --set /apps/nautilus/preferences/show_desktop --type boolean false ``` Il seguente comando è invece un esempio di come impostare uno sfondo con feh: ``` $ feh --bg-scale /percorso/esatto/dello/sfondo.estensione ``` Altre opzioni possibili per lo scaling dell'immagine sono: ``` --bg-tile FILE --bg-center FILE --bg-max FILE --bg-fill FILE ``` Per far si che alla prossima sessione di X lo sfondo venga ripristinato automaticamente, aggingere la seguente riga allo script di avvio (ad esempio: `~/.xinitrc`, `~/.config/openbox/autostart`, `~/.fluxbox/startup` ecc.): ``` sh ~/.fehbg & ``` Per cambiare l'immagine di sfondo sarà quindi sufficiente editare il file `~/.fehbg` creatosi automaticamente dopo aver lanciato il comando `feh --bg-scale /percorso/esatto/dello/sfondo.estensione`. ## Tips ### Immagine di sfondo casuale #### Usare uno script Per avere un wallpaper che varia casualmente fra quelli in una determinata directory è necessario creare uno script con il codice riportato qui sotto (ad esempio `wallpaper.sh`), renderlo eseguibile ``` $ chmod -x wallpaper.sh ``` e lanciarlo all'avvio (ad esempio da `~/.xinitrc`). Se non si vuole usare questo script in più al file di startup già presente nel sistema è possibile incollare il codice direttamente in `~/.xinitrc`. Cambiare la directory `~/.wallpaper` con quella desiderata e i `15m` di pausa con un tempo a piacimento. Per maggiori informazioni consultare il man di sleep dando in un terminale [sleep(1)](http://jlk.fjfi.cvut.cz/arch/manpages/man/sleep.1). `wallpaper.sh` ``` #!/bin/bash while true; do find ~/.wallpaper -type f \( -name '*.jpg' -o -name '*.png' \) -print0 | shuf -n1 -z | xargs -0 feh --bg-scale sleep 15m done ``` **Nota:** Potrebbe essere necessario trasformare *~/.wallpaper* in *~/.wallpaper***/** Se questo script non dovesse funzionare, provare il seguente che non cerca ricorsivamente la directory `~/.wallpaper`: `wallpaper.sh` ``` #!/bin/bash shopt -s nullglob cd ~/.wallpaper while true; do files=() for i in *.jpg *.png; do [[ -f $i ]] && files+=("$i") done range=${#files[@]} ((range)) && feh --bg-scale "${files[RANDOM % range]}" sleep 15m done ``` ###### Doppio schermo senza Xinerama Questo script rimpiazza la chiamata a "feh" per aggiungere uno sfondo su sistemi a doppio schermo (ad esempio nvidia twinview): `wallpaper.sh` ``` #!/bin/sh exec feh --bg-max --no-xinerama "$@" ``` #### Usare cron Usare cron fa si che si possa avere un risultato molto simile e non ci sia uno script in costante sleep Dare un `$ crontab -e` e aggiungere: ` * * * * * DISPLAY=:0.0 feh --bg-max "$(find ~/.wallpaper/|shuf -n1)"` #### Usare systemd/user **Nota:** Questo è utile '*solo* se si una *sessione systemd/user*. Vedere [Systemd/User](/index.php/Systemd/User_(Italiano) "Systemd/User (Italiano)") per maggiori dettagli. Creare questa unità service: `$HOME/.config/systemd/user/feh-wallpaper.service` ``` [Unit] Description=Random wallpaper with feh [Service] Type=oneshot EnvironmentFile=%h/.wallpaper ExecStart=/bin/bash -c '/usr/bin/feh --bg-max "$(find ${WALLPATH}|shuf|head -n 1)"' [Install] WantedBy=default.target ``` Creare un file *timer*. Cambiare il tempo a piacimento. In questo esempio il tempo è `15 secondi`. `$HOME/.config/systemd/user/feh-wallpaper.timer` ``` [Unit] Description=Random wallpaper with feh [Timer] OnUnitActiveSec=*15s* Unit=feh-wallpaper.service [Install] WantedBy=default.target ``` In questo esempio gli sfondi sono salvati in una directory nascosta nella propria $HOME: `$HOME/.wallpaper` ``` WALLPATH=*/home/user/.wallpaper/* ``` Attivare `feh-wallpaper.timer` e `feh-wallpaper.service`. Leggere [Daemons](/index.php/Daemons "Daemons") per maggiori dettagli. **Nota:** Ricordarsi che si sta usando una *systemd user session*, quindi è necessario usare il flag `--user` con `systemctl`. ## See also * [Forum post with original script for feh_browser](https://bbs.archlinux.org/viewtopic.php?pid=884635#p884635)