OLD | NEW |
1 #!/bin/sh | 1 #!/bin/sh |
2 #--------------------------------------------- | 2 #--------------------------------------------- |
3 # xdg-screensaver | 3 # xdg-screensaver |
4 # | 4 # |
5 # Utility script to control screensaver. | 5 # Utility script to control screensaver. |
6 # | 6 # |
7 # Refer to the usage() function below for usage. | 7 # Refer to the usage() function below for usage. |
8 # | 8 # |
9 # Copyright 2006, Bryce Harrington <bryce@osdl.org> | 9 # Copyright 2006, Bryce Harrington <bryce@osdl.org> |
10 # | 10 # |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
93 fi | 93 fi |
94 ;; | 94 ;; |
95 | 95 |
96 gnome_screensaver) | 96 gnome_screensaver) |
97 screensaver_gnome_screensaver "$1" | 97 screensaver_gnome_screensaver "$1" |
98 ;; | 98 ;; |
99 | 99 |
100 xscreensaver) | 100 xscreensaver) |
101 screensaver_xscreensaver "$1" | 101 screensaver_xscreensaver "$1" |
102 ;; | 102 ;; |
| 103 |
| 104 '') |
| 105 screensaver_xserver "$1" |
| 106 ;; |
103 esac | 107 esac |
104 | 108 |
105 if [ "$1" = "suspend" ] ; then | 109 if [ "$1" = "suspend" ] ; then |
106 # Save DPMS state | 110 # Save DPMS state |
107 if xset -q | grep 'DPMS is Enabled' > /dev/null 2> /dev/null; then | 111 if xset -q | grep 'DPMS is Enabled' > /dev/null 2> /dev/null; then |
108 test "${TMPDIR+set}" = set || TMPDIR=/tmp | 112 test "${TMPDIR+set}" = set || TMPDIR=/tmp |
109 tmpfile=`mktemp $TMPDIR/tmp.XXXXXXXXXX` | 113 tmpfile=`mktemp $TMPDIR/tmp.XXXXXXXXXX` |
110 $MV "$tmpfile" "$screensaver_file.dpms" | 114 $MV "$tmpfile" "$screensaver_file.dpms" |
111 # Disable DPMS | 115 # Disable DPMS |
112 xset -dpms | 116 xset -dpms |
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
293 echo "enabled" | 297 echo "enabled" |
294 elif [ x"$status" = "xfalse" ]; then | 298 elif [ x"$status" = "xfalse" ]; then |
295 echo "disabled" | 299 echo "disabled" |
296 else | 300 else |
297 echo "ERROR: dbus org.freedesktop.ScreenSaver.GetActive returned '$s
tatus'" >&2 | 301 echo "ERROR: dbus org.freedesktop.ScreenSaver.GetActive returned '$s
tatus'" >&2 |
298 return 1 | 302 return 1 |
299 fi | 303 fi |
300 ;; | 304 ;; |
301 | 305 |
302 *) | 306 *) |
303 echo "ERROR: Unknown command '$1'" >&2 | 307 echo "ERROR: Unknown command '$1'" >&2 |
304 return 1 | 308 return 1 |
305 ;; | 309 ;; |
306 esac | 310 esac |
307 } | 311 } |
308 | 312 |
309 screensaver_kde() | 313 screensaver_kde() |
310 { | 314 { |
311 case "$1" in | 315 case "$1" in |
312 suspend) | 316 suspend) |
313 dcop kdesktop KScreensaverIface enable false > /dev/null | 317 dcop kdesktop KScreensaverIface enable false > /dev/null |
(...skipping 22 matching lines...) Expand all Loading... |
336 ;; | 340 ;; |
337 | 341 |
338 status) | 342 status) |
339 status=`dcop kdesktop KScreensaverIface isEnabled` | 343 status=`dcop kdesktop KScreensaverIface isEnabled` |
340 result=$? | 344 result=$? |
341 if [ x"$status" = "xtrue" ]; then | 345 if [ x"$status" = "xtrue" ]; then |
342 echo "enabled" | 346 echo "enabled" |
343 elif [ x"$status" = "xfalse" ]; then | 347 elif [ x"$status" = "xfalse" ]; then |
344 echo "disabled" | 348 echo "disabled" |
345 else | 349 else |
346 echo "ERROR: kdesktop KScreensaverIface isEnabled returned '$status
'" >&2 | 350 echo "ERROR: kdesktop KScreensaverIface isEnabled returned '$status'
" >&2 |
347 return 1 | 351 return 1 |
348 fi | 352 fi |
349 ;; | 353 ;; |
350 | 354 |
351 *) | 355 *) |
352 echo "ERROR: Unknown command '$1'" >&2 | 356 echo "ERROR: Unknown command '$1'" >&2 |
| 357 return 1 |
| 358 ;; |
| 359 esac |
| 360 } |
| 361 |
| 362 screensaver_xserver() |
| 363 { |
| 364 case "$1" in |
| 365 suspend) |
| 366 xset s off > /dev/null |
| 367 result=$? |
| 368 ;; |
| 369 |
| 370 resume) |
| 371 xset s default > /dev/null |
| 372 result=$? |
| 373 ;; |
| 374 |
| 375 activate) |
| 376 xset s activate > /dev/null |
| 377 result=$? |
| 378 ;; |
| 379 |
| 380 reset) |
| 381 xset s reset > /dev/null |
| 382 result=$? |
| 383 ;; |
| 384 |
| 385 status) |
| 386 timeout=`xset q | sed '/^Screen Saver:/,/^[^ ]/ { s/.*timeout: *\([0-9]*
\).*/\1/; t }; d'` |
| 387 result=$? |
| 388 if [ "$timeout" -gt 0 ]; then |
| 389 echo "enabled" |
| 390 elif [ "$timeout" -eq 0 ]; then |
| 391 echo "disabled" |
| 392 else |
| 393 echo "ERROR: xset q did not report the screensaver timeout" >&2 |
| 394 return 1 |
| 395 fi |
| 396 ;; |
| 397 |
| 398 *) |
| 399 echo "ERROR: Unknown command '$1'" >&2 |
353 return 1 | 400 return 1 |
354 ;; | 401 ;; |
355 esac | 402 esac |
356 } | 403 } |
357 | 404 |
358 screensaver_suspend_loop() | 405 screensaver_suspend_loop() |
359 { | 406 { |
360 lockfile | 407 lockfile |
361 test "${TMPDIR+set}" = set || TMPDIR=/tmp | 408 test "${TMPDIR+set}" = set || TMPDIR=/tmp |
362 tmpfile=`mktemp $TMPDIR/tmp.XXXXXXXXXX` | 409 tmpfile=`mktemp $TMPDIR/tmp.XXXXXXXXXX` |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
423 echo "disabled" | 470 echo "disabled" |
424 elif gnome-screensaver-command --query > /dev/null 2> /dev/null; then | 471 elif gnome-screensaver-command --query > /dev/null 2> /dev/null; then |
425 echo "enabled" | 472 echo "enabled" |
426 else | 473 else |
427 # Something is wrong | 474 # Something is wrong |
428 echo "disabled" | 475 echo "disabled" |
429 fi | 476 fi |
430 ;; | 477 ;; |
431 | 478 |
432 *) | 479 *) |
433 echo "ERROR: Unknown command '$1" >&2 | 480 echo "ERROR: Unknown command '$1" >&2 |
434 return 1 | 481 return 1 |
435 ;; | 482 ;; |
436 esac | 483 esac |
437 } | 484 } |
438 | 485 |
439 screensaver_xscreensaver() | 486 screensaver_xscreensaver() |
440 { | 487 { |
441 case "$1" in | 488 case "$1" in |
442 suspend) | 489 suspend) |
443 screensaver_suspend_loop xscreensaver-command -deactivate | 490 screensaver_suspend_loop xscreensaver-command -deactivate |
(...skipping 24 matching lines...) Expand all Loading... |
468 status) | 515 status) |
469 result=0 | 516 result=0 |
470 if [ -f "$screensaver_file" ] ; then | 517 if [ -f "$screensaver_file" ] ; then |
471 echo "disabled" | 518 echo "disabled" |
472 else | 519 else |
473 echo "enabled" | 520 echo "enabled" |
474 fi | 521 fi |
475 ;; | 522 ;; |
476 | 523 |
477 *) | 524 *) |
478 echo "ERROR: Unknown command '$1" >&2 | 525 echo "ERROR: Unknown command '$1" >&2 |
479 return 1 | 526 return 1 |
480 ;; | 527 ;; |
481 esac | 528 esac |
482 } | 529 } |
483 | 530 |
484 [ x"$1" != x"" ] || exit_failure_syntax | 531 [ x"$1" != x"" ] || exit_failure_syntax |
485 | 532 |
486 action= | 533 action= |
487 window_id= | 534 window_id= |
488 | 535 |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
550 if [ "$action" = "suspend" ] ; then | 597 if [ "$action" = "suspend" ] ; then |
551 # Start tracking $window_id and resume the screensaver once it disappears | 598 # Start tracking $window_id and resume the screensaver once it disappears |
552 ( track_window ) 2> /dev/null > /dev/null & | 599 ( track_window ) 2> /dev/null > /dev/null & |
553 fi | 600 fi |
554 | 601 |
555 if [ $result -eq 0 ]; then | 602 if [ $result -eq 0 ]; then |
556 exit_success | 603 exit_success |
557 else | 604 else |
558 exit_failure_operation_failed | 605 exit_failure_operation_failed |
559 fi | 606 fi |
OLD | NEW |