Commit Diff


commit - 1efd7a9d62b423b22ca03bf9bdde862885af2289
commit + 77230597c322b1e43ae05226fcc82b4ebd4647e2
blob - 08401aa2ce2a9c65daf70981f272fb51051dadcd
blob + 658e0f8f23a6d2616983f775191ddff113bd6fb7
--- dtoggle
+++ dtoggle
@@ -1,8 +1,8 @@
-#!/bin/bash
+#!/usr/bin/env bash
 
 # Quick-n-dirty script to turn external/internal displays on/off with xrandr
 #
-# 2013-14 by Matthias Schmidt <xhr giessen.ccc.de>
+# 2013-14,2020 by Matthias Schmidt <xhr giessen.ccc.de>
 #
 # License GNU GPL
 
@@ -143,7 +143,7 @@ function build_xrandr_string()
 
 function run_xrandr()
 {
-  echo "$CMD $XRANDROPTS" | sh
+  echo "$CMD $XRANDROPTS" | bash
 }
 
 function read_config()
@@ -223,6 +223,13 @@ EXTERN[1]=
 EXTERN[2]=
 EXTERN[3]=
 
+# Use GNU sed if available (gsed on BSDs)
+if [ -f /usr/local/bin/gsed ]; then
+	SED=gsed
+else
+	SED=sed
+fi
+
 # Clone screen on all displays
 CFLAG=0
 # Enable only external displays
@@ -244,7 +251,7 @@ DTCONF=$HOME/.dtoggle.conf
 # Default status
 STATE=0
 # Connected displays. Stolen from ArchLinux wiki
-CONNDIS=$(xrandr | grep " connected" | sed -e "s/\([A-Z0-9]\+\) connected.*/\1/")
+CONNDIS=$(xrandr | grep " connected" | $SED -e "s/\([A-Z0-9]\+\) connected.*/\1/")
 
 while getopts "ciehmnrlp:vxt" opt; do
   case $opt in