X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;ds=sidebyside;f=xsetbg.py;h=c2b994887464a2d6a700ee1ebdeea67080c7fb91;hb=e48f3cad2c1f9770f0bf96dfcf09098cd57f359b;hp=93791a4ef38830d5e0e4dacc1be9b0c49cc057b6;hpb=eeb09e886cad6befca5aeab03772517e74541525;p=xsetbg.git diff --git a/xsetbg.py b/xsetbg.py index 93791a4..c2b9948 100755 --- a/xsetbg.py +++ b/xsetbg.py @@ -1,8 +1,9 @@ -#! /usr/local/bin/python -O +#! /usr/bin/env python """Set a random background image (XWin) -Select a random image from $HOME/lib/xsetbg/images subdirectories -and set it as the desktop wallpaper (display it in the root window). +Select a random image from a (list of) directory(s) +and set it as the desktop wallpaper (display it in the root window) +using xli or xsetbg programs. """ @@ -107,6 +108,12 @@ os.umask(0066) # octal; -rw-------; make the global persistent dictionary global_db_name = "xsetbg.db" +# DB keys +timestamp_key = "timestamp" +filename_key = "filename" +old_filename_key = "old_filename" + + import random import anydbm, shelve from time import time @@ -123,13 +130,21 @@ except anydbm.error, msg: os.remove(global_db_name) global_db = shelve.open(global_db_name, flag='c') -global_db.close() # Close DB in parent process +# Remove old filenames +old_time = time() - min_delay +to_delete = [timestamp_key] +for key in global_db.keys(): + if key.startswith('/') and global_db[key] < old_time: + to_delete.append(key) -# DB keys -timestamp_key = "timestamp" -filename_key = "filename" -old_filename_key = "old_filename" +for key in to_delete: + try: + del global_db[key] + except KeyError: + pass + +global_db.close() # Close DB in the parent process images = []