diff options
Diffstat (limited to 'util/fbsetbg')
-rw-r--r-- | util/fbsetbg | 71 |
1 files changed, 58 insertions, 13 deletions
diff --git a/util/fbsetbg b/util/fbsetbg index c053ea2..73f2111 100644 --- a/util/fbsetbg +++ b/util/fbsetbg | |||
@@ -23,7 +23,7 @@ | |||
23 | # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE | 23 | # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
24 | # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | 24 | # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
25 | # | 25 | # |
26 | # $Id: fbsetbg,v 1.25 2003/12/12 13:07:47 fluxgen Exp $ | 26 | # $Id: fbsetbg,v 1.26 2003/12/28 23:59:57 fluxgen Exp $ |
27 | 27 | ||
28 | # Portability notes: | 28 | # Portability notes: |
29 | # To guarantee this script works on all platforms that support fluxbox | 29 | # To guarantee this script works on all platforms that support fluxbox |
@@ -59,7 +59,9 @@ command="`basename \"$0\"`" | |||
59 | # Functions | 59 | # Functions |
60 | display_usage() { | 60 | display_usage() { |
61 | cat << EOF | 61 | cat << EOF |
62 | Usage: $command [-u/-U [wallpapersetter]] [-fFcCtTaA /path/to/wallpaper] [-bB bsetrootoptions] [-l] [-h] [-i] [-p] | 62 | Usage: $command [-u/-U [wallpapersetter]] [-fFcCtTaA /path/to/wallpaper] |
63 | [-r/-R /path/to/wallpaperdirectory] | ||
64 | [-b/-B bsetrootoptions] [-l] [-h] [-i] [-p] | ||
63 | Use \`\`$command -h'' for a complete help message. | 65 | Use \`\`$command -h'' for a complete help message. |
64 | 66 | ||
65 | EOF | 67 | EOF |
@@ -79,8 +81,9 @@ Options: | |||
79 | we fall back to -f ) | 81 | we fall back to -f ) |
80 | -u Use specified wallpapersetter, use no argument to forget. | 82 | -u Use specified wallpapersetter, use no argument to forget. |
81 | -b Forward the options to bsetroot. | 83 | -b Forward the options to bsetroot. |
84 | -r set random wallpaper from a directory | ||
82 | 85 | ||
83 | -F,-C,-T,-A,-U,-B same as uncapsed but without remembering. | 86 | -F,-C,-T,-A,-U,-B,-R same as uncapsed but without remembering. |
84 | 87 | ||
85 | -h Display this help. | 88 | -h Display this help. |
86 | 89 | ||
@@ -259,7 +262,14 @@ while [ $# -gt 0 ]; do | |||
259 | shift | 262 | shift |
260 | wallpaper=$* | 263 | wallpaper=$* |
261 | remember=false | 264 | remember=false |
262 | break;; | 265 | break ;; |
266 | -r) option=random | ||
267 | wallpaper=$2 # in this case it's a dir | ||
268 | break ;; | ||
269 | -R) option=random | ||
270 | wallpaper=$2 # in this case it's a dir | ||
271 | remember=false | ||
272 | break ;; | ||
263 | -l) | 273 | -l) |
264 | if [ -r "$lastwallpaper" ]; then | 274 | if [ -r "$lastwallpaper" ]; then |
265 | option=`grep "|${DISPLAY}$" $lastwallpaper|cut -d'|' -f1` | 275 | option=`grep "|${DISPLAY}$" $lastwallpaper|cut -d'|' -f1` |
@@ -270,8 +280,7 @@ while [ $# -gt 0 ]; do | |||
270 | fi | 280 | fi |
271 | fi | 281 | fi |
272 | remember=false | 282 | remember=false |
273 | break | 283 | break ;; |
274 | ;; | ||
275 | -p) display_tips ; exit 0 ;; | 284 | -p) display_tips ; exit 0 ;; |
276 | -h) display_help ; exit 0 ;; | 285 | -h) display_help ; exit 0 ;; |
277 | --) | 286 | --) |
@@ -282,10 +291,11 @@ while [ $# -gt 0 ]; do | |||
282 | -*) | 291 | -*) |
283 | message "unrecognized option "\`"$1'" | 292 | message "unrecognized option "\`"$1'" |
284 | display_usage | 293 | display_usage |
285 | exit 1 | 294 | exit 1 ;; |
286 | ;; | ||
287 | *) | 295 | *) |
288 | if [ ! -r "$1" ]; then | 296 | if [ "$option" = random ]; then |
297 | option='$aspect' | ||
298 | elif [ ! -r "$1" ]; then | ||
289 | message "$1 isn't an existing wallpaper or a valid option." | 299 | message "$1 isn't an existing wallpaper or a valid option." |
290 | display_usage | 300 | display_usage |
291 | exit 1 | 301 | exit 1 |
@@ -296,8 +306,7 @@ while [ $# -gt 0 ]; do | |||
296 | else | 306 | else |
297 | wallpaper=$1 | 307 | wallpaper=$1 |
298 | break | 308 | break |
299 | fi | 309 | fi ;; |
300 | ;; | ||
301 | esac | 310 | esac |
302 | done | 311 | done |
303 | 312 | ||
@@ -410,7 +419,7 @@ recommend you install the package provided by your distro." | |||
410 | ;; | 419 | ;; |
411 | esac | 420 | esac |
412 | 421 | ||
413 | if [ "$debug" = true ];then | 422 | if [ "$debug" = true ]; then |
414 | debugfbsetbg | 423 | debugfbsetbg |
415 | exit 0 | 424 | exit 0 |
416 | fi | 425 | fi |
@@ -419,11 +428,12 @@ option=${option:='$full'} | |||
419 | 428 | ||
420 | 429 | ||
421 | 430 | ||
422 | if [ -z "$DISPLAY" ];then | 431 | if [ -z "$DISPLAY" ]; then |
423 | message "You are not connected to an X session\nPerhaps you should set the DISPLAY environment variable?" | 432 | message "You are not connected to an X session\nPerhaps you should set the DISPLAY environment variable?" |
424 | exit 1 | 433 | exit 1 |
425 | fi | 434 | fi |
426 | 435 | ||
436 | |||
427 | if [ "$option" = bsetroot ]; then | 437 | if [ "$option" = bsetroot ]; then |
428 | bsetroot $wallpaper | 438 | bsetroot $wallpaper |
429 | if [ ! "$remember" = false ]; then | 439 | if [ ! "$remember" = false ]; then |
@@ -432,11 +442,45 @@ if [ "$option" = bsetroot ]; then | |||
432 | exit 0 | 442 | exit 0 |
433 | fi | 443 | fi |
434 | 444 | ||
445 | |||
446 | # random wallpaper code | ||
447 | if [ "$option" = random ]; then | ||
448 | # Lets make one thing clear... | ||
449 | wallpaperdir=$wallpaper | ||
450 | if [ -z "$wallpaperdir" ]; then | ||
451 | message "No random wallpaper directory specified." | ||
452 | exit 1 | ||
453 | fi | ||
454 | if [ -d "$wallpaperdir" ]; then | ||
455 | number_of_wallpapers=`ls $wallpaperdir|wc -l` | ||
456 | # some shells don't support $RANDOM | ||
457 | if [ -z $RANDOM ]; then | ||
458 | randomnumber=`(echo $$ ;time ps; w ; date )2>&1 | cksum | cut -f1 -d' '` | ||
459 | else | ||
460 | randomnumber=$RANDOM | ||
461 | fi | ||
462 | wallpapernumber=`expr $randomnumber % $number_of_wallpapers + 1` | ||
463 | #remember previous wallpaper | ||
464 | if [ ! "$remember" = false ]; then | ||
465 | remembercommand | ||
466 | fi | ||
467 | remember=false | ||
468 | #set -x | ||
469 | wallpaper="$wallpaperdir/`ls $wallpaperdir|sed -n ${wallpapernumber}p`" | ||
470 | option='$aspect' # have to choose something... | ||
471 | else | ||
472 | message "Invalid random wallpaper directory specified." | ||
473 | exit 1 | ||
474 | fi | ||
475 | fi | ||
476 | |||
477 | |||
435 | if [ ! -r "$wallpaper" ]; then | 478 | if [ ! -r "$wallpaper" ]; then |
436 | message "Can't find wallpaper $wallpaper" | 479 | message "Can't find wallpaper $wallpaper" |
437 | exit 1 | 480 | exit 1 |
438 | fi | 481 | fi |
439 | 482 | ||
483 | |||
440 | $WPSETTER `eval echo $option` "$wallpaper" | 484 | $WPSETTER `eval echo $option` "$wallpaper" |
441 | if [ $? -ne 0 ]; then | 485 | if [ $? -ne 0 ]; then |
442 | message "Something went wrong while setting the wallpaper. | 486 | message "Something went wrong while setting the wallpaper. |
@@ -444,6 +488,7 @@ Run '$WPSETTER "`eval echo $option` $wallpaper"' from an xterm to find out what. | |||
444 | exit 1 | 488 | exit 1 |
445 | fi | 489 | fi |
446 | 490 | ||
491 | |||
447 | #remember previous wallpaper | 492 | #remember previous wallpaper |
448 | if [ ! "$remember" = false ]; then | 493 | if [ ! "$remember" = false ]; then |
449 | remembercommand | 494 | remembercommand |