User Tools

Site Tools


blog:change_windows_desktop_background_for_day_and_night_ubuntu_gnu:linux

This is an old revision of the document!


Change windows desktop background for day and night (Ubuntu, GNU/Linux)

Having a bright, blue wallpaper for day use and a darker, reddish wallpaper for evening/night is useful stay in synch with the real time of day. So, i wanted my windows xp machine automatically switch to the day wallpaper from 7-20 and to night from 20-7 hours. The following batch script does this, without any add-on software. To use, copy-paste the file and store it to your scripts directory (e:\etc in my case).

Advantages:

  • No additional software (apart from the script) has to be installed
  • No additional load on the computer by a desktop switcher, except from the tasks that you define yourself

Notes: directly use a jpg file as a windows wallpaper (the settings dialog creates a bmp file behind your back!).

  • Configuration is by changing the set … variable at the top of the file
  • Test by calling the batchfile
  • To automate the wallpaper switch:
    • make a link in the windows autostart folder
    • add an hourly task to the task manager (or even cleaner, two tasks at the switch times (7:00 and 20:00)
changedesktop.sh
#!/bin/bash                                                                                                       
# Change desktop background image depending on the time of day                                                    
# Configuration: Change hourse in the case statements, and the images to load as background                       
#                                                                                                                 
# load variables for gconftool. These have to be written to Xdbus during login                                    
. $HOME/.config/Xdbus                                                                                             
 
HOUR=$(date +%H)                                                                                                  
gconftool=/usr/bin/gconftool                                                                                      
case "$HOUR" in                                                                                                   
    06|07)                                                                                                        
        $gconftool -t string -s /desktop/gnome/background/picture_filename ~/Bilder/DSC_0373.JPG                  
        ;;                                                                                                        
    08|09|10|11|12|13|14|15|16)                                                                                   
        $gconftool -t string -s /desktop/gnome/background/picture_filename ~/Bilder/DSC_1025.JPG                  
        ;;                                                                                                        
    17|18|19 )                                                                                                    
        $gconftool -t string -s /desktop/gnome/background/picture_filename ~/Bilder/DSC_0959.JPG                  
        ;;                                                                                                        
    *)                                                                                                            
        $gconftool -t string -s /desktop/gnome/background/picture_filename ~/Bilder/DSC_0776.JPG                  
        ;;                                                                                                        
esac                                                                                                              
 

Note: gconftool need some environment variables of the user. These can be saved during login, for later use

xdbus.sh
#!/bin/sh                                                                                                         
# Export the dbus session address on startup so it can be used by cron                                            
# use in cron /home/brb/.config/Xdbus;                                                                            
xdbus=$HOME/.config/Xdbus                                                                                         
touch $xdbus                                                                                                      
chmod 600 $xdbus                                                                                                  
env | grep DBUS_SESSION_BUS_ADDRESS > $xdbus                                                                      
echo 'export DBUS_SESSION_BUS_ADDRESS' >> $xdbus                                                                  
# Export XAUTHORITY value on startup so it can be used by cron                                                    
env | grep XAUTHORITY >> $xdbus                                                                                   
echo 'export XAUTHORITY' >> $xdbus         

~~LINKBACK~~

Discussion

Enter your comment. Wiki syntax is allowed:
   ___    ____   __  ___  ____    ___ 
  / _ \  / __/  /  |/  / / __ \  / _ )
 / , _/ _\ \   / /|_/ / / /_/ / / _  |
/_/|_| /___/  /_/  /_/  \____/ /____/
 
blog/change_windows_desktop_background_for_day_and_night_ubuntu_gnu/linux.1293696233.txt.gz · Last modified: 2010-12-30 09:03 by brb