#1 Le 18/10/2006, à 09:53
- neub
[Script] Wallpapers pour dual screen
Salut,
Je suis en train d'effectuer un script pour passer d'un mono screen a un dual-screen de mode automatique .... (voir le post http://forum.ubuntu-fr.org/viewtopic.php?id=68562 pour le dual screen)
Pour l'instant le script ressemble a ca !!!!
Mais j'aimerais l'ameliorer et savoir si je peux recuperer l'adresse de wallpapers actuel,
le changer ... et tous ca en ligne de commande...
Je voulais aussi savoir si je pouvais redemarrer X en ligne de commande sans utiliser ctrl+alt+return
Et enfin si qqun avait une idée pour prendre un fond d'ecran en mode random dans un repertoire
#!/bin/sh
s0_reso=1280x800
s1_reso=1280x1024
s0_wpdir=/media/shared/wallpapers
s0_wppref=autumn_reflection_Widescreen_by_daewoniii.jpg
s1_wpdir=/media/shared/wallpapers/1280x1024
s1_wppref=heavy_rotation_007.jpg
tmp_dir=/tmp/
if [ "$#" = "0" ]; then
echo ""
echo "$0 [left|right|top|bottom|normal]"
echo ""
else
case $1 in
left)
#Make the dual wallpapers
convert -resize $s0_reso $s0_wpdir\/$s0_wppref $tmp_dir\wp2.jpg
convert -resize $s1_reso $s1_wpdir\/$s1_wppref $tmp_dir\wp1.jpg
convert +append /tmp/wp1.jpg /tmp/wp2.jpg /tmp/wpdual.jpg
#Copy the xorg.conf
sudo cp /etc/X11/xorg.conf.dual-left17 /etc/X11/xorg.conf
;;
top)
;;
normal)
cp $tmp_dir\wp2.jpg $tmp_dir\wpdual.jpg
sudo cp /etc/X11/xorg.conf.default /etc/X11/xorg.conf
;;
*)
echo "Bad commands"
echo "$0 [left|right|top|bottom|normal]"
echo ""
esac
fi
Merci d'avance
www.neub.co.nr
HP DV5 1073ez (Core 2 Duo T9400 2x2.53Ghz | nVidia GeForce 9600M GT 512MB)
Hors ligne
#2 Le 18/10/2006, à 10:25
- loloemr
Re : [Script] Wallpapers pour dual screen
pour changer de maniere aleatoire le fond d'ecran
#!/bin/sh
#-----------------------------------------------------------------------#
# #
# Description : Random wallppaper script #
# OS : Linux #
# Licence : GPL #
# Version : 0.1.0 #
# Author : <Modéré> #
# Web site : Modéré/ #
# #
#-----------------------------------------------------------------------#
# On définit le répertoire contenant les fond d'écran
REP=/usr/share/backgrounds/
# On définit l'utilisateur qui bénéficira du changement de fond d'écran
USER=fourel
# On se positionnne dans ce repertoire
cd $REP
# création d'un fichier temporaire contenant la liste des fonds du repertoire
find . \( -name "*.png" -o -name "*.jpg" -o -name "*.jpeg" \) > list.tmp
# création d'un tableau contenant le nom des fonds
tab=list.tmp
image=($(cat $tab))
nb=${#image[*]}
# On choisi aléatoirement un nombre
chosen=$((RANDOM % nb))
# On récupère l'image
file=${image[$chosen]}
# On met en place le chemin complet de l'image
chemin=$PWD/$file
# On modifie la valeur de la clé du fond d'écran dans Gconf
su $USER -c "gconftool-2 --type string --set /desktop/gnome/background/picture_filename "$chemin""
# On éfface le fichier temporaire
rm list.tmp
Dernière modification par Ayral (Le 30/04/2020, à 20:30)
L'open source est garant de notre indépendance technologique, permet de créer des emplois locaux et véhiculent deux idées fondamentales : la transparence de l'information et la supériorité de la collaboration sur la concurrence ... GNU/Linux c'est bon mangez-en !!
Hors ligne
#3 Le 18/10/2006, à 10:39
- tshirtman
Re : [Script] Wallpapers pour dual screen
et tu veux redémarrer X ou gdm?
car tu as
/etc/init.d/gdml restart
qui a exactement le même effet que ctrl-alt-backspace, a faire en sudo par contre
Hors ligne
#4 Le 18/10/2006, à 12:11
- loloemr
Re : [Script] Wallpapers pour dual screen
/etc/init.d/gdm restart plutot, non ?
L'open source est garant de notre indépendance technologique, permet de créer des emplois locaux et véhiculent deux idées fondamentales : la transparence de l'information et la supériorité de la collaboration sur la concurrence ... GNU/Linux c'est bon mangez-en !!
Hors ligne
#5 Le 18/10/2006, à 12:42
- tshirtman
Re : [Script] Wallpapers pour dual screen
oui escusez la typo!
Hors ligne
#6 Le 18/10/2006, à 13:18
- neub
Re : [Script] Wallpapers pour dual screen
nikel ... et ya moyen de redemarrer gdm (ou peut etre X) sans perdre les applications qui sont affiché (genre firefox, xmms, amsn ...)
www.neub.co.nr
HP DV5 1073ez (Core 2 Duo T9400 2x2.53Ghz | nVidia GeForce 9600M GT 512MB)
Hors ligne
#7 Le 18/10/2006, à 15:54
- tshirtman
Re : [Script] Wallpapers pour dual screen
redémarrer X ou gdm sans tuer tes process graphiques? non...
je pense qu'il faut plutot trouver la commande de mise a jour du wall....
ah tu veux quand même redémarrer X pour ton bi-écran? là je vois pas...
Dernière modification par tshirtman (Le 18/10/2006, à 15:56)
Hors ligne
#8 Le 18/10/2006, à 16:23
- loloemr
Re : [Script] Wallpapers pour dual screen
Si tu veux tu peux tester ta config xorg.conf en passant en mode console Ctrl+Alt+F1 et en tapant X :1 afin de lancer un autre serveur et verifier que tout se passe bien. En cas de soucis, il faut alors regarder dans le fichier de log
/var/log/Xorg.1.log
L'open source est garant de notre indépendance technologique, permet de créer des emplois locaux et véhiculent deux idées fondamentales : la transparence de l'information et la supériorité de la collaboration sur la concurrence ... GNU/Linux c'est bon mangez-en !!
Hors ligne
#9 Le 18/10/2006, à 20:13
- neub
Re : [Script] Wallpapers pour dual screen
bon c'est pas grave pour le redemarrage des applications mais j'ai qd meme un probleme avec le /etc/init.d/gdm restart
J'ai essayé avec sudo ca marche pas mieux ..
Si jamais voici une version quasi final du script:
#!/bin/sh
############################################
####### PARAMETERS --------------------
############################################
#Resolution screen 0 (normal) & 1 (added)
s0_reso=1280x800
s1_reso=1280x1024
#Tag to know if we use the actual wallpapers of normal mode for screen0
s0_actual=false
#Directory of various wallpapers for screen0
s0_wpdir=/media/shared/wallpapers
#Specified wallpapers (if empty the script selects one randomly) for screen0
s0_wppref=autumn_reflection_Widescreen_by_daewoniii.jpg
#Directory of various wallpapers for screen1
s1_wpdir=/media/shared/wallpapers/1280x1024
#Specified wallpapers (if empty the script selects one randomly) for screen1
s1_wppref=
############################################
####### FUNCTIONS TOOLS --------------------
############################################
LoadNormalBG(){
if [ "$s0_actual" = "true" ]; then
LoadActualBG;
wp_path=$wp_actual
else
if [ "$s0_wppref" = "" ]; then
wp_dir=$s0_wpdir
LoadRandomBG;
else
wp_path="$s0_wpdir/$s0_wppref"
fi
fi
#Resize to specified resolution
convert -resize $s1_reso $wp_path $tmp_dir/wp_normal.jpg
}
#Load the wallpapers for the second screen in the tmp_dir in the file wp_second.jpg
LoadSecondBG(){
if [ "$s1_wppref" = "" ]; then
#Load random wallpapers
wp_dir=$s1_wpdir
LoadRandomBG;
else
#Load a preselected wallpapers
wp_path="$s1_wpdir/$s1_wppref"
fi
#Resize to specified resolution
convert -resize $s1_reso $wp_path $tmp_dir/wp_second.jpg
}
LoadActualBG() {
wp_actual=`gconftool-2 --get /desktop/gnome/background/picture_filename`
if [ "$wp_actual" = "$tmp_dir/wp_dual.jpg" ]; then
wp_actual=$tmp_dir/wp_normal.jpg
fi
}
LoadRandomBG() {
cd $wp_dir
# création d'un fichier temporaire contenant la liste des fonds du repertoire
find . \( -name "*.png" -o -name "*.jpg" -o -name "*.jpeg" \) > $tmp_dir/list.tmp
# création d'un tableau contenant le nom des fonds
tab=$tmp_dir/list.tmp
image=($(cat $tab))
nb=${#image[*]}
# On choisi aléatoirement un nombre
chosen=$((RANDOM % nb))
# On récupère l'image
file=${image[$chosen]}
# On met en place le chemin complet de l'image
wp_path=$PWD/$file
rm $tmp_dir/list.tmp
}
CheckDualConfDir() {
tmp_dir=/home/$USER/.dualconf
#Check if the directory exist
ls $tmp_dir &> /dev/null
#if there is an erreur
if [ $? != "0" ]; then
mkdir $tmp_dir
fi
}
CheckImageMagick() {
which convert &>/dev/null
if [ $? != "0" ]; then
echo -e "ImageMagick -- NOT INSTALLED";
echo -e "You need to install ImageMagick package before this script will function correctly.";
echo -e "To install it you can run this command : sudo apt-get install imagemagick";
exit 0
fi
}
CheckUser() {
if [ $USER = "root" ]; then
echo "You run the script as root user, You must set the normal user password"
su $SUDO_USER
fi
}
RestartGDM() {
sudo /etc/init.d/gdm restart
}
############################################
####### MAIN FUNCTION ---------------------
############################################
CheckUser;
CheckDualConfDir;
CheckImageMagick;
if [ "$#" = "0" ]; then
echo ""
echo "$0 [left|right|top|bottom|normal]"
echo ""
else
if [ "$1" = "normal" ]; then
CheckUser;
gconftool-2 --type string --set /desktop/gnome/background/picture_filename $tmp_dir/wp_normal.jpg
sudo cp $tmp_dir/xorg.conf.default /etc/X11/xorg.conf
else
#Get the normal background image
LoadNormalBG;
#Get the second background image
LoadSecondBG;
case $1 in
left)
#Make the dual wallpapers
convert +append $tmp_dir/wp_second.jpg $tmp_dir/wp_normal.jpg $tmp_dir/wp_dual.jpg
#Copy the xorg.conf
sudo cp $tmp_dir/xorg.conf.dual-left17 /etc/X11/xorg.conf
;;
top)
#Make the dual wallpapers
convert -append $tmp_dir/wp_second.jpg $tmp_dir/wp_normal.jpg $tmp_dir/wp_dual.jpg
#Copy the xorg.conf
sudo cp $tmp_dir/xorg.conf.dual-top17 /etc/X11/xorg.conf
;;
*)
echo "Bad commands"
echo "$0 [left|right|top|bottom|normal]"
echo ""
esac
CheckUser;
gconftool-2 --type string --set /desktop/gnome/background/picture_filename "$tmp_dir/wp_normal.jpg"
gconftool-2 --type string --set /desktop/gnome/background/picture_filename "$tmp_dir/wp_dual.jpg"
fi
RestartGDM;
fi
www.neub.co.nr
HP DV5 1073ez (Core 2 Duo T9400 2x2.53Ghz | nVidia GeForce 9600M GT 512MB)
Hors ligne
#10 Le 21/10/2006, à 20:24
- neub
Re : [Script] Wallpapers pour dual screen
Bon il y a un pote qui est venu m'aider et on a essayé :
sudo init 3 && sudo init 5
mais ca donne toujours rien !!!
Pas moyen de faire qqc pour restarter X ou le gdm en fait faire la meme chose que le ctr+alt+back
www.neub.co.nr
HP DV5 1073ez (Core 2 Duo T9400 2x2.53Ghz | nVidia GeForce 9600M GT 512MB)
Hors ligne