X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=herbstluftwm%2Fautostart;h=963f958b02a1caca16736d0b0af0bc83dbe9d746;hb=e4417dd84069be88e22e300d15dfda22875a4cff;hp=3c4fcd7c2d75afa040e09413f603055eaaf17100;hpb=7e67171f8481db2487eac3aab41fe7771bc2e1d8;p=config%2Fdotfiles.git diff --git a/herbstluftwm/autostart b/herbstluftwm/autostart index 3c4fcd7..963f958 100755 --- a/herbstluftwm/autostart +++ b/herbstluftwm/autostart @@ -18,7 +18,7 @@ # along with this file. If not, see . -set -e +set -eu hc() { @@ -30,7 +30,9 @@ installed() { # $1: timeout notify() { if installed dzen2; then - sed 's/\^/^^/g' | dzen2 -fg blue -bg yellow -y 15 -h 30 -p "$1" + read x + printf '%s\n' "$x" | sed 's/\^/^^/g' \ + | dzen2 -fg blue -bg yellow -y 15 -h 30 -p "$1" & elif installed xmessage; then # Fallback solution, display first line of stdin. read x @@ -66,7 +68,7 @@ hc keybind $mod-Shift-c close hc keybind $mod-q reload hc keybind $mod-Shift-q quit # Find an existing screen locker. -for locker in xtrlock ''; do +for locker in xscreensaver xtrlock ''; do if installed "$locker"; then break fi @@ -74,9 +76,19 @@ done if test -z "$locker"; then echo 'No screen locker found!' | notify 60 fi -# Lock the screen. The sleep is necessary to allow xtrlock to grab the -# keyboard input. -hc keybind $mod-z spawn sh -c "sleep 1 && exec $locker" +# Additional options. +locker_pre= +if test x"$locker" = xxscreensaver; then + # Start xscreensaver if it's not already running. xscreensaver-command + # ensures xscreensaver is availble for the current X session. + locker_pre='xscreensaver-command -time >/dev/null 2>&1 || xscreensaver &' + locker='xscreensaver-command -lock' +elif test x"$locker" = xxtrlock; then + # Sleep is necessary to allow xtrlock to grab the keyboard input. + locker_pre='sleep 1;' +fi +# Lock the screen. +hc keybind $mod-z spawn sh -c "$locker_pre exec $locker" # Tag key bindings. Create tags 1 to 9 with bindings to switch and move # windows to them. @@ -183,6 +195,6 @@ hc rule instance=Navigator class=Iceweasel tag=2 hc unlock -# To notify me if set -e has terminated the script (then this part won't get +# To notify me if set -eu has terminated the script (then this part won't get # executed). echo 'hlwm restarted' | notify 1