Added alignmargins
[grml-scripts.git] / usr_sbin / grml-quickconfig
1 #!/usr/bin/perl 
2 # Filename:      grml-quickconfig
3 # Purpose:       get fast access to some basic grml-scripts
4 # Authors:       Michael Schierl <schierlm-public@gmx.de>
5 # Bug-Reports:   see http://grml.org/bugs/
6 # License:       This file is licensed under the GPL v2.
7 # Latest change: Sam Mär 17 12:42:50 CET 2007 [mika]
8 ################################################################################
9
10 # menu with quick config options
11
12 # enable alternate charset support (needed for screen)
13 print "\e(B\e)0";
14
15 # variables for nice display
16 $W = "\e[0;32;1m";     # White
17 $N = "\x0f\e[0m";      # Normal
18 $M = "\e[0;35;1m";     # Magenta (for commands)
19 $B = "\e[0;34;1m\x0e"; # Blue, line drawing characters
20 $HLINE=$B."x".$N;      # A single horizontal line drawing character
21
22 # menu options
23 %menu_commands = (
24         d => 'grml-lang de',
25         a => 'grml-lang at',
26         c => 'grml-lang ch',
27         n => 'grml-network',
28         e => 'netcardconfig',
29         i => 'grml-info',
30         h => 'grml2hd',
31         m => 'pdmenu -c',
32         q => 'exit',
33 # x and Return are handled manually
34 );
35
36 # window managers
37 %windowmanagers = (
38         d => 'dwm',
39         e => 'evilwm',
40         f => 'fluxbox',
41         i => 'ion3',
42         j => 'jwm',
43         k => 'pekwm',
44         p => 'pwm3',
45         t => 'twm',
46         v => 'fvwm',
47         2 => 'fvwm2', 
48         c => 'fvwm-crystal',
49         r => 'ratpoison',
50         9 => 'w9wm',
51         w => 'windowlab',
52         m => 'wmi',
53         i => 'wmii',
54         n => 'wm-ng',
55 );
56
57 # main loop
58 while(1) {
59
60 # disable input buffering, see
61 # man perlfunc | less '+/   getc'
62 # for details
63 system "stty", '-icanon', 'eol', "\001";
64
65 # main loop
66 $command="";
67 while($command eq "") {
68 print <<"EOF";
69
70    ${B}lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk${N}
71    $HLINE Welcome to ${M}grml-quickconfig${M}                            $HLINE 
72    $HLINE Press a highlighted key to perform an action, or press $HLINE
73    $HLINE ${W}Return${N} or ${W}q${N} to go back to the shell.                   $HLINE
74    ${B}tqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqu${N}
75    $HLINE Set keyboard layout (${M}grml-lang${N}): ${W}d${N}e ${W}a${N}t ${W}c${N}h              $HLINE
76    $HLINE Configure ${W}n${N}etwork (${M}grml-network${N})                       $HLINE
77    $HLINE -> Configure ${W}e${N}thernet card directly (${M}netcardconfig${N})    $HLINE
78    ${B}tqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqu${N}
79    $HLINE Show ${W}i${N}nformation about grml (${M}grml-info${N})                $HLINE
80    $HLINE Start ${W}x${N} (${M}grml-x${N})                                       $HLINE
81    $HLINE Show an application ${W}m${N}enu (${M}pdmenu${N})                      $HLINE
82    $HLINE Install grml to ${W}h${N}ard disk (${M}grml2hd${N})                    $HLINE
83    ${B}mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj${N}
84
85 EOF
86 print "Press a key: ".$M;
87 $x = getc;
88 print $N.$/.$/;
89 if (defined($menu_commands{$x})) {
90         $command = $menu_commands{$x};
91 } elsif ($x eq "\n") {
92         $command= 'exit';
93 } elsif ($x eq "x") {
94         print <<"EOF";
95
96    ${B}lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk${N}
97    $HLINE Select a window manager (unsorted list):               $HLINE 
98    $HLINE Press any other key to return to the main menu.        $HLINE
99    ${B}tqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqu${N}
100    $HLINE ${W}f${N}luxbox ${W}d${N}wm ${W}e${N}vilwm ion${W}3${N} ${W}j${N}wm pe${W}k${N}wm ${W}p${N}wm3 ${W}t${N}wm ${W}r${N}atpoison   $HLINE
101    $HLINE f${W}v${N}wm fvwm${W}2${N} fvwm-${W}c${N}rystal w${W}9${N}wm ${W}w${N}indowlab w${W}m${N}i wm${W}i${N}i wm-${W}n${N}g  $HLINE
102    ${B}mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj${N}
103
104 EOF
105         print "Press a key: ".$M;
106         $x = getc;
107         print $N.$/.$/;
108         if (defined($windowmanagers{$x})) {
109                 $command = "su - grml -c 'grml-x ".$windowmanagers{$x}."'";
110         } else {
111                 print "Unknown key.\n";
112         }
113 } else {
114         print "Unknown key.\n";
115 }
116 }
117
118 # reenable input buffering
119 system "stty", 'icanon', 'eol', '^@';
120
121 if ($command eq "exit") {
122         last;
123 }
124 print $W . "Running command: " . $M . $command . $N . $/;
125 system($command);
126 print $/;
127 }
128 print "Happy hacking!\n";
129
130 ## END OF FILE #################################################################