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

Revision 1383, 9.7 KB (checked in by pascal, 4 years ago)

Kommentare ergänzt

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