Pages : 1
#1 Le 09/01/2011, à 16:20
- Peuks
Changer de themes aléatoirement.
Plop ! Pour le fun j'essaye de modifier un script qui a la base change le fond d'écran sous gnome ( gconf donc ) avec un temps donné .
J'essaye de faire de même avec les themes mais je ne sais pas comment faire pour choisir un dossier au hasard et non des fichier ( ici des jpg ou autre )
#!/usr/bin/perl -w
use strict;
use warnings;
my $searchPath = '/home/peuks/.themes/'; # Set to the directory you want to have searched for photos
my $switchTime = 15; # Edit to the number of seconds between photo switches
# bgotd-- background of the day
# Written by Michael Moore, Nov. 2007, placed in the public domain
my @photos = `find $searchPath -type f # J'enleve la suite pour ne pas chercher les images ???| grep [jJ][pP][eE]*[gG]`;
chomp(@photos);
my $photo;
while(1)
{
$photo = $photos[rand($#photos)];
`gconftool-2 --type string --set /desktop/gnome/interface/gtk_theme '$photo'`;
sleep($switchTime);
}
Dernière modification par Peuks (Le 09/01/2011, à 16:21)
Hors ligne
#2 Le 09/01/2011, à 16:47
- Peuks
Re : Changer de themes aléatoirement.
Je reviens à la charge avec une deuxième version en bash qui fonctionne mieux. Il faut utiliser cron pour choisir le temps voulu .
#!/bin/bash
dir='/home/nom_de_lutilisateur/.themes/'
file=`/bin/ls -1 "$dir" | sort --random-sort | head -1`
theme="$file" # le theme
echo "Le theme choisit est: $theme"
gconftool-2 --type string --set /desktop/gnome/interface/gtk_theme "$theme";
Pour ceux qui ne peuvent ou ne veulent utiliser cron voici le script a lancer au démarrage de la session .
#!/bin/bash
dir='/home/nom_de_lutilisateur/.themes/'
attente= #le temps d'attente que vous voulez en seconde
while:
sleep $attente
file=`/bin/ls -1 "$dir" | sort --random-sort | head -1`
theme="$file" # le theme
echo "Le theme choisit est: $theme"
gconftool-2 --type string --set /desktop/gnome/interface/gtk_theme "$path";
done
exit 0
Dernière modification par Peuks (Le 09/01/2011, à 19:05)
Hors ligne
#3 Le 14/01/2011, à 12:09
- Martopioche
Re : Changer de themes aléatoirement.
Merci pour ce partage, ça m'a permis de m'intéresser à gconftool pour une autre idée qui va plus loin (configurer le bureau d'une manière aux heures de bureau et d'une autre en dehors).
Détail, tu peux faire ça de manière plus propre :
dir='/home/$USER/.themes/'
et même
dir='$HOME/.themes/'
Hors ligne
#4 Le 14/01/2011, à 13:51
- Peuks
Re : Changer de themes aléatoirement.
Tu veux dire configurer le bureau selon les heures ? Pour une heure x le theme sera de A ou de B ? ( A et B étant deux themes differents )
Hors ligne
#5 Le 14/01/2011, à 17:31
- Martopioche
Re : Changer de themes aléatoirement.
Par exemple. En fait, ça peut dépendre de beaucoup de choses. Les heures, le SSID du réseau WiFi ou le type de connexion, le contenu de l'agenda, tes coordonnées, ou tout simplement un widget/applet...
On n'utilise pas un "bureau" de la même manière selon son activité, il devrait doc pouvoir s'adapter en fonction.
Hors ligne
#6 Le 16/01/2011, à 10:28
- Peuks
Re : Changer de themes aléatoirement.
En effet . ce sont là de simples conditions if SSID =... then... Bon peu être pas de cette manière là mais c'est faisable a mon avis et ce n'est vraiment pas une mauvaise idée ! A creuser dès que mon portable voudra bien fonctionner a nouveau
Hors ligne
#7 Le 17/01/2011, à 23:32
- Martopioche
Re : Changer de themes aléatoirement.
Ben pour info :
http://forum.ubuntu-fr.org/viewtopic.php?id=438810
Hors ligne
#8 Le 18/01/2011, à 06:36
- Peuks
Re : Changer de themes aléatoirement.
Je vais à la fac aujourd'hui . Je pourrai toujours traîner dans le rayon informatique
Et d'ailleur pour ce script si l'on fait par rapport au réseau wifi ( qui sera du coup un indicateur de lieu comme le boulot la maison etc ) Il faudra placer le script dans /etc/NetworkManager/dispatcher.d ( pour ceux qui utilisent network manager ) Pour ceux qui utilise la ligne de commande pour se connecter au wifi ( ça existe ) il suffira de le lancer juste après le script .
Dernière modification par Peuks (Le 18/01/2011, à 06:41)
Hors ligne