From 4f092b957548ae1d87dc6ca70cd3fe99e797cf31 Mon Sep 17 00:00:00 2001 From: Don Armstrong Date: Sun, 1 Jul 2018 12:55:48 -0700 Subject: [PATCH] update screensaver --- screensaver | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100755 screensaver diff --git a/screensaver b/screensaver new file mode 100755 index 0000000..a0c1942 --- /dev/null +++ b/screensaver @@ -0,0 +1,62 @@ +#!/bin/sh + +cmd_exists () { + if which "$1" >/dev/null 2>&1; then + return 0; + else + return 1; + fi; +} + +fork () { + ( "$@" >/dev/null 2>&1 & ) +} + +cmd_running () { + if pkill -0 -u "$(id -u)" "$1"; then + return 0; + else + return 1; + fi; +} + +should_stop () { + if [ "x$1" = "xoff" ] || [ "x$1" = "xstop" ] ; then + return 0; + else + return 1; + fi; +} + + +if cmd_exists slock && cmd_exists xautolock; then + if cmd_running "xautolock"; then + if should_stop "$1"; then + xautolock -exit; + fi; + else + if ! should_stop "$1"; then + fork xautolock -notifier true -bell 0 -locker slock; + fi; + fi; +elif cmd_exists xscreensaver && [ -e ~/.xscreensaver ]; then + if cmd_running "xscreensaver"; then + if should_stop "$1"; then + xscreensaver-command -exit; + fi; + else + if ! should_stop "$1"; then + fork XENVIRONMENT=~/.xscreensaver /usr/bin/xscreensaver; + fi; + fi; +elif cmd_exists xautolock; then + if cmd_running "xautolock"; then + if should_stop "$1"; then + xautolock -exit; + fi; + else + if ! should_stop "$1"; then + fork xautolock -notifier true -bell 0; + fi; + fi; +fi; -- 2.39.2