root/linux/bin/installiere_neo/installiere_neo.1 @ 1390

Revision 1390, 10.0 KB (checked in by pascal, 4 years ago)

Skripte ›wiemitneo‹ und ›beschreibe‹ aufgenommen
Sobald diese Skripte zu einem besseren zusammengeführt worden sind (wiemitneo), kann ›beschreibe‹ entfernt werden

Line 
1#!/bin/bash
2# Copyright 2008 Pascal Hauck <pascal.hauck@web.de>
3
4# NEO-Tastaturbelegung
5
6# ======= Installation =======
7# Um NEO auf Ihrem System zu (dauerhaft oder testweise) zu installieren, genügt es, dieses Skript auszuführen
8# z.B. in der Konsole die folgenden beiden Zeilen eingeben:
9# chmod u+x installiere_neo
10# ./installiere_neo
11# Für die restliche Installation weden mehrere Optionen angeboten.
12# Nach der Installation und Eingabe von ›. starte_neo‹ oder nach dem nächsten Login ist:
13# • ein Wechsel von NEO zu QWERTZ ist jederzeit mit ›uiae‹ leicht möglich und
14# • ein Wechsel von QWERTZ zu NEO ist jederzeit mit ›asdf‹ ebenso leicht möglich
15
16# Wenn NEO nicht automatisch nach dem Login gestartet werden soll, genügt es, vor die Zeile
17# asdf                  # mit einem # am Zeilenanfang bleibt QWERTZ das Standardlayout, sonst ist es NEO
18# in der Datei $HOME/.profile ein # zu setzen
19# Alternativ kann das Skript ›installiere_neo‹ ein weiteres mal aufgerufen werden
20# ==============================
21
22
23# ======= Deinstallation =======
24# Um NEO wieder zu deinstallieren, kann das Skript ›installiere_neo‹ ein weiteres Mal aufgerufen werden
25# ==============================
26
27
28# ========= Inhalte ============
29# Das Ausführen dieses Skripts erzeugt auf einfache Weise eine vollständige und saubere Installation für einen Benutzer eines Linuxsystems
30# Die beinhalteten Komponenten sind:
31# • Xmodmap-Tastaturbelegung
32# • Textkonsolenbelegung
33# • Compose-Erweiterung von NEO
34# • die Skripte ›asdf‹, ›uiae‹, um die Belegung zwischen NEO und QWERTZ zu wechseln
35# • die Skripte ›num‹ und ›neo‹, um ein Bild der Tastatur zu erzeugen
36# • die Referenz
37# • die Skripte ›wiemitneo‹ und ›beschreibe‹, um nach Erzeugungsmöglichkeit von Zeichen zu suchen
38# • die Konfigurationsdatei neorc.conf
39# ==============================
40
41# ======= Bemerkungen ==========
42# Es wird immer das Standardverzeichnis $inst_dir verwendet
43# Es gibt keine graphische Installation
44# Dennoch kann dieses Skrip helfen, NEO auf eine einfache Weise zu installieren.
45# Dieses Skript wird mit der Zeit verbessert werden.
46# ==============================
47
48
49# colours in the Bash
50normal="\033[0m"
51red="\033[31m"
52green="\033[32m"
53
54inst_dir=$HOME/neo
55
56# remove the entry in $HOME/.profile
57rmfromprofile()
58{
59        grep -v "^\# NEO:$" $HOME/.profile | grep -v "asdf   \# mit" | grep -v "asdf" > $HOME/profile.neo.tmp
60        rm /$HOME/.profile
61        mv $HOME/profile.neo.tmp $HOME/.profile
62}
63
64# create directories, files and entries
65create()
66{
67        if [ -f $2 ]                                    # if already exists
68        then
69                echo -e "Die Datei ${red}$2${normal} gibt es bereits – soll die bestehende Datei überschrieben werden? \c"; read -p "[J,N] " -e overwrite
70                if [ "$overwrite" = "J" ]               # overwrite?
71                then
72                        echo "Datei $2 wird überschrieben!"
73                        rm -f $2                        # remove if user wants to overwrite
74                else
75                        echo -e "Datei ${red}$2${normal} gibt es schon → Installation abgebrochen"
76                        exit
77                fi
78        fi
79        echo "Erstelle Datei $2"                        # create
80        $1 > $2                                         # call subroutine $1 and write to file $2
81}
82
83## show options if NEO is not installed so far
84install_options()
85{
86        echo "Bislang gibt es kein vollständig konfiguriertes NEO auf Ihrem System"
87        echo
88        echo "Sie haben folgende Möglichkeiten:"
89        echo
90        echo " [1]  NEO nur testen"
91        echo "       Sie haben die Möglichkeit, NEO zu Testen, ihre Standardbelegung (in der Regel QWERTZ) bleibt erhalten"
92        echo
93        echo
94        echo " [2] NEO als Standardbelegung"
95        echo "       Mit dieser Option wird NEO die neue Standardbelegung für diesen Benutzer und nach (nicht vor!) dem"
96        echo "       Login automatisch aktiviert"
97        echo
98        echo
99        echo -e " Wenn ${green}installiere_neo${normal} ein weiteres Mal aufgerufen wird, haben weitere Optionen – z.B. die Deinstallation von NEO"
100        echo
101
102        installoption=""
103        while [ ! $installoption ]                      # choose between QWERTZ or NEO as standard
104        do                                              # switch with ›asdf‹ and ›uiae‹
105                echo
106                read -p "Wählen Sie eine Option [1,2]: " -e installoption
107                case $installoption in
108                2)
109                        echo
110                        echo "Nach dem Login wird NEO die Standardbelegung sein."
111                        echo -e "Um dies zu ändern, kann ${green}installiere_neo${normal} ein weiteres Mal ausgeführt werden."
112                        echo -e ${red}
113                        read -n1 -p "Drücke eine Taste um fortzufahren oder STRG+C zum Abbrechen"
114                        echo -e ${normal}
115                        ;;
116                1)
117                        echo
118                        echo "Das Standardlayout wird nicht verändert."
119                        echo -e "Zu NEO kann man jederzeit mit der Abrollbewegung ${green}asdf${normal} wechseln."
120                        echo -e ${red}
121                        read -n1 -p "Drücke eine Taste um fortzufahren oder STRG+C zum Abbrechen"
122                        echo -e ${normal}
123                        ;;
124                *)
125                        echo
126                        echo "Bitte wählen Sie die Optionen 1, um NEO zu testen oder 2, um NEO zur Standardbelegung zu machen"
127                        installoption=""
128                        ;;
129                esac
130        done
131
132
133        echo
134        echo "Installation von NEO mit xmodmap wird gestartet…"
135        echo
136        echo
137
138# *** main installation process ***
139# creating a directory $inst_dir
140        if [ -d $inst_dir ]
141        then
142                echo -e "Das Verzeichnis ${red}$inst_dir${normal} gibt es bereits – wird verwendet…"
143        else
144                echo -e "Erstelle $inst_dir"
145                mkdir $inst_dir
146        fi
147
148# creating NEO files in $inst_dir
149        create neo_xmodmap $inst_dir/neo_de.xmodmap
150        create neo_console $inst_dir/neo.map
151        create neo_asdf $inst_dir/asdf
152        chmod u+x $inst_dir/asdf
153        create neo_uiae $inst_dir/uiae
154        chmod u+x $inst_dir/uiae
155        create neo_referenz $inst_dir/neo20.txt
156        create neo_neo $inst_dir/neo
157        chmod u+x $inst_dir/neo
158        create neo_num $inst_dir/num
159        chmod u+x $inst_dir/num
160        create neo_wiemitneo $inst_dir/wiemitneo
161        chmod u+x $inst_dir/wiemitneo
162        create neo_beschreibe $inst_dir/beschreibe
163        chmod u+x $inst_dir/beschreibe
164
165        echo "Ergängze die Compose-Erweiterung von NEO…"
166        create neo_compose $inst_dir/Compose.neo
167        if [ -f $HOME/.XCompose ]
168        then
169                echo -e "Die Datei ${red}$HOME/.XCompose${normal} gibt es bereits – soll die bestehende Datei überschrieben werden? \c"; read -p "[J,N] " -e overwrite
170                if [ "$overwrite" = "J" ]               # overwrite?
171                then
172                        echo "Datei $HOME/.XCompose wird überschrieben!"
173                        cat /usr/share/X11/locale/en_US.UTF-8/Compose $inst_dir/Compose.neo > $HOME/.XCompose
174                else
175                        echo -e "Datei ${red}$HOME/.XCompose${normal} bleibt erhalten, jedoch kann die Compos-Erweiterung von NEO nicht genutzt werden."
176                fi
177        else
178                cat /usr/share/X11/locale/en_US.UTF-8/Compose $inst_dir/Compose.neo > $HOME/.XCompose
179        fi
180
181        create neorc $HOME/.neorc
182
183# entry in $HOME/.profile with NEO or QWERTZ as standard keyboard layout after login
184        case $installoption in
185        2)
186                echo
187                echo "Nach dem Login wird NEO die Standardbelegung sein."
188                echo -e "Um dies zu ändern, kann ${green}installiere_neo${normal} ein weiteres Mal ausgeführt werden."
189                rmfromprofile
190                profile_neo >> $HOME/.profile
191                ;;
192        1)
193                echo
194                echo "Das Standardlayout wird nich verändert."
195                rmfromprofile
196                profile_qwertz >> $HOME/.profile
197                ;;
198        esac
199}
200
201# remove files for uninstall option
202remove()
203{
204        echo "Entferne $1"
205        rm $1 || echo -e "${red}Konnte die Datei $1 nicht entfernen!${normal}"
206}
207
208# remove all directories, files and entries made by ›installiere_neo‹
209deinstall()
210{
211        echo
212        echo
213        rmfromprofile
214        remove $HOME/.neorc
215        remove $inst_dir/starte_neo
216        remove $inst_dir/Compose.neo
217        remove $inst_dir/neo20.txt
218        remove $inst_dir/num
219        remove $inst_dir/neo
220        remove $inst_dir/uiae
221        remove $inst_dir/asdf
222        remove $inst_dir/neo.map
223        remove $inst_dir/neo_de.xmodmap
224        echo "Entferne $inst_dir/"
225        rmdir $inst_dir/ || echo -e "${red}Konnte das Verzeichenis $inst_dir/ nicht entfernen!${normal}"
226}
227
228# show options if NEO is already installed
229deinstall_options()
230{
231        echo "Es gibt auf Ihrem System bereits eine Konfiguration für NEO."
232        echo
233        echo "Sollte NEO nur für diesen Benutzer installiert sein, haben folgende Möglichkeiten:"
234        echo
235        echo " [1]  NEO zukünftig nicht mehr als Standardbelegung"
236        echo -e "       NEO wird nicht länger direkt nach dem Login zur Verfügung stehen, wohl aber nach Eingabe von ${green}adsf${normal}."
237        echo
238        echo
239        echo " [2] NEO vollständig vom System entfernen"
240        echo "       Dieso Option entfernt alle zuvor angelegten Verzeichnisse, Datein und Einträge zur NEO-Belegung"
241        echo
242        echo
243        echo -e " Diese Optionen funktionieren nur dann zuverlässig, wenn NEO auch mit ${green}installiere_neo${normal} installiert wurde"
244        echo
245
246        deinstalloption=""
247        while [ ! $deinstalloption ]                                    # choose between deleting NEO as standard layout or delete NEO at all
248        do                                                              # if deleted as standard layout only, ›asdf‹ is still working
249                echo
250                read -p "Wählen Sie eine Option [1,2]: " -e deinstalloption
251                case $deinstalloption in
252                2)
253                        echo
254                        echo -e "Alle zuvor von ${green}installiere_neo${normal} vorgenommen Änderungen am System werden gelöscht!"
255                        echo -e ${red}
256                        read -n1 -p "Drücke eine Taste um fortzufahren oder STRG+C zum Abbrechen"
257                        echo -e ${normal}
258                        cd $inst_dir
259                        ./uiae
260                        deinstall                                       # full deinstallation
261                        echo
262                        echo -e "Alle von ${green}installiere_neo${normal} gemachten Änderungen an Ihrem System wurden entfernt."
263                        ;;
264                1)
265                        echo
266                        echo "NEO wird als Standardbelegung entfernt"
267                        echo -e "Zu NEO kann man weiterhin jederzeit mit der Abrollbewegung ${green}asdf${normal} wechseln."
268                        echo -e ${red}
269                        read -n1 -p "Drücke eine Taste um fortzufahren oder STRG+C zum Abbrechen"
270                        echo -e ${normal}
271                        echo
272                        rmfromprofile                                   # alter the entry in $HOME/.profile; first: remove old entry
273                        profile_qwertz >> $HOME/.profile                # write the new entry
274                        echo
275                        echo "Nach dem nächsten Login wird NEO nicht mehr die Standardbelegung sein. "
276                        ;;
277                *)
278                        echo
279                        echo "Bitte wählen Sie die Optionen 1, um NEO nicht länger als Standardbelegung zu nutzen"
280                        echo " oder 2, um NEO vollständig zu entfernen"
281                        deinstalloption=""
282                        ;;
283                esac
284        done
285}
Note: See TracBrowser for help on using the browser.