Difference between revisions of "Feh (Italiano)"

From ArchWiki
Jump to: navigation, search
m (Using systemd user session: aligned)
(20 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
[[Category:Graphics and desktop publishing  (Italiano)]]
 
[[Category:Graphics and desktop publishing  (Italiano)]]
{{i18n|Feh}}
+
[[en:Feh]]
    {{out_of_date}} {{Attenzione|Questa pagina è in fase di revisione e potrebbe non essere aggiornata. Seguite per ora le istruzioni della versione inglese.}}
+
[[es:Feh]]
 
+
[[lt:Feh]]
= Introduzione =
+
[[ru:Feh]]
 +
[[zh-CN:Feh]]
 
[https://derf.homelinux.org/~derf/projects/feh/ 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à.
 
[https://derf.homelinux.org/~derf/projects/feh/ 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à.
  
= Installazione =
+
== Installazione ==
 
{{pkg|feh}} è disponibile nei [[Official Repositories (Italiano)|repository ufficiali]].
 
{{pkg|feh}} è disponibile nei [[Official Repositories (Italiano)|repository ufficiali]].
  
= Utilizzo =
+
== Utilizzo ==
 
Feh è altamente configurabile, per una lista completa di opzioni eseguire {{Ic|feh --help}}.
 
Feh è altamente configurabile, per una lista completa di opzioni eseguire {{Ic|feh --help}}.
  
== Image Browser ==
+
=== Image Browser ===
 
Per visualizzare velocemente le immagini in una specifica directory si può lanciare feh con le seguenti opzioni:
 
Per visualizzare velocemente le immagini in una specifica directory si può lanciare feh con le seguenti opzioni:
  
Line 18: Line 19:
  
 
* L'opzione {{Ic|-g 640x480}} forza le immagini di apparire al massimo ad una risoluzione di 640x480
 
* L'opzione {{Ic|-g 640x480}} forza le immagini di apparire al massimo ad una risoluzione di 640x480
 +
* L'opzione {{Ic|-d}} stampa il nome del file
 
* L'opzione {{Ic|-S filename}} fa si che le immagini siano ordinate per nome
 
* L'opzione {{Ic|-S filename}} fa si che le immagini siano ordinate per nome
  
Line 23: Line 25:
  
 
====Lanciatore per il visualizzatore di immagini====
 
====Lanciatore per il visualizzatore di immagini====
Il seguente script, postato in origine sul [https://bbs.archlinux.org/viewtopic.php?pid=884635#p884635 forum internazionale], è 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.  
+
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.
 
Questo script assume che il primo argomento sia il nome del file da aprire.
<pre>
+
{{hc|feh_browser.sh|<nowiki>#!/bin/bash
#!/bin/bash
+
  
 
shopt -s nullglob
 
shopt -s nullglob
Line 49: Line 50:
  
 
exec feh "$@" -- "${arr[@]:c}" "${arr[@]:0:c}"
 
exec feh "$@" -- "${arr[@]:c}" "${arr[@]:0:c}"
</pre>
+
</nowiki>}}
  
 
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 è:
 
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 %f -F -Z
+
{{bc| $/percorso/dello/script/feh_browser.sh %f -F -Z}}
  
 
dove {{Ic|-F}} e {{Ic|-Z}} sono opzioni di feh:
 
dove {{Ic|-F}} e {{Ic|-Z}} sono opzioni di feh:
Line 61: Line 62:
 
Aggiungendo {{Ic|-q}} (quiet) non vengono mostrati nel terminale tutti gli errori di feh quando tenta di aprire file che non sono immagini presenti nella directory.
 
Aggiungendo {{Ic|-q}} (quiet) non vengono mostrati nel terminale tutti gli errori di feh quando tenta di aprire file che non sono immagini presenti nella directory.
  
== Sfondo del Desktop ==
+
Una semplice, ma meno versatile, alternativa è:
 +
{{hc|feh_browser.sh|<nowiki>
 +
#! /bin/sh
 +
feh -. "$(dirname "$1")" --start-at "$1"</nowiki>}}
 +
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 (Italiano)|Openbox]] e [[Fluxbox (Italiano)|Fluxbox]]).  
 
Feh può essere utilizzato per gestire lo sfondo del desktop in window manager che non hanno questa possibilità (ad esempio [[Openbox (Italiano)|Openbox]] e [[Fluxbox (Italiano)|Fluxbox]]).  
  
Line 78: Line 85:
 
  --bg-fill 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: {{Filename|~/.xinitrc}}, {{Filename|~/.config/openbox/autostart}}, {{Filename|~/.fluxbox/startup}} ecc.):
+
Per far si che alla prossima sessione di X lo sfondo venga ripristinato automaticamente, aggingere la seguente riga allo script di avvio (ad esempio: {{ic|~/.xinitrc}}, {{ic|~/.config/openbox/autostart}}, {{ic|~/.fluxbox/startup}} ecc.):
  
 
  sh ~/.fehbg &
 
  sh ~/.fehbg &
  
Per cambiare l'immagine di sfondo sarà quindi sufficiente editare il file {{Filename|~/.fehbg}} creatosi automaticamente dopo aver lanciato il comando {{Ic|feh --bg-scale /percorso/esatto/dello/sfondo.estensione}}.
+
Per cambiare l'immagine di sfondo sarà quindi sufficiente editare il file {{ic|~/.fehbg}} creatosi automaticamente dopo aver lanciato il comando {{Ic|feh --bg-scale /percorso/esatto/dello/sfondo.estensione}}.
  
====Immagine di sfondo casuale====
+
==Tips==
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 {{Filename|wallpaper.sh}}), renderlo eseguibile ({{Ic|# chmod -x wallpaper.sh}}) e lanciarlo all'avvio (ad esempio da {{Filename|~/.xinitrc}}). Se non si vuole usare questo script in più al file di startup già presente nel sistema è possibile incollare il codice direttamente in {{Filename|~/.xinitrc}}.
+
===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 {{ic|wallpaper.sh}}), renderlo eseguibile  
 +
$ chmod -x wallpaper.sh
 +
e lanciarlo all'avvio (ad esempio da {{ic|~/.xinitrc}}). Se non si vuole usare questo script in più al file di startup già presente nel sistema è possibile incollare il codice direttamente in {{ic|~/.xinitrc}}.
  
Cambiare la directory {{Filename|~/.wallpaper}} con quella desiderata e i {{Ic|15m}} di pausa con un tempo a piacimento. Per maggiori informazioni consultare il man di sleep dando in un terminale {{Ic|man sleep}}.
+
Cambiare la directory {{ic|~/.wallpaper}} con quella desiderata e i {{Ic|15m}} di pausa con un tempo a piacimento. Per maggiori informazioni consultare il man di sleep dando in un terminale {{Ic|man sleep}}.
  
<pre>
+
{{hc|wallpaper.sh|<nowiki>
#!/bin/sh
+
#!/bin/bash
  
 
while true; do
 
while true; do
Line 97: Line 108:
 
         sleep 15m
 
         sleep 15m
 
done
 
done
</pre>
+
</nowiki>}}
 +
{{Nota| Potrebbe essere necessario trasformare ''~/.wallpaper'' in ''~/.wallpaper'''''/'''}}
  
Se questo script non dovesse funzionare, provare il seguente che non cerca ricorsivamente la directory {{Filename|~/.wallpaper}}:
+
Se questo script non dovesse funzionare, provare il seguente che non cerca ricorsivamente la directory {{ic|~/.wallpaper}}:
<pre>
+
{{hc|wallpaper.sh|<nowiki>
 
#!/bin/bash
 
#!/bin/bash
  
Line 118: Line 130:
 
         sleep 15m
 
         sleep 15m
 
done
 
done
</pre>
+
</nowiki>}}
 +
 
 +
======Doppio schermo senza Xinerama======
 +
Questo script rimpiazza la chiamata a "feh" per aggiungere uno sfondo su sistemi a doppio schermo (ad esempio nvidia twinview):
 +
{{hc|wallpaper.sh|<nowiki>
 +
#!/bin/sh
 +
exec feh --bg-max --no-xinerama "$@"
 +
</nowiki>}}
 +
 
 +
====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 {{ic|$ crontab -e}} e aggiungere:
 +
{{bc|<nowiki> * * * * *  DISPLAY=:0.0 feh --bg-max "$(find ~/.wallpaper/|shuf -n1)"</nowiki>}}
 +
 
 +
==== Usare systemd/user ====
 +
{{Nota|Questo è utile '''solo'' se si una ''sessione systemd/user''. Vedere [[Systemd/User (Italiano)|Systemd/User]] per maggiori dettagli.}}
 +
 
 +
Creare questa unità service:
 +
{{hc|$HOME/.config/systemd/user/feh-wallpaper.service|<nowiki>
 +
[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
 +
</nowiki>}}
 +
Creare un file ''timer''. Cambiare il tempo a piacimento. In questo esempio il tempo è {{ic|15 secondi}}.
 +
{{hc|$HOME/.config/systemd/user/feh-wallpaper.timer|<nowiki>
 +
[Unit]
 +
Description=Random wallpaper with feh
 +
 
 +
[Timer]
 +
OnUnitActiveSec=</nowiki>''15s''<nowiki>
 +
Unit=feh-wallpaper.service
 +
 
 +
[Install]
 +
WantedBy=default.target
 +
</nowiki>}}
 +
In questo esempio gli sfondi sono salvati in una directory nascosta nella propria $HOME:
 +
{{hc|$HOME/.wallpaper|<nowiki>
 +
WALLPATH=</nowiki>''/home/user/.wallpaper/''
 +
}}
 +
 
 +
Attivare {{ic|feh-wallpaper.timer}} e {{ic|feh-wallpaper.service}}. Leggere [[Daemons]] per maggiori dettagli.
 +
 
 +
{{Nota|Ricordarsi che si sta usando una ''systemd user session'', quindi è necessario usare il flag {{ic|--user}} con {{ic|systemctl}}.}}
 +
 
 +
== See also ==
 +
* [https://bbs.archlinux.org/viewtopic.php?pid=884635#p884635 Forum post with original script for feh_browser]

Revision as of 12:46, 26 January 2013

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à.

Installazione

feh è disponibile nei repository ufficiali.

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 e Fluxbox).

Se si sta utilizzando GNOME, è fondamentale disabilitare il controllo che nautilus 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 man sleep.

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 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 per maggiori dettagli.

Nota: Ricordarsi che si sta usando una systemd user session, quindi è necessario usare il flag --user con systemctl.

See also