X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=herbstluftwm%2Fautostart;h=963f958b02a1caca16736d0b0af0bc83dbe9d746;hb=e4417dd84069be88e22e300d15dfda22875a4cff;hp=18377756bdfeea534ab995ddba4500d510225a99;hpb=74b0084e05bcbb2d3518f756eb1a5c115c7027b3;p=config%2Fdotfiles.git diff --git a/herbstluftwm/autostart b/herbstluftwm/autostart index 1837775..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. @@ -123,6 +135,8 @@ hc mouseunbind --all # Necessary for Java so it recognizes herbstluftwm as tiling window manager. hc set wmname LG3D +# Auto-detect new monitors. +hc set auto_detect_monitors 1 # WINDOW and FRAME SETTINGS @@ -170,11 +184,17 @@ hc rule focus=off \ ewmhrequests=off \ index=1 +# Focus important windows when they are opened. +hc rule instance=xmessage focus=on + +# Move Iceweasel to tag 2. +hc rule instance=Navigator class=Iceweasel tag=2 + # After everything is done, allow redrawing of the windows. 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