Fond d'écran aléatoire
Introduction
Cet article a initalement été publié comme une petite documentation du script qui suit. Il concerne les systèmes Unix-like qui disposent de l'outil grep ainsi que d'un utilitaire en ligne de commande pour changer le fond d'écran. En réalité, le script a été conçu initialement pour les utilisateurs de bureaux moins gourmands que KDE ou Gnome, mais qui souhaitent quand même bénéficier de cette fonctionnalité.
Présentation
La plupart des gestionnaires de bureaux actuels, tels KDE ou Gnome (pour ne pas les citer), proposent une fonction bien sympathique pour rompre avec la monotonie : le choix d'un fond d'écran aléatoire parmi les fichiers images de dossiers donnés. Cependant, de tels gestionnaires sont volumineux et nécessitent une machine suffisamment performante et davantage de ressoucres, c'est pourquoi de nombreux utilisateurs leurs préfèrent Fluxbox ou encore WindowMaker.
Ce script leur est destiné : correctement paramétré, il leur permet de profiter de ce petit plus qui manque à la plupart de gestionnaires de fenêtrage. Simple et concis grâce au langage Perl, il sert également de tutorial à quiconque cherche à découvrir certains rouages dudit langage.
Utilisation
L'utilisation de l'application est simple et est résumée lors d'un appel sans argument :
$ rBackground Author: Naopic Tastalian Website: http://www.tastalian.org/ Programming time: less than 42 minutes. Comment: I LIKE PERL !!! -- This code is redistributed without any WARANTY, use it at your own risks ! -- usage: rBackground [-f folder] [-p pattern] [-u script]
Tous les paramètres sont facultatifs, en leur absence les valeurs par défaut seront utilisées.
-
L'instruction
-f folderdéfinit le dossier où rechercher les fichiers image. -
L'instruction
-p patterndéfinit le modèle de noms de fichiers à utiliser (le défaut est l'extension .jpg). -
L'instruction
-u scriptdéfinit l'application à utiliser pour changer le fond d'écran (celui par défaut estwmsetbg -s).
Dans la plupart des cas, vous n'aurez qu'à éditer le script pour régler vos paramètres. Si votre manager supporte les appels par défaut avec des paramètres, comme c'est le cas des thèmes Fluxbox ou WMaker , il est recommandé de passer par là et de ne pas éditer le script.
Implémentation
rBackground.pl
#!/usr/pkg/bin/perl -w use strict; # Constantes my $DEFAULT_FOLDER = "."; my $DEFAULT_PATTERN = ".jpg"; my $DEFAULT_SCRIPT = "wmsetbg -s"; # Variables my $FOLDER = $DEFAULT_FOLDER; my $PATTERN = $DEFAULT_PATTERN; my $SCRIPT = $DEFAULT_SCRIPT; my ($cur, @files); # ============================================================ # Méthode. sub usage { print "usage: $0 [-f folder] [-p pattern] [-u script]\n\n". "Where '-f folder' gives the current folder name\n". "where wallpapers are stored. \n\n". "Where '-p pattern' is a pattern of filename\n". "describing part of the name the script should\n". "look for in current folder. \n\n". "Where '-u script' defines the script to use\n". "use instead of the default. \n\n"; } # ============================================================ # Script principal. # Générique print "\nAuthor: Naopic Tastalian\n"; print "Website: http://www.tastalian.org/\n"; print "Programming time: less than 42 minutes.\n"; print "Comment: I LIKE PERL !!!\n"; # Avertissement print "\n--\n"; print "This code is redistributed without any WARANTY,\n"; print "use it at your own risks !\n"; print "--\n\n"; # Lecture des arguments for ($cur = 0; $cur < $#ARGV; $cur++) { if ($ARGV[$cur] eq "-f") { $FOLDER = $ARGV[++$cur]; } elsif ($ARGV[$cur] eq "-p") { $PATTERN = $ARGV[++$cur]; } elsif ($ARGV[$cur] eq "-u") { $SCRIPT = $ARGV[++$cur]; } } # Aller au dossier visé chdir($FOLDER); # Acquérir la liste des fichiers @files = `ls | grep $PATTERN`; if ($#files < 0) { print "No file corresponding to pattern, exiting...\n"; exit (-1); } # En choisir un, et définir le fond d'écran $cur = rand($#files) % (($#files == 0) ? 1 : $#files); system("$SCRIPT $files[$cur]"); exit 0;
Conclusion
Ce script a été programmé par Naopic Tastalian (aka. Stéphane Caron). Tout utilisateur est libre de le redistribuer ou de le modifier. Article rédigé le 02/04/2005.