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