X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=quickconfig%2F030-wm.sh;h=b9f460c4700e8e399984818fac203db3005f8acd;hb=5f0ac8e2b49fc413326a6f5c7f2843f63ffcc509;hp=61654112979446b7293a265b61db2b41db0d0073;hpb=81cdd15d169fc3f8f5726794db57053648ef37e1;p=grml-quickconfig.git diff --git a/quickconfig/030-wm.sh b/quickconfig/030-wm.sh index 6165411..b9f460c 100644 --- a/quickconfig/030-wm.sh +++ b/quickconfig/030-wm.sh @@ -1,10 +1,12 @@ # window manager module for grml-quickconfig -LINE='print_line "Start ${HIGHLIGHT}x${NORMAL} (${HIGHLIGHT_NAME}grml-x${NORMAL})"' +LINE='print_line "Start ^x (/grml-x/)"' KEY=(x) FUNCTION='wm_menu' display_entry() { - return 0 + . /etc/grml/script-functions + check4progs grml-x >/dev/null 2>&1 + return $? } # variable definition {{{ @@ -39,10 +41,11 @@ wms=( print_available_wm() { . /etc/grml/script-functions LEN=0 + AVAILABLE_WM_COUNT=0 local line for key value in ${(kv)wms} ; do - if check4progs $value >/dev/null ; then + if check4progs $value >/dev/null 2>&1 ; then available[$key]=$value # test if word could be added to current line if [ $((${(c)#value} + $LEN)) -ge $(($MAXLEN-9)) ] ; then @@ -52,6 +55,7 @@ print_available_wm() { fi line+="$(highlight_char $value $key) " LEN=$((${(c)#value} + $LEN)) + AVAILABLE_WM_COUNT=$(($AVAILABLE_WM_COUNT + 1)) fi done output+="$line" @@ -69,6 +73,12 @@ wm_heading() { # print windowm manager loop {{{ wm_menu() { + if [ $AVAILABLE_WM_COUNT == 1 ]; then + chgrp tty "$TTY" + chmod g+rw "$TTY" + run sudo -u grml grml-x + return + fi echo wm_heading for line in ${output} ; do @@ -80,7 +90,9 @@ wm_menu() { get_key INPUT case $INPUT in [${(k)available}]) - run su grml -c "grml-x ${available[$INPUT]}" + chgrp tty "$TTY" + chmod g+rw "$TTY" + run sudo -u grml -c "grml-x ${available[$INPUT]}" ;; esac }