X-Git-Url: https://git.grml.org/?a=blobdiff_plain;ds=sidebyside;f=quickconfig%2F030-wm.sh;fp=quickconfig%2F030-wm.sh;h=31bcbf471c7dea54654545f85ad4051067ceab71;hb=ca2253895f8dc823aac74aa915e6840ae25b506d;hp=0000000000000000000000000000000000000000;hpb=bd09f4098582c259cd63471e699fa84c13bff963;p=grml-quickconfig.git diff --git a/quickconfig/030-wm.sh b/quickconfig/030-wm.sh new file mode 100644 index 0000000..31bcbf4 --- /dev/null +++ b/quickconfig/030-wm.sh @@ -0,0 +1,89 @@ +# window manager module for grml-quickconfig +LINE='print_line "Start ${HILIGHT}x${NORMAL} (${HILIGHT_NAME}grml-x${NORMAL})"' +KEY=(x) +FUNCTION='wm_menu' + +display_entry() { + return 0 +} + +# variable definition {{{ +typeset -A wms +typeset -A available +set -a output +# }}} + +# window manager definition {{{ +wms[a]=awesome +wms[d]=dwm +wms[e]=evilwm +wms[f]=fluxbox +wms[v]=fvwm +wms[2]=fvwm2 +wms[c]=fvwm-crystal +wms[j]=jwm +wms[o]=openbox +wms[k]=pekwm +wms[r]=ratpoison +wms[t]=twm +wms[9]=w9wm +wms[w]=windowlab +wms[i]=wmii +wms[n]=wm-ng +# }}} + +# deteremine installed window managers {{{ +print_available_wm() { + . /etc/grml/script-functions + line="" + LEN=0 + + for key value in ${(kv)wms} ; do + if check4progs $value >/dev/null ; then + available[$key]=$value + # test if word could be added to current line + if [ $[${(c)#key} + $LEN] -lt $MAXLEN ] ; then + LEN+=${(c)#wm} + line+="$(hilight_char $value $key) " + else + LEN=0 + output+="$line" + fi + fi + done + output+="$line" +} +# }}} + +# heading for wm menu {{{ +wm_heading() { + print_starting_line + print_line "Select a window manager (unsorted list):" + print_line "Press any other key to return to the main menu." + print_delim +} +# }}} + +# print windowm manager loop {{{ +wm_menu() { + echo + wm_heading + for line in $output ; do + print_line $line + done + print_closing_line + + echo + get_key INPUT + case $INPUT in + [${(k)available}]) + run su - grml -c "grml-x ${available[$INPUT]}" + ;; + esac +} +# }}} + +print_available_wm + +## END OF FILE ################################################################# +# vim:foldmethod=marker expandtab ai ft=zsh shiftwidth=3