Update changelog for release.
[grml-quickconfig.git] / quickconfig / 030-wm.sh
1 # window manager module for grml-quickconfig
2 LINE='print_line "Start ${HIGHLIGHT}x${NORMAL} (${HIGHLIGHT_NAME}grml-x${NORMAL})"'
3 KEY=(x)
4 FUNCTION='wm_menu'
5
6 display_entry() {
7     return 0
8 }
9
10 # variable definition {{{
11 typeset -A wms
12 typeset -A available
13 set -a output
14 # }}}
15
16 # window manager definition {{{
17 wms[a]=awesome
18 wms[d]=dwm
19 wms[e]=evilwm
20 wms[f]=fluxbox
21 wms[v]=fvwm
22 wms[2]=fvwm2
23 wms[c]=fvwm-crystal
24 wms[j]=jwm
25 wms[o]=openbox
26 wms[k]=pekwm
27 wms[r]=ratpoison
28 wms[t]=twm
29 wms[9]=w9wm
30 wms[w]=windowlab
31 wms[i]=wmii
32 wms[n]=wm-ng
33 # }}}
34
35 # deteremine installed window managers {{{
36 print_available_wm() {
37   . /etc/grml/script-functions
38   line=""
39   LEN=0
40
41   for key value in ${(kv)wms} ; do
42     if check4progs $value >/dev/null ; then
43       available[$key]=$value
44       # test if word could be added to current line
45       if [ $[${(c)#key} + $LEN] -lt $MAXLEN ] ; then
46         LEN+=${(c)#wm}
47         line+="$(highlight_char $value $key) "
48       else
49         LEN=0
50         output+="$line"
51       fi
52     fi
53   done
54   output+="$line"
55 }
56 # }}}
57
58 # heading for wm menu {{{
59 wm_heading() {
60  print_starting_line
61  print_line "Select a window manager (unsorted list):"
62  print_line "Press any other key to return to the main menu."
63  print_delim
64 }
65 # }}}
66
67 # print windowm manager loop {{{
68 wm_menu() {
69   echo
70   wm_heading
71   for line in $output ; do
72     print_line $line
73   done
74   print_closing_line
75
76   echo
77   get_key INPUT
78   case $INPUT in
79     [${(k)available}])
80     run su grml -c "grml-x ${available[$INPUT]}"
81     ;;
82   esac
83 }
84 # }}}
85
86 print_available_wm
87
88 ## END OF FILE #################################################################
89 # vim:foldmethod=marker expandtab ai ft=zsh shiftwidth=3