Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
power-xfce
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian)
View previous topic :: View next topic  
Author Message
HoX
Guru
Guru


Joined: 11 Nov 2006
Posts: 385

PostPosted: Sun Jun 03, 2007 4:33 pm    Post subject: power-xfce Reply with quote

Dopo giorni di lavoro inizio finalmente ad intravedere la possibilità di fare ciò che voglio io con xfce4 e visto che ci sto sclerando sopra vi informo su cosa sono riuscito a fare sperando che a qualcuno interessi...

1. Ogni workspace ha un suo wallpaper
Per abilitare questa funzione bisogna (almeno per ora... ci sto lavorando su) rinunciare alle icone sul desktop e al menù a cascata sul desktop con il tasto destro del mouse... se si è disposti a ciò inserire script (vedi dopo) in Autostart ("Settings"->"Autostarted application")

/usr/bin/changeXfceWall:

#!/bin/bash
#Cambia il wallpaper sulla rootwindow in base al workspace

#Controlla il workspace iniziale
OLD_WORKSPACE=`xprop -root | grep ^_NET_CURRENT_DESKTOP | tail -c 2`
CURRENT_WORKSPACE=$OLD_WORKSPACE

#cartella contenente i wallpaper
DESKTOP_DIR=~/.desktop

while true
do
   CURRENT_WORKSPACE=`xprop -root | grep ^_NET_CURRENT_DESKTOP | tail -c 2`

        #controlla se è cambiato il workspace e in tal caso aggiorna lo sfondo
   if [[ CURRENT_WORKSPACE -ne OLD_WORKSPACE ]]
   then
      OLD_WORKSPACE=$CURRENT_WORKSPACE
      feh --bg-scale $DESKTOP_DIR/$CURRENT_WORKSPACE.jpg
   fi
done


I wallpaper devono essere copiati nella cartella ~/.desktop e devono avere il nome "<numero_workspace da 0 a X>.jpg"... questo almeno per ora... lo imposterò poi meglio

2. Abilitare il composite sulla root window
Per abilitare il composite sulla root window (cosa normalmente non possibile) è necessario emergere XFCE con il seguente comando:
Code:
CFLAGS="$CFLAGS -DMONITOR_ROOT_PIXMAP" emerge -1 xfwm4

e poi impostarlo normalmente da "Settings"->"Window Manager Tweaks"

TO-DO
  • Wallpaper che cambia ogni N secondi
  • Wallpaper di formati diversi dal jpg
  • Supporto per wallpaper animati tramite xscreensaver -root
  • Cambiamento pannelli da un workspace all'altro
  • Inserimento icone desktop


PS:se avete richieste e/o suggerimenti e/o critiche e/o ritenete che questo "how-to" sia del tutto inutile siete pregati di avvisare
Back to top
View user's profile Send private message
ProT-0-TypE
Veteran
Veteran


Joined: 20 Dec 2003
Posts: 1624
Location: Cagliari

PostPosted: Sun Jun 03, 2007 11:38 pm    Post subject: Reply with quote

domanda da niubbo.. ma le icone nel desktop non ci sono già nell'ultima versione di xfce?
_________________
[Vuoi guadagnare navigando?]
Back to top
View user's profile Send private message
HoX
Guru
Guru


Joined: 11 Nov 2006
Posts: 385

PostPosted: Mon Jun 04, 2007 7:07 am    Post subject: Reply with quote

ProT-0-TypE wrote:
domanda da niubbo.. ma le icone nel desktop non ci sono già nell'ultima versione di xfce?

si... xò sono gestite da xfdesktop e (come detto) per avere più wallpaper (uno o più per ogni workspace) bisogna usare la root window e rinunciare alle a xfdesktop (e di conseguenza alle icone sul desktop)...
avevo provato a risolvere questo problema usando il comando xfdesktop --reload dopo aver modificato il file ~/.config/xfce4/mcs_settings/desktop.xml dove è contenuto il parametro del wallpaper, ma per ora non ho avuto successo...

al momento sto lavorando (con successo?!) alla possibilità di cambiare wallpaper ogni tot secondi e al supporto per formati diversi dal jpg
Back to top
View user's profile Send private message
ProT-0-TypE
Veteran
Veteran


Joined: 20 Dec 2003
Posts: 1624
Location: Cagliari

PostPosted: Mon Jun 04, 2007 7:20 am    Post subject: Reply with quote

si vede che uso Gnome? :lol:
_________________
[Vuoi guadagnare navigando?]
Back to top
View user's profile Send private message
HoX
Guru
Guru


Joined: 11 Nov 2006
Posts: 385

PostPosted: Mon Jun 04, 2007 7:51 am    Post subject: Reply with quote

ProT-0-TypE wrote:
si vede che uso Gnome? :lol:

già... ma sbaglio o gnome usa direttamente la root window anzichè un fake come xfce4 e kde?
Back to top
View user's profile Send private message
Cazzantonio
Bodhisattva
Bodhisattva


Joined: 20 Mar 2004
Posts: 4489
Location: Somewere around the world

PostPosted: Mon Jun 04, 2007 8:13 am    Post subject: Reply with quote

Non è che a breve è previsto che supporti l'apertura predefinita di determinati programmi su specifici desktop vero? Bisogna ancora appoggiarsi a programmi esterni?
Lo so di essere schizzinoso ma potrò interessarmi a xfce (che mi piace... davvero!) solo quando supporterà nativamente questa feature per me indispensabile. :)
_________________
Any man's death diminishes me, because I am involved in mankind, and therefore never send to know for whom the bell tolls; it tolls for thee
-John Donne
Back to top
View user's profile Send private message
HoX
Guru
Guru


Joined: 11 Nov 2006
Posts: 385

PostPosted: Mon Jun 04, 2007 2:02 pm    Post subject: Reply with quote

Cazzantonio wrote:
Lo so di essere schizzinoso ma potrò interessarmi a xfce (che mi piace... davvero!) solo quando supporterà nativamente questa feature per me indispensabile. :)


Avevo il tuo stesso problema... ma anzichè gettare la spugna ho preferito scrivermi questo script per risolvermi il problema e se poi lo implementeranno fa lo stesso... per ora mi diverto :D

cmq il mio "programma" si sta generalizzando... ora il programma base gestisce solo il cambio di workspace e delega a dei plugin (altri script o programmi) tutto il resto tra cui:
  • cambio wallpaper su root window
  • wallpaper che cambiano ogni x secondi su root window
  • panel diverse da un workspace al successivo


e per ora ho sviluppato solo questi tre... il vantaggio di non fossilizzarsi solo su xfce4 (come avevo pensato di fare all'inizio) è che si può aggiungere qualunque funzione per qualunque DE...

Sto anche studiando un sistema per trasformare il wallpaper in un calendario gestibile dai pannelli... ma per quello ci metterò un po' di più
Back to top
View user's profile Send private message
TwoMinds
Tux's lil' helper
Tux's lil' helper


Joined: 14 Jul 2004
Posts: 146
Location: Italy

PostPosted: Tue Jun 05, 2007 7:38 am    Post subject: Reply with quote

...xfce è bello e leggero... optionals si trovano negli extras... perché non implementi qualcosa tipo xfce4-bglist-editor, che sembra scomparso però... :|
Back to top
View user's profile Send private message
HoX
Guru
Guru


Joined: 11 Nov 2006
Posts: 385

PostPosted: Tue Jun 05, 2007 1:19 pm    Post subject: Reply with quote

TwoMinds wrote:
...xfce è bello e leggero... optionals si trovano negli extras... perché non implementi qualcosa tipo xfce4-bglist-editor, che sembra scomparso però... :|

quello lì ti elenca solo i background disponibili, ma non ti permette di fare l'associazione tra workspace e background.

Usando il mio script è possibile personalizzare non solo xfce (che sto usando per i test), ma eventualmente anche di personalizzare KDE, GNOME o qualunque altro DE/WM in X che supporti workspace multipli.
Back to top
View user's profile Send private message
TwoMinds
Tux's lil' helper
Tux's lil' helper


Joined: 14 Jul 2004
Posts: 146
Location: Italy

PostPosted: Tue Jun 05, 2007 8:12 pm    Post subject: Reply with quote

...si lo so... infatti ho scritto "qualcosa tipo"... l'idea del plugin rende più consistente e feconda la realizzazione... imho...
Back to top
View user's profile Send private message
HoX
Guru
Guru


Joined: 11 Nov 2006
Posts: 385

PostPosted: Wed Jun 06, 2007 7:36 am    Post subject: Reply with quote

TwoMinds wrote:
l'idea del plugin rende più consistente e feconda la realizzazione... imho...

In che senso?
Back to top
View user's profile Send private message
TwoMinds
Tux's lil' helper
Tux's lil' helper


Joined: 14 Jul 2004
Posts: 146
Location: Italy

PostPosted: Thu Jun 07, 2007 6:36 pm    Post subject: Reply with quote

...nel senso: un plugin stile goodies di xfce ha più potenzialità che una serie di script... non voglio dire è sbagliato... ci mancherebbe!!!... il bello è che ci sono molti modi per ottenere gli stessi risultati... realizzando un plugin si potrebbe aspirare a renderlo un vero goodies, richiamare più attenzione, sperare anche in aiuto etc... senza contare i vantaggi di potersi appoggiare "nativamente" a xfce... sempre imho...
Back to top
View user's profile Send private message
HoX
Guru
Guru


Joined: 11 Nov 2006
Posts: 385

PostPosted: Thu Jun 07, 2007 7:43 pm    Post subject: Reply with quote

TwoMinds wrote:
...nel senso: un plugin stile goodies di xfce ha più potenzialità che una serie di script... non voglio dire è sbagliato... ci mancherebbe!!!... il bello è che ci sono molti modi per ottenere gli stessi risultati... realizzando un plugin si potrebbe aspirare a renderlo un vero goodies, richiamare più attenzione, sperare anche in aiuto etc... senza contare i vantaggi di potersi appoggiare "nativamente" a xfce... sempre imho...


Il problema è che in quel caso sarebbe funzionale solo per XFCE... con lo script "pluggabile" invece si può supportare qualunque DE.... come supporto il goodies è sicuramente migliore, come versatilità però preferisco il plugin... cmq per ora sto lavorando al plugin (con soddisfazione)... magari appena finisco cerco un po' di doc è faccio un plugin-goodies (più limitato) per XFCE
Back to top
View user's profile Send private message
TwoMinds
Tux's lil' helper
Tux's lil' helper


Joined: 14 Jul 2004
Posts: 146
Location: Italy

PostPosted: Fri Jun 08, 2007 7:22 am    Post subject: Reply with quote

Anema wrote:
Il problema è che in quel caso sarebbe funzionale solo per XFCE... con lo script "pluggabile" invece si può supportare qualunque DE.... come supporto il goodies è sicuramente migliore, come versatilità però preferisco il plugin... cmq per ora sto lavorando al plugin (con soddisfazione)... magari appena finisco cerco un po' di doc è faccio un plugin-goodies (più limitato) per XFCE

...si certo... solo xfce... il topic si intitola "power xfce"... :) ...continua a riportare qualsiasi progresso qui... li seguirò volentieri... buon lavoro... ^_^
Back to top
View user's profile Send private message
HoX
Guru
Guru


Joined: 11 Nov 2006
Posts: 385

PostPosted: Fri Jun 08, 2007 7:50 pm    Post subject: Reply with quote

TwoMinds wrote:
...si certo... solo xfce... il topic si intitola "power xfce"... :) ...continua a riportare qualsiasi progresso qui... li seguirò volentieri... buon lavoro... ^_^

E lo so... all'inizio avevo puntato su xfce e quindi l'avevo chiamato così... poi mi sono reso conto di poter usare lo stessa sistema per andare oltre e quindi ho deciso di generalizzarlo. cmq ti terrò informato
Back to top
View user's profile Send private message
HoX
Guru
Guru


Joined: 11 Nov 2006
Posts: 385

PostPosted: Fri Aug 17, 2007 2:19 am    Post subject: Reply with quote

Rieccomi!!! Dopo numerosi tentativi e altrettanto numerosi "così non mi piace, riparto da 0" eccovi le prime ultra-alpha (probabilmente le ricambierò) del mio progettino:
Allora questo è lo script principale:
Code:
#!/bin/bash
### WsM ###
### WsM - Workspace Manager consente di modificare le impostazioni di ogni singolo workspace tramite appositi plugin

##Informazioni varie sul programma
NAME=WsM
VERSION=0.1a
AUTHOR="HoX"
DESCRIPTION="Personalizza ogni workspace tramite plugin esterni"
USAGE="`basename $0` [Opzioni]
   --config   -c   =<config-file>      Usa un altro file di configurazione
   --log      -l   =<log-file>      Usa un altro log file
   --version   -v   Versione del programma
   --help      -h   Questa schermata
   --quit      -q   Chiude tutti i processi WsM attivi
   --restart   -r   Riavvia WsM"

### Lettura argomenti

#Gli argomenti sono passati nelle seguenti forme:
#   --nome-argomento=<valore>   
#   -n=<valore>
#(NB: non tutti gli argomenti richiedono un valore)

##Funzioni per la lettura degli argomenti
#Legge il nome dell'argomento
getArg() {
   echo $1 | cut -d'=' -f1
}

#Legge il valore dell'argomento
getArgValue() {
   echo $1 | cut -d'=' -f2
}

#Mostra [nome,versione,autore] del software
showInfo() {
   echo -n "$NAME - version $VERSION (by $AUTHOR)"
}

#Avvia la scansione degli argomenti
for i in $@
do
   case "`getArg $i`" in
      "-v" | "--version" )   
         showInfo
         exit 0 ;;

      "-h" | "--help" )
         showInfo
         echo "$DESCRIPTION"
         echo "$USAGE"
         exit 0 ;;

      "-c" | "--config" )
         CONFIG_FILE=`getArgValue $i` ;;

      "-l" | "--log" )
         LOG_FILE=`getArgValue $i` ;;
   esac
done


#Controlli inerenti al file di configurazione
if [ -z $CONFIG_FILE ]
then
   CONFIG_FILE=~/.config/WsM.conf
fi

if [ ! -e $CONFIG_FILE ]
then
   echo "Impossibile trovare il file di configurazione: $CONFIG_FILE"
   echo "Per specificare un file di configurazione personalizzato usare il comando: "
   echo "           CONFIG_FILE=<file-di-configurazione> $0"
   exit 1
fi

#Carica la cartella con le librerie
LIBS_DIR=`grep LIBS_DIR $CONFIG_FILE | grep -v '\#' | cut -f2` #cartella contenente le librerie

if [ ! -d $LIBS_DIR ]
then
   echo "Impossibile aprire la directory con le librerie: $LIBS_DIR"
   exit 1
fi

#Funzioni varie

###Funzioni per gestire il file di configurazione
##   Il file di configurazione e' scritto in formato
##   NOME_OPZIONE <tab> OPZIONE <tab> VALORE_OPZIONE

#Legge l'opzione $1 nel file di configurazione
getOption() {
   grep $1 $CONFIG_FILE | grep -v '\#' | cut -f2
}

#Legge il valore dell'opzione $1 nel file di configurazione
getOptionValue() {
   grep $1 $CONFIG_FILE | grep -v '\#' | cut -f3
}

##Funzioni riguardanti i workspace
#Restituisce il numero dei workspace
getWorkspaceNum() {
   xprop -root | grep ^_NET_NUMBER_OF_DESKTOPS | cut -d' ' -f3
}

#Restituisce il numero del workspace attuale
getWorkspace() {
   xprop -root | grep ^_NET_CURRENT_DESKTOP | cut -d' ' -f3
}

#Legge tutti i comandi del workspace $1 ($1 e' un intero)
getWorkspaceCommand() {
   local LOADING_WORKSPACE_COMMAND="`getOption WORKSPACE_$1_COMMAND`"
   local LOADING_WORKSPACE_COMMAND_NUMBER=`echo "$LOADING_WORKSPACE_COMMAND" | wc -l`
   local LOADED_WORKSPACE_COMMAND=""
   for (( c=1 ; c <= $LOADING_WORKSPACE_COMMAND_NUMBER ; c++ ))
   do
      COMMAND_NUMBER_C=`echo "$LOADING_WORKSPACE_COMMAND" | head -n $c | tail -n 1`
      LOADED_WORKSPACE_COMMAND="$LOADED_WORKSPACE_COMMAND `echo "$PLUGIN" | grep "$COMMAND_NUMBER_C" | cut -f2`;"
   done
   LOADED_WORKSPACE_COMMAND="`echo $LOADED_WORKSPACE_COMMAND | tr ';' '\n'`"
   echo "$LOADED_WORKSPACE_COMMAND"
}

#Legge tutti gli argomenti passati ai comandi del workspace $1
getWorkspaceCommandArguments() {
        local ARGUMENTS_REQUIRED="`getOptionValue WORKSPACE_$1_COMMAND`"
   local ARGUMENTS_REQUIRED_NUMBER=`echo "$ARGUMENTS_REQUIRED" | wc -l`
        local ARGUMENTS_READY=""
   for (( c=1 ; c <= $ARGUMENTS_REQUIRED_NUMBER ; c++ ))
   do
           for i in `echo "$ARGUMENTS_REQUIRED" | head -n $c | tail -n 1`
           do
                   case $i in
                      "CONFIG" )
                    ARGUMENTS_READY="$ARGUMENTS_READY -c=$CONFIG_FILE" ;;   
   
            "LOG" )
               ARGUMENTS_READY="$ARGUMENTS_READY -l=$LOG_FILE" ;;
   
                      "WORKSPACE")
               ARGUMENTS_READY="$ARGUMENTS_READY -w=$CURRENT_WORKSPACE" ;;
   
                      * )
               ARGUMENTS_READY="$ARGUMENTS_READY $i" ;;
                   esac
           done
      ARGUMENTS_READY="$ARGUMENTS_READY;"
   done

        echo "$ARGUMENTS_READY" | tr ';' '\n'

}

switchWorkspace() {
   #Uccide i processi avviati dal workspace precedente
   if [[ $OLD_WORKSPACE -ne $WORKSPACE_NUMBER ]]
   then
      kill $PID_COLLECTOR   
   fi

   #Conta quanti comandi devono essere eseguiti per il prossimo workspace
   echo $CURRENT_WORKSPACE >> ~/ciao
   local COMMAND_NUMBER=`echo "${WORKSPACE_COMMAND[$CURRENT_WORKSPACE]}" | wc -l`

   #Avvia i processi del nuovo workspace
   PID_COLLECTOR=""
   for (( c=1 ; c <= $COMMAND_NUMBER ; c++ ))
   do
      echo $c "<" $COMMAND_NUMBER >> ~/ciao
      COMMAND=`echo "${WORKSPACE_COMMAND[$CURRENT_WORKSPACE]}" | head -n $c | tail -n 1`
      echo $c $COMMAND >> ~/ciao
      COMMAND_ARGUMENTS=`echo "${WORKSPACE_COMMAND_ARGUMENTS[$CURRENT_WORKSPACE]}" | head -n $c | tail -n 1`
      echo $c $COMMAND_ARGUMENTS >> ~/ciao
      RUN_COMMAND="$COMMAND $COMMAND_ARGUMENTS"
      echo $c $RUN_COMMAND >> ~/ciao
      $RUN_COMMAND >> $LOG_FILE &
      PID_COLLECTOR="$PID_COLLECTOR $!"
   done
}



#Avvia il log file
if [ -z "$LOG_FILE" ]
then
   LOG_FILE=`getOption LOG_FILE`
fi

if [ -z "$LOG_FILE" ]
then
   LOG_FILE=/dev/stdout
fi

DATE_FORMAT=`getOption DATE_FORMAT`

if [ -z "$DATE_FORMAT" ]
then
   DATE_FORMAT="%d/%m/%y - %H.%M.%S"
fi
   
#Azzera il file di log
#echo -n "" > $LOG_FILE

#Funzione per inviare messaggi al LogFile
logMsg() {
   echo `date +"$DATE_FORMAT"`: $@ >> $LOG_FILE
}

#Avvia il programma
logMsg WsM: Avviato WsM

#Carica le impostazioni sui workspace
WORKSPACE_NUMBER=`getWorkspaceNum` #Numero massimo di Workspace
logMsg WsM: Numero massimo di workspace: $WORKSPACE_NUMBER

#Imposta OLD_WORKSPACE al numero massimo di workspace
OLD_WORKSPACE=$WORKSPACE_NUMBER

#Carica i plugin
logMsg WsM: Caricamento plugin...
PLUGIN="`grep PLUGIN $CONFIG_FILE | grep -v '\#' | cut -f2,3`"
logMsg WsM: "Fatto! (Caricati `echo "$PLUGIN" | wc -l` plugin)"

#Carica le impostazioni (plugin -> argomenti) per ogni workspace
logMsg WsM: Caricamento comandi...
for ((w=0; w < WORKSPACE_NUMBER; w++))
do
      WORKSPACE_COMMAND[$w]="`getWorkspaceCommand $w`"
      WORKSPACE_COMMAND_ARGUMENTS[$w]="`getWorkspaceCommandArguments $w`"
done
logMsg Fatto!

#Ciclo principale
while true
do
   CURRENT_WORKSPACE=`getWorkspace`

   if [[ $CURRENT_WORKSPACE -ne $OLD_WORKSPACE ]]
   then
      switchWorkspace
      OLD_WORKSPACE=$CURRENT_WORKSPACE
   fi
   sleep 0.5
done


questo è un WsM.conf di esempio:
Code:
#LIBS_DIR e' la directory in cui si trovano alcune funzioni necessarie al corretto funzionamento di WsM
LIBS_DIR   /usr/share/testScript/WsMLibs

#Informazioni per il log
LOG_FILE   /dev/stdout
DATE_FORMAT   "%d/%m/%y - %H.%M.%S"

#Plugin
PLUGIN   setWallpaper   /usr/share/testScript/WsMPlugins/setWallpaper
PLUGIN   multiWall   /usr/share/testScript/WsMPlugins/multiWall

#Impostazioni per i workspace
WORKSPACE_0_COMMAND   setWallpaper   SCALE /media/Images/Dark_Girl.jpg
WORKSPACE_1_COMMAND   setWallpaper   SCALE /media/Images/Redhead.jpg
WORKSPACE_2_COMMAND   setWallpaper   SCALE /media/Images/Animali/Gentoo_Penguin.jpg
WORKSPACE_3_COMMAND   setWallpaper   SCALE /media/Images/Fantasy/Angel_Sexy_0.jpg


e questi sono i primi due plugin:
setWallpaper
Code:
#!/bin/bash

### setWallpaper ###
### Cambia il wallpaper sulla root-window corrente usando feh (che è pertanto necessario)

##Informazioni varie sul programma
NAME=setWallpaper
VERSION=0.1
AUTHOR="HoX"
DESCRIPTION="Imposta lo sfondo sulla root-window usando feh"
USAGE="setWallpaper Modo File_immagine
   Modo deve essere uno dei seguenti:
      SCALE   Immagine adattata alle dimensioni dello schermo
      CENTER   Immagine centrata
      TILE   Immagine affiancata
      SEAMLESS   Immagine senza giunture"

#Variabili
FEH_ARGS="" #gli argomenti che saranno passati a feh
FEH_BG_FILE="" #il nome del file di sfondo

#Prepare FEH_ARGS
case $1 in
   "-h" | "--help" )
      echo "$NAME - $VERSION ($AUTHOR)"
      echo $DESCRIPTION
      echo $USAGE ;;
   "SCALE" )
      FEH_ARGS="--bg-scale" ;;
   "CENTER" )
      FEH_ARGS="--bg-center" ;;
   "TILE" )
      FEH_ARGS="--bg-tile" ;;
   "SEAMLESS" )
      FEH_ARGS="--bg-seamless" ;;
   * )
      echo `date`: setWallpaper: Impossibile impostare lo sfondo!
      echo $USAGE ;;
esac

#Imposta il file FEH_BG_FILE
FEH_BG_FILE=$2

if [[ ! -e $2 ]]
then
   echo `date`: setWallpaper: "Non esiste il file d'immagine selezionato"
   exit 1
fi

feh $FEH_ARGS $FEH_BG_FILE

if [ $? ]
then
   echo "`date +"%d/%m/%y - %H.%M.%S"`: setWallpaper: File di sfondo ($FEH_BG_FILE) impostato con successo"
else
   echo "`date +"%d/%m/%y - %H.%M.%S"`: setWallpaper: Errore durante l'impostazione dello sfondo ($FEH_BG_FILE)"
fi


e multiWall
Code:
#!/bin/bash
### multiWall ###
### plugin WsM ###
### Consente di avere il wallpaper che cambia ogni DELAY secondi

##Informazioni varie sul programma
NAME=multiWall
VERSION=0.1
AUTHOR="HoX"
DESCRIPTION="Cambia il wallpaper della root window periodicamente"
USAGE="multiWall [Opzioni] NomeLista
   --delay    -d   tempo   Imposta ogni quanto tempo cambia immagine (usa la notazione di sleep) [DEFAULT: 300s]
   --help     -h      Stampa questa pagina
   --random   -r      Ordine casuale
   --version   -v      Informazioni sulla versione"

DELAY_TIME=300
IS_RANDOM=false

for i in $@
do
   case `echo $i | cut -d'=' -f1` in
      "--delay" | "-d" )
         DELAY_TIME=`echo $i | cut -d'=' -f2` ;;

      "--help" | "-h" )
         echo "$NAME - $VERSION ($AUTHOR)"
         echo "$DESCRIPTION"
         echo "$USAGE"
         exit 0 ;;

      "--random" | "-r" )
         IS_RANDOM=true ;;

      "--version" | "-v" )
         echo "$NAME - $VERSION ($AUTHOR)"
         exit 0 ;;

      * )
         if [ "$i" != "${!#}" ]
         then
            echo "$i: Invalid argument"
            exit 1
         fi ;;
   esac
done

LIST_NAME=${!#}
LIST_ENTRIES=`wc -l $LIST_NAME | cut -d' ' -f1`
CURRENT=1

while true
do
   if [ "$CURRENT" -gt "$LIST_ENTRIES" ]
   then
      CURRENT=1
   fi

   if [ $IS_RANDOM ]
   then
      CURRENT=$(( $RANDOM % $LIST_ENTRIES + 1 ))
   fi

   CURRENT_LIST_ITEM=`head -n $CURRENT $LIST_NAME | tail -n 1`
   CURRENT=$(( $CURRENT +1 ))

   feh --bg-scale $CURRENT_LIST_ITEM
   sleep $DELAY_TIME
done


che ve ne pare?! domande, suggerimenti, critiche?
Back to top
View user's profile Send private message
skypjack
l33t
l33t


Joined: 05 Aug 2006
Posts: 884
Location: Italia - Firenze

PostPosted: Wed Aug 29, 2007 7:22 am    Post subject: Reply with quote

Ho deciso di passare a xfce, a che punto siamo con i lavori? :D
Back to top
View user's profile Send private message
HoX
Guru
Guru


Joined: 11 Nov 2006
Posts: 385

PostPosted: Wed Aug 29, 2007 7:39 am    Post subject: Reply with quote

skypjack wrote:
Ho deciso di passare a xfce, a che punto siamo con i lavori? :D

come puoi vedere dall'ultimo commento sono finiti... rimane xò il problema che devi rinunciare a xfdesktop (e quindi alle icone sul desktop) xkè uso direttamente la root window per lo sfondo e se vuoi usare il composite devi compilarlo in modo differente (cmq ho scritto tutto sopra)...
tra breve inseriro il cambio wallpaper anche su xfdesktop, ma da dei problemi di perfomance...
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum