Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(11)

Side by Side Diff: third_party/xdg-utils/scripts/xdg-screensaver

Issue 3273010: Update our copy of xdg-utils to 2010-08-30, and include a patched xdg-mime. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/
Patch Set: Created 10 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 212 matching lines...) Expand 10 before | Expand all | Expand 10 after
223 exit_failure_file_permission_read() 223 exit_failure_file_permission_read()
224 { 224 {
225 if [ $# -gt 0 ]; then 225 if [ $# -gt 0 ]; then
226 echo "xdg-screensaver: $@" >&2 226 echo "xdg-screensaver: $@" >&2
227 fi 227 fi
228 228
229 exit 5 229 exit 5
230 } 230 }
231 231
232 #------------------------------------------------------------ 232 #------------------------------------------------------------
233 # Exit script on insufficient permission to read a specified file 233 # Exit script on insufficient permission to write a specified file
234 234
235 exit_failure_file_permission_write() 235 exit_failure_file_permission_write()
236 { 236 {
237 if [ $# -gt 0 ]; then 237 if [ $# -gt 0 ]; then
238 echo "xdg-screensaver: $@" >&2 238 echo "xdg-screensaver: $@" >&2
239 fi 239 fi
240 240
241 exit 6 241 exit 6
242 } 242 }
243 243
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
300 echo "Use 'man xdg-screensaver' or 'xdg-screensaver --manual' for ad ditional info." 300 echo "Use 'man xdg-screensaver' or 'xdg-screensaver --manual' for ad ditional info."
301 exit_success 301 exit_success
302 ;; 302 ;;
303 303
304 --manual) 304 --manual)
305 manualpage 305 manualpage
306 exit_success 306 exit_success
307 ;; 307 ;;
308 308
309 --version) 309 --version)
310 echo "xdg-screensaver 1.0.1" 310 echo "xdg-screensaver 1.0.2"
311 exit_success 311 exit_success
312 ;; 312 ;;
313 esac 313 esac
314 done 314 done
315 } 315 }
316 316
317 check_common_commands "$@" 317 check_common_commands "$@"
318 318
319 [ -z "${XDG_UTILS_DEBUG_LEVEL}" ] && unset XDG_UTILS_DEBUG_LEVEL; 319 [ -z "${XDG_UTILS_DEBUG_LEVEL}" ] && unset XDG_UTILS_DEBUG_LEVEL;
320 if [ ${XDG_UTILS_DEBUG_LEVEL-0} -lt 1 ]; then 320 if [ ${XDG_UTILS_DEBUG_LEVEL-0} -lt 1 ]; then
321 # Be silent 321 # Be silent
322 xdg_redirect_output=" > /dev/null 2> /dev/null" 322 xdg_redirect_output=" > /dev/null 2> /dev/null"
323 else 323 else
324 # All output to stderr 324 # All output to stderr
325 xdg_redirect_output=" >&2" 325 xdg_redirect_output=" >&2"
326 fi 326 fi
327 327
328 #-------------------------------------- 328 #--------------------------------------
329 # Checks for known desktop environments 329 # Checks for known desktop environments
330 # set variable DE to the desktop environments name, lowercase 330 # set variable DE to the desktop environments name, lowercase
331 331
332 detectDE() 332 detectDE()
333 { 333 {
334 if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde; 334 if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde;
335 elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome; 335 elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome;
336 elif xprop -root _DT_SAVE_MODE | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=xfce; 336 elif `dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/D Bus org.freedesktop.DBus.GetNameOwner string:org.gnome.SessionManager > /dev/nul l 2>&1` ; then DE=gnome;
337 elif xprop -root _DT_SAVE_MODE 2> /dev/null | grep ' = \"xfce4\"$' >/dev/nul l 2>&1; then DE=xfce;
337 fi 338 fi
338 } 339 }
339 340
340 #---------------------------------------------------------------------------- 341 #----------------------------------------------------------------------------
341 # kfmclient exec/openURL can give bogus exit value in KDE <= 3.5.4 342 # kfmclient exec/openURL can give bogus exit value in KDE <= 3.5.4
342 # It also always returns 1 in KDE 3.4 and earlier 343 # It also always returns 1 in KDE 3.4 and earlier
343 # Simply return 0 in such case 344 # Simply return 0 in such case
344 345
345 kfmclient_fix_exit_code() 346 kfmclient_fix_exit_code()
346 { 347 {
347 version=`kde${KDE_SESSION_VERSION}-config --version 2>/dev/null | grep KDE` 348 version=`kde${KDE_SESSION_VERSION}-config --version 2>/dev/null | grep KDE`
348 major=`echo $version | sed 's/KDE: \([0-9]\).*/\1/'` 349 major=`echo $version | sed 's/KDE: \([0-9]\).*/\1/'`
349 minor=`echo $version | sed 's/KDE: [0-9]*\.\([0-9]\).*/\1/'` 350 minor=`echo $version | sed 's/KDE: [0-9]*\.\([0-9]\).*/\1/'`
350 release=`echo $version | sed 's/KDE: [0-9]*\.[0-9]*\.\([0-9]\).*/\1/'` 351 release=`echo $version | sed 's/KDE: [0-9]*\.[0-9]*\.\([0-9]\).*/\1/'`
351 test "$major" -gt 3 && return $1 352 test "$major" -gt 3 && return $1
352 test "$minor" -gt 5 && return $1 353 test "$minor" -gt 5 && return $1
353 test "$release" -gt 4 && return $1 354 test "$release" -gt 4 && return $1
354 return 0 355 return 0
355 } 356 }
356 357
357 # Check if we can use "mv -T" 358 # Check if we can use "mv -T"
358 if mv -T ... ... 2>&1 | grep '\.\.\.' > /dev/null ; then 359 if mv -T ... ... 2>&1 | grep '\.\.\.' > /dev/null ; then
359 # We can securely move files in /tmp with mv -T 360 # We can securely move files in /tmp with mv -T
360 DEBUG 1 "mv -T available" 361 DEBUG 1 "mv -T available"
361 MV="mv -T" 362 MV="mv -T"
362 screensaver_file="/tmp/xdg-screensaver-$USER-"`echo $DISPLAY | sed 's/:/-/g'` 363 screensaver_file="/tmp/xdg-screensaver-$USER-"`echo $DISPLAY | sed 's/:/-/g'`
363 else 364 else
364 # No secure moves available, use home dir 365 # No secure moves available, use home dir
365 DEBUG 1 "mv -T not available" 366 DEBUG 1 "mv -T not available"
366 MV="mv" 367 MV="mv"
367 screensaver_file="$HOME/.xdg-screensaver-"`echo $(hostname)-$DISPLAY | sed 's /:/-/g'` 368 screensaver_file="$HOME/.xdg-screensaver-"`echo $(hostname)-$DISPLAY | sed 's /:/-/g'`
368 fi 369 fi
369 lockfile_command=`which lockfile 2> /dev/null` 370 lockfile_command=`which lockfile 2> /dev/null`
370 371
371 lockfile() 372 lockfile()
372 { 373 {
373 if [ -n "$lockfile_command" ] ; then 374 if [ -n "$lockfile_command" ] ; then
374 $lockfile_command -1 -l 10 -s 3 "$screensaver_file".lock 375 $lockfile_command -1 -l 10 -s 3 "$screensaver_file".lock
375 else 376 else
376 # Poor man's attempt at doing a lockfile 377 # Poor man's attempt at doing a lockfile
377 # Be careful not to facilitate a symlink attack 378 # Be careful not to facilitate a symlink attack
378 local try 379 local try
379 try=0 380 try=0
380 while ! ln -s "$screensaver_file".lock "$screensaver_file".lock 2> /dev/nul l; 381 while ! ln -s "$screensaver_file".lock "$screensaver_file".lock 2> /dev/nul l;
381 do 382 do
382 sleep 1 383 sleep 1
383 try=$(($try+1)) 384 try=$(($try+1))
384 if [ $try -eq 3 ] ; then 385 if [ $try -eq 3 ] ; then
385 rm -f "$screensaver_file".lock || return # Can't remove lockfile 386 rm -f "$screensaver_file".lock || return # Can't remove lockfile
386 try=0 387 try=0
387 fi 388 fi
388 done 389 done
389 fi 390 fi
390 } 391 }
391 392
392 unlockfile() 393 unlockfile()
393 { 394 {
394 rm -f "$screensaver_file".lock 395 rm -f "$screensaver_file".lock
(...skipping 12 matching lines...) Expand all
407 fi 408 fi
408 fi 409 fi
409 if [ "$1" = "reset" ] ; then 410 if [ "$1" = "reset" ] ; then
410 if xset -q | grep 'DPMS is Enabled' > /dev/null 2> /dev/null; then 411 if xset -q | grep 'DPMS is Enabled' > /dev/null 2> /dev/null; then
411 xset dpms force on 412 xset dpms force on
412 fi 413 fi
413 fi 414 fi
414 415
415 case "$DE" in 416 case "$DE" in
416 kde) 417 kde)
417 screensaver_kde "$1" 418 if [ x"$KDE_SESSION_VERSION" = x"4" ]; then
419 screensaver_freedesktop "$1"
420 else
421 screensaver_kde "$1"
422 fi
418 ;; 423 ;;
419 424
420 gnome) 425 gnome_screensaver)
421 screensaver_gnome "$1" 426 screensaver_gnome_screensaver "$1"
422 ;; 427 ;;
423 428
424 xscreensaver) 429 xscreensaver)
425 screensaver_xscreensaver "$1" 430 screensaver_xscreensaver "$1"
426 ;; 431 ;;
427 esac 432 esac
428 433
429 if [ "$1" = "suspend" ] ; then 434 if [ "$1" = "suspend" ] ; then
430 # Save DPMS state 435 # Save DPMS state
431 if xset -q | grep 'DPMS is Enabled' > /dev/null 2> /dev/null; then 436 if xset -q | grep 'DPMS is Enabled' > /dev/null 2> /dev/null; then
(...skipping 21 matching lines...) Expand all
453 perform_action resume 458 perform_action resume
454 else 459 else
455 unlockfile 460 unlockfile
456 fi 461 fi
457 } 462 }
458 463
459 do_resume() 464 do_resume()
460 { 465 {
461 lockfile # Obtain lockfile 466 lockfile # Obtain lockfile
462 # Find the PID of the trackingprocess 467 # Find the PID of the trackingprocess
463 xprop_pid=`grep "$window_id:" "$screensaver_file" 2> /dev/null | cut -d ':' -f 2` 468 xprop_pid=`grep "$window_id:" "$screensaver_file" 2> /dev/null | cut -d ':' -f 2`
464 unlockfile # Free lockfile 469 unlockfile # Free lockfile
465 if [ -n "$xprop_pid" ] && ps -p "$xprop_pid" 2> /dev/null | grep xprop > /dev/ null; then 470 if [ -n "$xprop_pid" ] && ps -p "$xprop_pid" 2> /dev/null | grep xprop > /dev/ null; then
466 # Kill the tracking process 471 # Kill the tracking process
467 kill -s TERM $xprop_pid 472 kill -s TERM $xprop_pid
468 fi 473 fi
469 cleanup_suspend 474 cleanup_suspend
470 } 475 }
471 476
472 XPROP=`which xprop 2> /dev/null` 477 XPROP=`which xprop 2> /dev/null`
473 478
474 check_window_id() 479 check_window_id()
475 { 480 {
476 if [ -z "$XPROP" ]; then 481 if [ -z "$XPROP" ]; then
477 DEBUG 3 "xprop not found" 482 DEBUG 3 "xprop not found"
478 return 483 return
479 fi 484 fi
480 DEBUG 2 "Running $XPROP -id $window_id" 485 DEBUG 2 "Running $XPROP -id $window_id"
481 if $XPROP -id $window_id > /dev/null 2> /dev/null; then 486 if $XPROP -id $window_id > /dev/null 2> /dev/null; then
482 DEBUG 3 Window $window_id exists 487 DEBUG 3 Window $window_id exists
483 else 488 else
484 DEBUG 3 Window $window_id does not exist 489 DEBUG 3 Window $window_id does not exist
485 exit_failure_operation_failed "Window $window_id does not exist" 490 exit_failure_operation_failed "Window $window_id does not exist"
486 fi 491 fi
487 } 492 }
488 493
489 track_window() 494 track_window()
(...skipping 10 matching lines...) Expand all
500 # Return if $window_id is being tracked already 505 # Return if $window_id is being tracked already
501 ( 506 (
502 already_tracked=1 507 already_tracked=1
503 IFS_save="$IFS" 508 IFS_save="$IFS"
504 IFS=":" 509 IFS=":"
505 while read wid pid; do 510 while read wid pid; do
506 if ps -p "$pid" 2> /dev/null | grep xprop > /dev/null; then 511 if ps -p "$pid" 2> /dev/null | grep xprop > /dev/null; then
507 echo "$wid:$pid" 512 echo "$wid:$pid"
508 if [ $wid = $window_id ] ; then 513 if [ $wid = $window_id ] ; then
509 already_tracked=0 514 already_tracked=0
510 fi 515 fi
511 fi 516 fi
512 done 517 done
513 IFS="$IFS_save" 518 IFS="$IFS_save"
514 exit $already_tracked 519 exit $already_tracked
515 ) < $screensaver_file > $tmpfile 520 ) < $screensaver_file > $tmpfile
516 already_tracked=$? 521 already_tracked=$?
517 522
518 if [ "$already_tracked" -eq "0" ] ; then 523 if [ "$already_tracked" -eq "0" ] ; then
519 $MV "$tmpfile" "$screensaver_file" 524 $MV "$tmpfile" "$screensaver_file"
520 # We are already tracking $window_id, don't do anything 525 # We are already tracking $window_id, don't do anything
521 unlockfile 526 unlockfile
522 return 527 return
523 fi 528 fi
524 529
525 # Start tracking $window_id 530 # Start tracking $window_id
526 $XPROP -id $window_id -spy > /dev/null & 531 $XPROP -id $window_id -spy > /dev/null &
527 xprop_pid=$! 532 xprop_pid=$!
528 # Add window_id and xprop_pid to the xdg-screensave status file 533 # Add window_id and xprop_pid to the xdg-screensave status file
529 echo "$window_id:$xprop_pid" >> $tmpfile 534 echo "$window_id:$xprop_pid" >> $tmpfile
530 $MV "$tmpfile" "$screensaver_file" 535 $MV "$tmpfile" "$screensaver_file"
531 unlockfile 536 unlockfile
532 # Wait for xprop to edit, it means that the window disappeared 537 # Wait for xprop to edit, it means that the window disappeared
533 wait $xprop_pid 538 wait $xprop_pid
534 # Clean up the administration and resume the screensaver 539 # Clean up the administration and resume the screensaver
535 cleanup_suspend 540 cleanup_suspend
536 } 541 }
537 542
538 screensaver_freedesktop() 543 screensaver_freedesktop()
539 { 544 {
540 case "$1" in 545 case "$1" in
541 suspend) 546 suspend)
542 #FIXME (get/store cookie) 547 dbus-send --session \
543 qdbus org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.ScreenSav er.Inhibit $window_id xdg-screensaver > /dev/null 548 --dest=org.freedesktop.ScreenSaver \
544 result=$? 549 --type=method_call \
545 ;; 550 --print-reply \
546 551 --reply-timeout=2000 \
547 resume) 552 /ScreenSaver \
548 qdbus org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.ScreenSav er.SetActive true > /dev/null 553 org.freedesktop.ScreenSaver.Inhibit \
549 result=$? 554 string:$window_id \
550 ;; 555 string:xdg-screensaver \
551 556 | grep uint32 | cut -d ' ' -f 5 >| "$screensaver_file.cookie" \
552 activate) 557 2> /dev/null
553 qdbus org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.ScreenSav er.SetActive true > /dev/null 558 result=$?
554 result=$? 559 ;;
555 ;; 560
556 561 resume)
557 lock) 562 if [ -f "$screensaver_file.cookie" ] ; then
558 qdbus org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.ScreenSav er.Lock > /dev/null 563 value=`cat "$screensaver_file.cookie"`
559 ;; 564 dbus-send --session \
560 565 --dest=org.freedesktop.ScreenSaver \
561 reset) 566 --type=method_call \
562 #FIXME (cookies?) 567 /ScreenSaver \
563 qdbus org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.ScreenSav er.UnInhibit $window_id > /dev/null 568 org.freedesktop.ScreenSaver.UnInhibit \
564 result=$? 569 uint32:$value \
565 ;; 570 2> /dev/null
566 571 rm -f "$screensaver_file.cookie"
567 status) 572 fi
568 status=`qdbus org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.S creenSaver.GetActive` 573 result=$?
574 ;;
575
576 activate)
577 dbus-send --session \
578 --dest=org.freedesktop.ScreenSaver \
579 --type=method_call \
580 /ScreenSaver \
581 org.freedesktop.ScreenSaver.SetActive \
582 boolean:true \
583 2> /dev/null
584 result=$?
585 ;;
586
587 lock)
588 dbus-send --session \
589 --dest=org.freedesktop.ScreenSaver \
590 --type=method_call \
591 /ScreenSaver \
592 org.freedesktop.ScreenSaver.Lock \
593 2> /dev/null
594 ;;
595
596 reset)
597 if [ -f "$screensaver_file.cookie" ] ; then
598 value=`cat "$screensaver_file.cookie"`
599 dbus-send --session \
600 --dest=org.freedesktop.ScreenSaver \
601 --type=method_call \
602 /ScreenSaver \
603 org.freedesktop.ScreenSaver.UnInhibit \
604 uint32:$value \
605 2> /dev/null
606 rm -f "$screensaver_file.cookie"
607 fi
608 result=$?
609 ;;
610
611 status)
612 status=`dbus-send --session \
613 --dest=org.freedesktop.ScreenSaver \
614 --type=method_call \
615 --print-reply \
616 --reply-timeout=2000 \
617 /ScreenSaver \
618 org.freedesktop.ScreenSaver.GetActive \
619 | grep boolean | cut -d ' ' -f 5`
569 result=$? 620 result=$?
570 if [ x"$status" = "xtrue" ]; then 621 if [ x"$status" = "xtrue" ]; then
571 echo "enabled" 622 echo "enabled"
572 elif [ x"$status" = "xfalse" ]; then 623 elif [ x"$status" = "xfalse" ]; then
573 echo "disabled" 624 echo "disabled"
574 else 625 else
575 echo "ERROR: dbus org.freedesktop.ScreenSaver.GetActive returned '$s tatus'" >&2 626 echo "ERROR: dbus org.freedesktop.ScreenSaver.GetActive returned '$s tatus'" >&2
576 return 1 627 return 1
577 fi 628 fi
578 ;; 629 ;;
579 630
580 *) 631 *)
581 echo "ERROR: Unknown command '$1'" >&2 632 echo "ERROR: Unknown command '$1'" >&2
582 return 1 633 return 1
583 ;; 634 ;;
584 esac 635 esac
585 } 636 }
586 637
587 screensaver_kde() 638 screensaver_kde()
588 { 639 {
589 case "$1" in 640 case "$1" in
590 suspend) 641 suspend)
591 dcop kdesktop KScreensaverIface enable false > /dev/null 642 dcop kdesktop KScreensaverIface enable false > /dev/null
592 result=$? 643 result=$?
593 ;; 644 ;;
594 645
595 resume) 646 resume)
596 dcop kdesktop KScreensaverIface configure > /dev/null 647 dcop kdesktop KScreensaverIface configure > /dev/null
597 result=$? 648 result=$?
598 ;; 649 ;;
599 650
600 activate) 651 activate)
601 dcop kdesktop KScreensaverIface save > /dev/null 652 dcop kdesktop KScreensaverIface save > /dev/null
602 result=$? 653 result=$?
603 ;; 654 ;;
604 655
605 lock) 656 lock)
606 dcop kdesktop KScreensaverIface lock > /dev/null 657 dcop kdesktop KScreensaverIface lock > /dev/null
607 result=$? 658 result=$?
608 ;; 659 ;;
609 660
610 reset) 661 reset)
611 # Turns the screensaver off right now 662 # Turns the screensaver off right now
612 dcop kdesktop KScreensaverIface quit > /dev/null 663 dcop kdesktop KScreensaverIface quit > /dev/null
613 result=$? 664 result=$?
614 ;; 665 ;;
615 666
616 status) 667 status)
617 status=`dcop kdesktop KScreensaverIface isEnabled` 668 status=`dcop kdesktop KScreensaverIface isEnabled`
618 result=$? 669 result=$?
619 if [ x"$status" = "xtrue" ]; then 670 if [ x"$status" = "xtrue" ]; then
(...skipping 26 matching lines...) Expand all
646 if ps -p "$pid" 2> /dev/null | grep xprop > /dev/null; then 697 if ps -p "$pid" 2> /dev/null | grep xprop > /dev/null; then
647 echo "$wid:$pid" 698 echo "$wid:$pid"
648 fi 699 fi
649 done 700 done
650 IFS="$IFS_save" 701 IFS="$IFS_save"
651 ) > $tmpfile 702 ) > $tmpfile
652 if [ -s "$tmpfile" ] ; then 703 if [ -s "$tmpfile" ] ; then
653 # Suspend pending, don't do a thing 704 # Suspend pending, don't do a thing
654 $MV "$tmpfile" "$screensaver_file" 705 $MV "$tmpfile" "$screensaver_file"
655 unlockfile 706 unlockfile
656 return 707 return
657 fi 708 fi
658 $MV "$tmpfile" "$screensaver_file" 709 $MV "$tmpfile" "$screensaver_file"
659 unlockfile 710 unlockfile
660 (while [ -f "$screensaver_file" ]; do $*; sleep 50; done) > /dev/null 2> /dev/ null & 711 (while [ -f "$screensaver_file" ]; do $*; sleep 50; done) > /dev/null 2> /dev/ null &
661 } 712 }
662 713
663 screensaver_gnome() 714 screensaver_gnome_screensaver()
664 { 715 {
665 # TODO 716 # TODO
666 # There seems to be a DBUS interface for gnome-screensaver 717 # There seems to be a DBUS interface for gnome-screensaver
667 # See http://lists.mplayerhq.hu/pipermail/mplayer-dev-eng/2006-April/042579.html and 718 # See http://lists.mplayerhq.hu/pipermail/mplayer-dev-eng/2006-April/042579.html and
668 # http://cvs.gnome.org/viewcvs/gnome-screensaver/src/gs-listener-dbus.c?rev=1.36 &view=log 719 # http://cvs.gnome.org/viewcvs/gnome-screensaver/src/gs-listener-dbus.c?rev=1.36 &view=log
669 # A problem seems to be that Inhibit is tied to the lifetime of the DBUS appname and 720 # A problem seems to be that Inhibit is tied to the lifetime of the DBUS appname and
670 # this can not be used from a script 721 # this can not be used from a script
671 case "$1" in 722 case "$1" in
672 suspend) 723 suspend)
673 screensaver_suspend_loop gnome-screensaver-command --poke 724 screensaver_suspend_loop gnome-screensaver-command --poke
674 result=0 725 result=0
675 ;; 726 ;;
676 727
677 resume) 728 resume)
678 # Automatic resume when $screensaver_file disappears 729 # Automatic resume when $screensaver_file disappears
679 result=0 730 result=0
680 ;; 731 ;;
681 732
682 activate) 733 activate)
683 gnome-screensaver-command --activate > /dev/null 2> /dev/null 734 gnome-screensaver-command --activate > /dev/null 2> /dev/null
684 result=$? 735 result=$?
685 ;; 736 ;;
686 737
687 lock) 738 lock)
688 gnome-screensaver-command --lock > /dev/null 2> /dev/null 739 gnome-screensaver-command --lock > /dev/null 2> /dev/null
689 result=$? 740 result=$?
690 ;; 741 ;;
691 742
692 reset) 743 reset)
693 # Turns the screensaver off right now 744 # Turns the screensaver off right now
694 gnome-screensaver-command --deactivate > /dev/null 2> /dev/null 745 gnome-screensaver-command --deactivate > /dev/null 2> /dev/null
695 result=$? 746 result=$?
696 ;; 747 ;;
697 748
698 status) 749 status)
699 result=0 750 result=0
700 if [ -f "$screensaver_file" ] ; then 751 if [ -f "$screensaver_file" ] ; then
701 echo "disabled" 752 echo "disabled"
702 elif gnome-screensaver-command --query > /dev/null 2> /dev/null; then 753 elif gnome-screensaver-command --query > /dev/null 2> /dev/null; then
703 echo "enabled" 754 echo "enabled"
704 else 755 else
705 # Something is wrong 756 # Something is wrong
706 echo "disabled" 757 echo "disabled"
707 fi 758 fi
708 ;; 759 ;;
709 760
710 *) 761 *)
711 echo "ERROR: Unknown command '$1" >&2 762 echo "ERROR: Unknown command '$1" >&2
712 return 1 763 return 1
713 ;; 764 ;;
714 esac 765 esac
715 } 766 }
716 767
717 screensaver_xscreensaver() 768 screensaver_xscreensaver()
718 { 769 {
719 case "$1" in 770 case "$1" in
720 suspend) 771 suspend)
721 screensaver_suspend_loop xscreensaver-command -deactivate 772 screensaver_suspend_loop xscreensaver-command -deactivate
722 result=0 773 result=0
723 ;; 774 ;;
724 775
725 resume) 776 resume)
726 # Automatic resume when $screensaver_file disappears 777 # Automatic resume when $screensaver_file disappears
727 result=0 778 result=0
728 ;; 779 ;;
729 780
730 activate) 781 activate)
731 xscreensaver-command -activate > /dev/null 2> /dev/null 782 xscreensaver-command -activate > /dev/null 2> /dev/null
732 result=$? 783 result=$?
733 ;; 784 ;;
734 785
735 lock) 786 lock)
736 xscreensaver-command -lock > /dev/null 2> /dev/null 787 xscreensaver-command -lock > /dev/null 2> /dev/null
737 result=$? 788 result=$?
738 ;; 789 ;;
739 790
740 reset) 791 reset)
741 # Turns the screensaver off right now 792 # Turns the screensaver off right now
742 xscreensaver-command -deactivate > /dev/null 2> /dev/null 793 xscreensaver-command -deactivate > /dev/null 2> /dev/null
743 result=$? 794 result=$?
744 ;; 795 ;;
745 796
746 status) 797 status)
747 result=0 798 result=0
748 if [ -f "$screensaver_file" ] ; then 799 if [ -f "$screensaver_file" ] ; then
749 echo "disabled" 800 echo "disabled"
(...skipping 10 matching lines...) Expand all
760 } 811 }
761 812
762 [ x"$1" != x"" ] || exit_failure_syntax 813 [ x"$1" != x"" ] || exit_failure_syntax
763 814
764 action= 815 action=
765 window_id= 816 window_id=
766 817
767 case $1 in 818 case $1 in
768 suspend) 819 suspend)
769 action="$1" 820 action="$1"
770 821
771 shift 822 shift
772 823
773 if [ -z "$1" ] ; then 824 if [ -z "$1" ] ; then
774 exit_failure_syntax "WindowID argument missing" 825 exit_failure_syntax "WindowID argument missing"
775 fi 826 fi
776 827
777 window_id="$1" 828 window_id="$1"
778 check_window_id 829 check_window_id
779 ;; 830 ;;
780 831
781 resume) 832 resume)
782 action="$1" 833 action="$1"
783 834
784 shift 835 shift
785 836
786 if [ -z "$1" ] ; then 837 if [ -z "$1" ] ; then
787 exit_failure_syntax "WindowID argument missing" 838 exit_failure_syntax "WindowID argument missing"
788 fi 839 fi
789 840
790 window_id="$1" 841 window_id="$1"
791 check_window_id 842 check_window_id
792 ;; 843 ;;
793 844
794 activate) 845 activate)
795 action="$1" 846 action="$1"
796 ;; 847 ;;
797 848
798 lock) 849 lock)
799 action="$1" 850 action="$1"
800 ;; 851 ;;
801 852
802 reset) 853 reset)
803 action="$1" 854 action="$1"
804 ;; 855 ;;
805 856
806 status) 857 status)
807 action="$1" 858 action="$1"
808 ;; 859 ;;
809 860
810 *) 861 *)
811 exit_failure_syntax "unknown command '$1'" 862 exit_failure_syntax "unknown command '$1'"
812 ;; 863 ;;
813 esac 864 esac
814 865
815 detectDE 866 detectDE
816 # Consider "xscreensaver" a separate DE 867 # Consider "xscreensaver" a separate DE
817 xscreensaver-command -version 2> /dev/null | grep XScreenSaver > /dev/null && DE ="xscreensaver" 868 xscreensaver-command -version 2> /dev/null | grep XScreenSaver > /dev/null && DE ="xscreensaver"
869 # Consider "gnome-screensaver" a separate DE
870 gnome-screensaver-command -q > /dev/null 2>&1 && DE="gnome_screensaver"
818 871
819 if [ "$action" = "resume" ] ; then 872 if [ "$action" = "resume" ] ; then
820 do_resume 873 do_resume
821 exit_success 874 exit_success
822 fi 875 fi
823 876
824 perform_action "$action" 877 perform_action "$action"
825 878
826 if [ "$action" = "suspend" ] ; then 879 if [ "$action" = "suspend" ] ; then
827 # Start tracking $window_id and resume the screensaver once it disappears 880 # Start tracking $window_id and resume the screensaver once it disappears
828 ( track_window ) 2> /dev/null > /dev/null & 881 ( track_window ) 2> /dev/null > /dev/null &
829 fi 882 fi
830 883
831 if [ $result -eq 0 ]; then 884 if [ $result -eq 0 ]; then
832 exit_success 885 exit_success
833 else 886 else
834 exit_failure_operation_failed 887 exit_failure_operation_failed
835 fi 888 fi
OLDNEW
« no previous file with comments | « third_party/xdg-utils/scripts/xdg-open.in ('k') | third_party/xdg-utils/scripts/xdg-screensaver.in » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698