Changeset 1366

Show
Ignore:
Timestamp:
01/04/09 04:40:02 (4 years ago)
Author:
pascal
Message:

Skript stark verändert, sollte nun (hoffentlich – bitte testen!) besser auf anderen Systemen laufen

Location:
linux/bin
Files:
4 added
3 removed
1 modified

Legend:

Unmodified
Added
Removed
  • linux/bin/installiere_neo

    r1312 r1366  
    11#!/bin/bash 
    22# Copyright 2008 Pascal Hauck <pascal.hauck@web.de> 
    3 # Distributed under the terms of the GNU General Public License v3 
    43 
    54# ======= Installation ======= 
    65# Um NEO auf Ihrem System zu (dauerhaft) zu installieren, genügt es, dieses Skript auszuführen 
    76# z.B. in der Konsole die folgenden beiden Zeilen eingeben: 
    8 # chmod u+x installation 
    9 # ./installation 
    10 # Nun ist NEO auf Ihrem System dauerhaft installier 
    11 # Ein Wechsel zurück zu QWERTZ ist jederzeit mit ›uiae‹ leicht möglich 
    12  
    13 # Wenn NEO nicht automatisch nach dem Login gestartet werden soll, genügt es, vor die Zeile, die mit 
    14 # asdf   # mit einem # am Zeilenanfang 
    15 # beginnt und sich in der Datei $HOME/.profile befinden, ein # zu setzen 
     7# chmod u+x installiere_neo 
     8# ./installiere_neo 
     9# Nun ist NEO auf Ihrem System installiert 
     10# Nach Eingabe von ›. starte_neo‹ oder nach dem nächsten Login ist: 
     11# ein Wechsel von NEO zu QWERTZ ist jederzeit mit ›uiae‹ leicht möglich und 
     12# ein Wechsel von QWERTZ zu NEO ist jederzeit mit ›asdf‹ ebenso leicht möglich 
     13 
     14# Wenn NEO nicht automatisch nach dem Login gestartet werden soll, genügt es, vor die Zeile 
     15# asdf                  # mit einem # am Zeilenanfang bleibt QWERTZ das Standardlayout, sonst ist es NEO 
     16# in der Datei $HOME/.profile ein # zu setzen 
     17# Alternativ kann das Skript ›installiere_neo‹ ein weiteres mal aufgerufen werden 
    1618# ============================== 
    1719 
     
    2325 
    2426# ======= Bemerkungen ========== 
    25 # Dieses Skript ist eine rudimentäre Installation. Derzeit gibt es keine Konfigurationsmöglichkeit. 
    26 # Es wird immer das Standardverzeichnis $HOME/neo verwendet 
     27# Dieses Skript ist eine rudimentäre Installation. 
     28# Es wird immer das Standardverzeichnis $inst_dir verwendet 
    2729# Es gibt keine graphische Installation 
    2830# Dennoch kann dieses Skrip helfen, NEO auf eine einfache Weise zu installieren. 
     
    3234 
    3335# colours in the Bash 
    34 B="\033[30m" 
    35 R="\033[31m" 
    36 G="\033[32m" 
    37  
    38 datei() {  # cut files from the complete file ›installiere_neo‹ 
    39         grep -A10000 "#neo: $1 --- Beginn" installation | grep -B10000 "#neo: $1 --- Ende" | grep -v "#neo:" 
    40 } 
    41  
    42 erzeuge() {  # create directories, files and entries 
    43         case $1 in 
    44         d) # directory 
    45                 if [ -d $2 ]                            # if already exists 
     36normal="\033[0m" 
     37red="\033[31m" 
     38green="\033[32m" 
     39 
     40inst_dir=$HOME/neo 
     41 
     42# remove the entry in $HOME/.profile 
     43rmfromprofile() 
     44{ 
     45        grep -v "^\# NEO:$" $HOME/.profile | grep -v "asdf   \# mit" | grep -v "asdf" > $HOME/profile.neo.tmp 
     46        rm /$HOME/.profile 
     47        mv $HOME/profile.neo.tmp $HOME/.profile 
     48} 
     49 
     50# create directories, files and entries 
     51create() 
     52{ 
     53        if [ -f $2 ]                                    # if already exists 
     54        then 
     55                echo -e "Die Datei ${red}$2${normal} gibt es bereits – soll die bestehende Datei überschrieben werden? \c"; read -p "[J,N] " -e overwrite 
     56                if [ "$overwrite" = "J" ]       # overwrite? 
    4657                then 
    47                         echo -e "Das Verzeichnis ${R}$2${B} gibt es bereits – wird verwendet…" 
     58                        echo "Datei $2 wird überschrieben!" 
     59                        rm -f $2                        # remove if user wants to overwrite 
    4860                else 
    49                         echo -e "Erstelle $2" 
    50                         mkdir $2                        # create 
    51                 fi 
    52                 ;; 
    53         f) # file 
    54                 if [ -f $3 ]                            # if already exists 
    55                 then 
    56                         echo -e "Die Datei ${R}$3${B} gibt es bereits – soll die bestehende Datei überschrieben werden? \c"; read -p "[J,N] " -e overwrite 
    57                         if [ "$overwrite" = "J" ]       # overwrite? 
    58                         then 
    59                                 echo "Datei $3 wird überschrieben!" 
    60                                 rm -f $3                # remove if user wants to overwrite 
    61                         else 
    62                                 echo -e "Datei ${R}$3${B} gibt es schon → Installation abgebrochen" 
    63                                 exit 
    64                         fi 
    65                 fi 
    66                 echo "Erstelle Datei $3"                # create 
    67                 datei $2 > $3 
    68                 ;; 
    69         l) # soft link 
    70                 if [ -d $HOME/bin/ ]                    # $HOME/bin has to exist! 
    71                 then 
    72                         echo "Verzeichnis $HOME/bin/ gefunden" 
    73                 else 
    74                         echo -e "Verzeichnis ${R}$HOME/bin${B} wird erwartet, ist aber nicht vorhanden" 
    75                         echo "Außerdem wird erwartet, dass /$HOME/bin in der Umgebungsvariable \$PATH ist" 
    76                         echo "Istallation wird abgebrochen." 
     61                        echo -e "Datei ${red}$2${normal} gibt es schon → Installation abgebrochen" 
    7762                        exit 
    7863                fi 
    79                 if [ -f $HOME/bin/$2 ]                  # if already exists 
    80                 then 
    81                         echo -e "Datei ${R}$HOME/bin/$2${B} gibt es bereits – soll die bestehende Datei überschrieben werden? \c"; read -p "[J,N] " -e overwrite 
    82                         if [ "$overwrite" = "J" ]       # overwrite? 
    83                         then 
    84                                 echo "Datei $2 wird überschrieben!" 
    85                                 rm -f $HOME/bin/$2      # remove if user wants to overwrite 
    86                         else 
    87                                 echo -e "Datei ${R}$2${B} gibt es schon → Installation abgebrochen" 
    88                                 exit 
    89                         fi 
    90                 fi 
    91                 echo "Erstelle Link $HOME/bin/$2" 
    92                 ln -s $HOME/neo/$2 $HOME/bin            # create 
    93                 ;; 
    94         esac 
    95 } 
    96  
    97 entferne(){  # remove files for uninstall option 
    98         echo "Entferne $1" 
    99         rm $1 || echo -e "${R}Konnte die Datei $1 nicht entfernen!${B}" 
    100 } 
    101  
    102 deinstall() {  #remove all directories, files and entries made by ›installiere_neo‹ 
    103         echo 
    104         echo 
    105         rmfromprofile 
    106         entferne $HOME/.neorc 
    107         entferne $HOME/bin/uiae 
    108         entferne $HOME/neo/uiae 
    109         entferne $HOME/bin/asdf 
    110         entferne $HOME/neo/asdf 
    111         entferne $HOME/neo/neo.map 
    112         entferne $HOME/neo/neo_de.xmodmap 
    113         echo "Entferne $HOME/neo/" 
    114         rmdir $HOME/neo/ || echo -e "${R}Konnte das Verzeichenis $HOME/neo/ nicht entfernen!${B}" 
    115 } 
    116  
    117 rmfromprofile() {  # remove the entry in $HOME/.profile 
    118         grep -v "^\# NEO:$" $HOME/.profile | grep -v "asdf   \# mit" > $HOME/profile.neo.tmp 
    119         rm /$HOME/.profile 
    120         mv $HOME/profile.neo.tmp $HOME/.profile 
    121 } 
    122  
    123  
    124 # *** main program *** 
    125 clear 
    126 echo 
    127 echo "   *** NEO – Ergonomie und Zeichenvielfalt ***" 
    128 echo 
    129 echo 
    130 echo " Ihr System wird untersucht…" 
    131 echo 
    132  
    133 # check for an existing neo configuration 
    134 if [ -f "${NEO_CONFIG}" ]; then 
    135         . "${NEO_CONFIG}" || die "Failed to source ${NEO_CONFIG}" 
    136 elif [ -f "${HOME}"/.neorc ]; then 
    137         . "${HOME}"/.neorc || die "Failed to source ${HOME}/.neorc" 
    138 elif [ -f /etc/neo.conf ]; then 
    139         . /etc/neo.conf || die "Failed to source /etc/neo.conf" 
    140 else 
    141  
    142 # no configuration file found → install NEO 
     64        fi 
     65        echo "Erstelle Datei $2"                        # create 
     66        $1 > $2                                         # call subroutine $1 and write to file $2 
     67} 
     68 
     69## show options if NEO is not installed so far 
     70install_options() 
     71{ 
    14372        echo "Bislang gibt es kein vollständig konfiguriertes NEO auf Ihrem System" 
    14473        echo 
     
    15483        echo 
    15584        echo 
    156         echo -e " Wenn ${G}installiere_neo${B} ein weiteres Mal aufgerufen wird, haben weitere Optionen – z.B. die Deinstallation von NEO" 
     85        echo -e " Wenn ${green}installiere_neo${normal} ein weiteres Mal aufgerufen wird, haben weitere Optionen – z.B. die Deinstallation von NEO" 
    15786        echo 
    15887 
     
    16695                        echo 
    16796                        echo "Nach dem Login wird NEO die Standardbelegung sein." 
    168                         echo -e "Um dies zu ändern, kann ${G}installiere_neo${B} ein weiteres Mal ausgeführt werden." 
    169                         echo 
     97                        echo -e "Um dies zu ändern, kann ${green}installiere_neo${normal} ein weiteres Mal ausgeführt werden." 
     98                        echo -e ${red} 
    17099                        read -n1 -p "Drücke eine Taste um fortzufahren oder STRG+C zum Abbrechen" 
     100                        echo -e ${normal} 
    171101                        ;; 
    172102                1) 
    173103                        echo 
    174                         echo "Das Standardlayout wird nich verändert." 
    175                         echo -e "Zu NEO kann man jederzeit mit der Abrollbewegung ${G}asdf${B} wechseln." 
    176                         echo 
     104                        echo "Das Standardlayout wird nicht verändert." 
     105                        echo -e "Zu NEO kann man jederzeit mit der Abrollbewegung ${green}asdf${normal} wechseln." 
     106                        echo -e ${red} 
    177107                        read -n1 -p "Drücke eine Taste um fortzufahren oder STRG+C zum Abbrechen" 
     108                        echo -e ${normal} 
    178109                        ;; 
    179110                *) 
     
    187118 
    188119        echo 
    189         echo 
    190         echo " Installation von NEO mit xmodmap wird gestartet…" 
     120        echo "Installation von NEO mit xmodmap wird gestartet…" 
    191121        echo 
    192122        echo 
    193123 
    194124# *** main installation process *** 
    195 # creating a directory $HOME/neo with NEO files 
    196 # linking ›asdf‹ and ›uiae‹ scripts to $HOME/bin 
    197         erzeuge d $HOME/neo 
    198         erzeuge f xmodmap $HOME/neo/neo_de.xmodmap 
    199         erzeuge f console $HOME/neo/neo.map 
    200         erzeuge f asdf $HOME/neo/asdf 
    201         chmod u+x $HOME/neo/asdf 
    202         erzeuge l asdf 
    203         erzeuge f uiae $HOME/neo/uiae 
    204         chmod u+x $HOME/neo/uiae 
    205         erzeuge l uiae 
    206         erzeuge f neorc $HOME/.neorc 
     125# creating a directory $inst_dir 
     126        if [ -d $inst_dir ] 
     127        then 
     128                echo -e "Das Verzeichnis ${red}$inst_dir${normal} gibt es bereits – wird verwendet…" 
     129        else 
     130                echo -e "Erstelle $inst_dir" 
     131                mkdir $inst_dir 
     132        fi 
     133 
     134# creating NEO files in $inst_dir 
     135        create neo_xmodmap $inst_dir/neo_de.xmodmap 
     136        create neo_console $inst_dir/neo.map 
     137        create neo_asdf $inst_dir/asdf 
     138        chmod u+x $inst_dir/asdf 
     139        create neo_uiae $inst_dir/uiae 
     140        chmod u+x $inst_dir/uiae 
     141        create neorc $HOME/.neorc 
    207142 
    208143# entry in $HOME/.profile with NEO or QWERTZ as standard keyboard layout after login 
     
    211146                echo 
    212147                echo "Nach dem Login wird NEO die Standardbelegung sein." 
    213                 echo -e "Um dies zu ändern, kann ${G}installiere_neo${B} ein weiteres Mal ausgeführt werden." 
     148                echo -e "Um dies zu ändern, kann ${green}installiere_neo${normal} ein weiteres Mal ausgeführt werden." 
    214149                rmfromprofile 
    215                 datei profile.neo > $HOME/neo/neo.profile 
    216                 cat $HOME/neo/neo.profile >> $HOME/.profile 
    217                 rm $HOME/neo/neo.profile 
     150                profile_neo >> $HOME/.profile 
    218151                ;; 
    219152        1) 
    220153                echo 
    221154                echo "Das Standardlayout wird nich verändert." 
    222                 echo -e "Zu NEO kann man jederzeit mit der Abrollbewegung ${G}asdf${B} wechseln." 
    223155                rmfromprofile 
    224                 datei profile.qwertz > $HOME/neo/neo.profile 
    225                 cat $HOME/neo/neo.profile >> $HOME/.profile 
    226                 rm $HOME/neo/neo.profile 
     156                profile_qwertz >> $HOME/.profile 
    227157                ;; 
    228158        esac 
    229  
    230 # starting NEO layout 
    231         echo 
    232         echo "Die Belegung wird nun auf NEO geändert…"   
    233         cd $HOME/neo 
    234         ./asdf xmodmap 
    235         echo -e "Um zu QWERTZ zurückzukehren, genügt es, die Abrollbewegung ${G}uiae${B} einzugeben." 
    236         exit 
    237 fi 
    238  
    239  
    240 # configuration file found → delete/deinstall options 
     159} 
     160 
     161# remove files for uninstall option 
     162remove() 
     163{ 
     164        echo "Entferne $1" 
     165        rm $1 || echo -e "${red}Konnte die Datei $1 nicht entfernen!${normal}" 
     166} 
     167 
     168# remove all directories, files and entries made by ›installiere_neo‹ 
     169deinstall() 
     170{ 
     171        echo 
     172        echo 
     173        rmfromprofile 
     174        remove $HOME/.neorc 
     175        remove $inst_dir/starte_neo 
     176        remove $inst_dir/uiae 
     177        remove $inst_dir/asdf 
     178        remove $inst_dir/neo.map 
     179        remove $inst_dir/neo_de.xmodmap 
     180        echo "Entferne $inst_dir/" 
     181        rmdir $inst_dir/ || echo -e "${red}Konnte das Verzeichenis $inst_dir/ nicht entfernen!${normal}" 
     182} 
     183 
     184# show options if NEO is already installed 
     185deinstall_options() 
     186{ 
    241187        echo "Es gibt auf Ihrem System bereits eine Konfiguration für NEO." 
    242188        echo 
     
    244190        echo 
    245191        echo " [1]  NEO zukünftig nicht mehr als Standardbelegung" 
    246         echo -e "       NEO wird nicht länger direkt nach dem Login zur Verfügung stehen, wohl aber nach Eingabe von ${G}adsf${B}." 
     192        echo -e "       NEO wird nicht länger direkt nach dem Login zur Verfügung stehen, wohl aber nach Eingabe von ${green}adsf${normal}." 
    247193        echo 
    248194        echo 
     
    251197        echo 
    252198        echo 
    253         echo " Diese Optionen funktionieren nur dann zuverlässig, wenn NEO auch mit ${G}installiere_neo${B} installiert wurde" 
     199        echo -e " Diese Optionen funktionieren nur dann zuverlässig, wenn NEO auch mit ${green}installiere_neo${normal} installiert wurde" 
    254200        echo 
    255201 
    256202        deinstalloption="" 
    257         while [ ! $deinstalloption ]                    # choose between deleting NEO as standard layout or delete NEO at all 
    258         do                                              # if deleted as standard layout only, ›asdf‹ is still working 
     203        while [ ! $deinstalloption ]                                    # choose between deleting NEO as standard layout or delete NEO at all 
     204        do                                                              # if deleted as standard layout only, ›asdf‹ is still working 
    259205                echo 
    260206                read -p "Wählen Sie eine Option [1,2]: " -e deinstalloption 
     
    262208                2) 
    263209                        echo 
    264                         echo -e "Alle zuvor von ${G}installiere_neo${B} vorgenommen Änderungen am System werden gelöscht!" 
     210                        echo -e "Alle zuvor von ${green}installiere_neo${normal} vorgenommen Änderungen am System werden gelöscht!" 
     211                        echo -e ${red} 
     212                        read -n1 -p "Drücke eine Taste um fortzufahren oder STRG+C zum Abbrechen" 
     213                        echo -e ${normal} 
     214                        cd $inst_dir 
     215                        ./uiae 
     216                        deinstall                                       # full deinstallation 
    265217                        echo 
    266                         read -n1 -p "Drücke eine Taste um fortzufahren oder STRG+C zum Abbrechen" 
    267                         deinstall                       # full deinstallation 
     218                        echo -e "Alle von ${green}installiere_neo${normal} gemachten Änderungen an Ihrem System wurden entfernt." 
    268219                        ;; 
    269220                1) 
    270221                        echo 
    271222                        echo "NEO wird als Standardbelegung entfernt" 
    272                         echo -e "Zu NEO kann man weiterhin jederzeit mit der Abrollbewegung ${G}asdf${B} wechseln." 
     223                        echo -e "Zu NEO kann man weiterhin jederzeit mit der Abrollbewegung ${green}asdf${normal} wechseln." 
     224                        echo -e ${red} 
     225                        read -n1 -p "Drücke eine Taste um fortzufahren oder STRG+C zum Abbrechen" 
     226                        echo -e ${normal} 
    273227                        echo 
    274                         read -n1 -p "Drücke eine Taste um fortzufahren oder STRG+C zum Abbrechen" 
     228                        rmfromprofile                                   # alter the entry in $HOME/.profile; first: remove old entry 
     229                        profile_qwertz >> $HOME/.profile                # write the new entry 
    275230                        echo 
    276                         rmfromprofile                   # alter the entry in $HOME/.profile; first: remove old entry 
    277                         echo >> $HOME/.profile          # write the new entry 
    278                         echo "# NEO:" >> $HOME/.profile 
    279                         echo "# asdf   # mit einem # am Zeilenanfang bleibt QWERTZ das Standardlayout, sonst ist es NEO" >> $HOME/.profile 
     231                        echo "Nach dem nächsten Login wird NEO nicht mehr die Standardbelegung sein. " 
    280232                        ;; 
    281233                *) 
     
    287239                esac 
    288240        done 
    289 exit 
    290  
    291 #neo: xmodmap --- Beginn 
     241} 
     242 
     243neo_xmodmap () 
     244{ 
     245cat <<NEO_XMODMAP 
    292246!! ~/.xmodmap 
    293247!!  
     
    303257!!      <mailinglist at neo-layout dot org> 
    304258!!  
    305 !! $Revision: 1293 $, $Date: 2008-12-19 09:39:48 +0100 (Fr, 19 Dez 2008) $ 
     259!! \$Revision: 1293 \$, \$Date: 2008-12-19 09:39:48 +0100 (Fr, 19 Dez 2008) \$ 
    306260!! http://pebbles.schattenlauf.de/layout.php 
    307261!!  
     
    414368! called T1     ˆ               ˜               ˚               ˘               ˇ          (keypad-mouse mode)  ¯ 
    415369keycode 21 = dead_grave         NoSymbol        dead_diaeresis  U1FFE           NoSymbol        NoSymbol        NoSymbol        NoSymbol 
    416 ! called T2     `                               ¨               ῾ dasia (asper) 
     370! called T2     \`                              ¨               ῾ dasia (asper) 
    417371keycode 35 = dead_acute         dead_cedilla    dead_stroke     U1FBF        dead_doubleacute   NoSymbol        dead_abovedot   NoSymbol 
    418372! called T3     ´               ¸               /               ᾿ psili (lenis) ˝                               ˙ 
     
    439393 
    440394keycode 16 =    7               dollar          yen             Greek_kappa     currency        NoSymbol        rightarrow      NoSymbol 
    441 !                               $               ¥               κ               ¤                               → 
     395!                               \$              ¥               κ               ¤                               → 
    442396keycode 17 =    8   doublelowquotemark    singlelowquotemark  leftanglebracket  NoSymbol        NoSymbol        infinity        NoSymbol 
    443397!                               „               ‚               ⟨ (bra)                                         ∞ 
     
    515469!               ü               Ü               #                                                               ℜ real part 
    516470keycode 53 = odiaeresis         Odiaeresis      dollar          NoSymbol        Tab             ISO_Left_Tab    U2111           NoSymbol 
    517 !               ö               Ö               $                                                               ℑ imaginary part 
     471!               ö               Ö               \$                                                              ℑ imaginary part 
    518472keycode 54 = adiaeresis         Adiaeresis      bar             Greek_eta       Next            Next            U2135           NoSymbol 
    519473!               ä               Ä               |               η                                               ℵ alef symbol 
     
    521475!                                               ~               π                                               Π               Π 
    522476keycode 56 =    z               Z               grave           Greek_zeta      Undo            Redo            U2124           NoSymbol 
    523 !                                               `               ζ                                               ℤ integers 
     477!                                               \`              ζ                                               ℤ integers 
    524478 
    525479keycode 57 =    b               B               plus            Greek_beta      colon           NoSymbol        U21D0           NoSymbol 
     
    620574!     Die Steuerung des Cursors kann über den Ziffernblock (Ebene 4, eventuell mit 
    621575!     eingerastetem Mod4) erfolgen. 
    622 #neo: xmodmap --- Ende 
    623 #neo: console --- Beginn 
     576NEO_XMODMAP 
     577} 
     578 
     579neo_console () 
     580{ 
     581cat <<NEO_CONSOLE 
    624582! neo.map - german NEO keyboard layout 
    625583! 2008 Pascal Hauck, <pascal.hauck@web.de> 
     
    12391197! -------------------------------------------------------------------------- 
    12401198# string F100 = "setleds +num\n" 
    1241 #neo: console --- Ende 
    1242 #neo: asdf --- Beginn 
     1199NEO_CONSOLE 
     1200} 
     1201 
     1202neo_asdf () 
     1203{ 
     1204cat <<NEO_ASDF 
    12431205#!/bin/sh 
    12441206# Copyright 2008 Bernd Steinhauser <berniyh@exherbo.org> 
     
    12481210# Distributed under the terms of the GNU General Public License v3 
    12491211 
    1250 if [ -f "${NEO_CONFIG}" ]; then 
    1251         . "${NEO_CONFIG}" || die "Failed to source ${NEO_CONFIG}" 
    1252 elif [ -f "${HOME}"/.neorc ]; then 
    1253         . "${HOME}"/.neorc || die "Failed to source ${HOME}/.neorc" 
     1212if [ -f "\${NEO_CONFIG}" ]; then 
     1213        . "\${NEO_CONFIG}" || die "Failed to source \${NEO_CONFIG}" 
     1214elif [ -f "\${HOME}"/.neorc ]; then 
     1215        . "\${HOME}"/.neorc || die "Failed to source \${HOME}/.neorc" 
    12541216elif [ -f /etc/neo.conf ]; then 
    12551217        . /etc/neo.conf || die "Failed to source /etc/neo.conf" 
     
    12591221 
    12601222# Default paths 
    1261 PATH_XMODMAP=${PATH_XMODMAP:-/usr/bin/xmodmap} 
    1262 PATH_SETXKBMAP=${PATH_SETXKBMAP:-/usr/bin/setxkbmap} 
    1263 PATH_LOADKEYS=${PATH_LOADKEYS:-/usr/bin/loadkeys} 
    1264 PATH_SUDO=${PATH_SUDO:-/usr/bin/sudo} 
    1265 PATH_SETLEDS=${PATH_SETLEDS:-/usr/bin/setleds} 
    1266 PATH_NUMLOCKX=${PATH_NUMLOCKX:-/usr/bin/numlockx} 
    1267 PATH_XSET=${PATH_XSET:-/usr/bin/xset} 
     1223PATH_XMODMAP=\${PATH_XMODMAP:-/usr/bin/xmodmap} 
     1224PATH_SETXKBMAP=\${PATH_SETXKBMAP:-/usr/bin/setxkbmap} 
     1225PATH_LOADKEYS=\${PATH_LOADKEYS:-/usr/bin/loadkeys} 
     1226PATH_SUDO=\${PATH_SUDO:-/usr/bin/sudo} 
     1227PATH_SETLEDS=\${PATH_SETLEDS:-/usr/bin/setleds} 
     1228PATH_NUMLOCKX=\${PATH_NUMLOCKX:-/usr/bin/numlockx} 
     1229PATH_XSET=\${PATH_XSET:-/usr/bin/xset} 
    12681230 
    12691231# Default values 
    1270 NEO_X_VARIANTE=${NEO_X_VARIANTE:-xkbmap} 
    1271 NEO_X_VARIANTE=${1-$NEO_X_VARIANTE} 
    1272 NEO_XKBMAP=${NEO_XKBMAP:-de} 
    1273 NEO_XKBVARIANT=${NEO_XKBVARIANT:-neo} 
    1274 NEO_XMODMAP=${NEO_XMODMAP:-$HOME/neo/neo_de.xmodmap} 
    1275 NEO_XMODMAP_XPROG=${NEO_XMODMAP_XPROG:-$HOME/neo/neo_de_x-prog.xmodmap} 
    1276 NEO_XMODMAP_ALTERNATIVE=${NEO_XMODMAP_ALTERNATIVE:-$HOME/neo/neo_de_alternative.xmodmap} 
    1277 NEO_XMODMAP_EVDEV=${NEO_XMODMAP_EVDEV:-$HOME/neo/neo_de_evdev.xmodmap} 
    1278 NEO_CONSOLE_KEYMAP=${NEO_CONSOLE_KEYMAP:-$HOME/neo/neo.map} 
     1232NEO_X_VARIANTE=\${NEO_X_VARIANTE:-xkbmap} 
     1233NEO_X_VARIANTE=\${1-\$NEO_X_VARIANTE} 
     1234NEO_XKBMAP=\${NEO_XKBMAP:-de} 
     1235NEO_XKBVARIANT=\${NEO_XKBVARIANT:-neo} 
     1236NEO_XMODMAP=\${NEO_XMODMAP:-\$HOME/neo/neo_de.xmodmap} 
     1237NEO_XMODMAP_XPROG=\${NEO_XMODMAP_XPROG:-\$HOME/neo/neo_de_x-prog.xmodmap} 
     1238NEO_XMODMAP_ALTERNATIVE=\${NEO_XMODMAP_ALTERNATIVE:-\$HOME/neo/neo_de_alternative.xmodmap} 
     1239NEO_XMODMAP_EVDEV=\${NEO_XMODMAP_EVDEV:-\$HOME/neo/neo_de_evdev.xmodmap} 
     1240NEO_CONSOLE_KEYMAP=\${NEO_CONSOLE_KEYMAP:-\$HOME/neo/neo.map} 
    12791241 
    12801242die() { 
    1281         echo "$@" >&2 
     1243        echo "\$@" >&2 
    12821244        exit 1 
    12831245} 
    12841246 
    12851247set_xmodmap() { 
    1286         if [ -e "${PATH_XMODMAP}" ]; then 
    1287                 if [ -f "$@" ]; then 
     1248        if [ -e "\${PATH_XMODMAP}" ]; then 
     1249                if [ -f "\$@" ]; then 
    12881250                        set_xkbmap lv 
    1289                         "${PATH_XMODMAP}" "$@" || ( set_xkbmap de ; die "Failed to set xmodmap $@." ) 
     1251                        "\${PATH_XMODMAP}" "\$@" || ( set_xkbmap de ; die "Failed to set xmodmap \$@." ) 
    12901252                else 
    1291                         die "Cannot use $@ for xmodmap." 
     1253                        die "Cannot use \$@ for xmodmap." 
    12921254                fi 
    12931255        else 
     
    12971259 
    12981260set_xkbmap() { 
    1299         if [ -e "${PATH_SETXKBMAP}" ]; then 
    1300                 "${PATH_SETXKBMAP}" "$@" || die "Failed to select xkbmap $@." 
     1261        if [ -e "\${PATH_SETXKBMAP}" ]; then 
     1262                "\${PATH_SETXKBMAP}" "\$@" || die "Failed to select xkbmap \$@." 
    13011263        else 
    13021264                die "setxkbmap not found, cannot set xkbmap." 
     
    13051267 
    13061268set_keymap() { 
    1307         if [ -e "${PATH_LOADKEYS}" ]; then 
    1308                 if [ -f "$@" ]; then 
    1309                         if [ "${EUID}" = 0 ]; then 
    1310                                 "${PATH_LOADKEYS}" "$@" || die "Failed to set keymap $@." 
    1311                         elif [ -e "${PATH_SUDO}" ]; then 
    1312                                 "${PATH_SUDO}" "${PATH_LOADKEYS}" "$@" || die "Failed to set keymap using sudo." 
     1269        if [ -e "\${PATH_LOADKEYS}" ]; then 
     1270                if [ -f "\$@" ]; then 
     1271                        if [ "\${EUID}" = 0 ]; then 
     1272                                "\${PATH_LOADKEYS}" "\$@" || die "Failed to set keymap \$@." 
     1273                        elif [ -e "\${PATH_SUDO}" ]; then 
     1274                                "\${PATH_SUDO}" "\${PATH_LOADKEYS}" "\$@" || die "Failed to set keymap using sudo." 
    13131275                        else 
    13141276                                die "You need root priviliges to change the keymap." 
    13151277                        fi 
    13161278                else 
    1317                         die "keymap file $@ does not exist." 
     1279                        die "keymap file \$@ does not exist." 
    13181280                fi 
    13191281        else 
     
    13221284} 
    13231285 
    1324 if [ -n "$SSH_CONNECTION" ]; then 
     1286if [ -n "\$SSH_CONNECTION" ]; then 
    13251287        die "Cannot set keybord layout in a ssh session." 
    13261288fi 
    13271289 
    1328 if [ -z ${DISPLAY} ]; then 
    1329         set_keymap "${NEO_CONSOLE_KEYMAP}" 
    1330  
    1331         if [ -e "${PATH_SETLEDS}" ]; then 
    1332                 "${PATH_SETLEDS}" +num || die "Failed to set NUM status." 
     1290if [ -z \${DISPLAY} ]; then 
     1291        set_keymap "\${NEO_CONSOLE_KEYMAP}" 
     1292 
     1293        if [ -e "\${PATH_SETLEDS}" ]; then 
     1294                "\${PATH_SETLEDS}" +num || die "Failed to set NUM status." 
    13331295        else 
    13341296                die "setleds does not exist, cannot set NUM status." 
    13351297        fi 
    13361298else 
    1337         if [ -e "${PATH_NUMLOCKX}" ]; then 
    1338                 "${PATH_NUMLOCKX}" off || die "Failed to turn off Numlock." 
     1299        if [ -e "\${PATH_NUMLOCKX}" ]; then 
     1300                "\${PATH_NUMLOCKX}" off || die "Failed to turn off Numlock." 
    13391301        else 
    13401302                die "numlockx not found, cannot turn off Numlock." 
    13411303        fi 
    13421304 
    1343         if [ -e "${PATH_XSET}" ]; then 
     1305        if [ -e "\${PATH_XSET}" ]; then 
    13441306                for modifier in 51 94; do 
    1345                         "${PATH_XSET}" -r ${modifier} || die "Failed to unset repeat for modifier ${modifier}." 
     1307                        "\${PATH_XSET}" -r \${modifier} || die "Failed to unset repeat for modifier \${modifier}." 
    13461308                done 
    13471309                for deadkey in 21 35 49; do 
    1348                         "${PATH_XSET}" -r ${deadkey} || die "Failed to unset repeat for deadkey ${deakey}." 
     1310                        "\${PATH_XSET}" -r \${deadkey} || die "Failed to unset repeat for deadkey \${deakey}." 
    13491311                done 
    13501312        else 
     
    13521314        fi 
    13531315 
    1354         case "${NEO_X_VARIANTE}" in 
     1316        case "\${NEO_X_VARIANTE}" in 
    13551317                xkbmap) 
    1356                         set_xkbmap "${NEO_XKBMAP}" "${NEO_XKBVARIANT}" 
     1318                        set_xkbmap "\${NEO_XKBMAP}" "\${NEO_XKBVARIANT}" 
    13571319                        ;; 
    13581320                xmodmap) 
    1359                         set_xmodmap "${NEO_XMODMAP}" 
     1321                        set_xmodmap "\${NEO_XMODMAP}" 
    13601322                        ;; 
    13611323                xprog) 
    1362                         set_xmodmap "${NEO_XMODMAP_XPROG}" 
     1324                        set_xmodmap "\${NEO_XMODMAP_XPROG}" 
    13631325                        ;; 
    13641326                alternative) 
    1365                         set_xmodmap "${NEO_XMODMAP_ALTERNATIVE}" 
     1327                        set_xmodmap "\${NEO_XMODMAP_ALTERNATIVE}" 
    13661328                        ;; 
    13671329                evdev) 
    1368                         set_xmodmap "${NEO_XMODMAP_EVDEV}" 
     1330                        set_xmodmap "\${NEO_XMODMAP_EVDEV}" 
    13691331                        ;; 
    13701332                *) 
    1371                         die "Unknown Neo X variant ${NEO_X_VARIANTE}." 
     1333                        die "Unknown Neo X variant \${NEO_X_VARIANTE}." 
    13721334                        ;; 
    13731335        esac 
    13741336fi 
    13751337 
    1376 #neo: asdf --- Ende 
    1377 #neo: uiae --- Beginn 
     1338NEO_ASDF 
     1339} 
     1340 
     1341neo_uiae () 
     1342{ 
     1343cat <<NEO_UIAE 
    13781344#!/bin/sh 
    13791345# Copyright 2008 Bernd Steinhauser <berniyh@exherbo.org> 
     
    13831349# Distributed under the terms of the GNU General Public License v3 
    13841350 
    1385 if [ -f "${NEO_CONFIG}" ]; then 
    1386         . "${NEO_CONFIG}" || die "Failed to source ${NEO_CONFIG}" 
    1387 elif [ -f "${HOME}"/.neorc ]; then 
    1388         . "${HOME}"/.neorc || die "Failed to source ${HOME}/.neorc" 
     1351if [ -f "\${NEO_CONFIG}" ]; then 
     1352        . "\${NEO_CONFIG}" || die "Failed to source \${NEO_CONFIG}" 
     1353elif [ -f "\${HOME}"/.neorc ]; then 
     1354        . "\${HOME}"/.neorc || die "Failed to source \${HOME}/.neorc" 
    13891355elif [ -f /etc/neo.conf ]; then 
    13901356        . /etc/neo.conf || die "Failed to source /etc/neo.conf" 
     
    13941360 
    13951361# Default paths 
    1396 PATH_XMODMAP=${PATH_XMODMAP:-/usr/bin/xmodmap} 
    1397 PATH_SETXKBMAP=${PATH_SETXKBMAP:-/usr/bin/setxkbmap} 
    1398 PATH_LOADKEYS=${PATH_LOADKEYS:-/usr/bin/loadkeys} 
    1399 PATH_SUDO=${PATH_SUDO:-/usr/bin/sudo} 
    1400 PATH_SETLEDS=${PATH_SETLEDS:-/usr/bin/setleds} 
    1401 PATH_NUMLOCKX=${PATH_NUMLOCKX:-/usr/bin/numlockx} 
    1402 PATH_XSET=${PATH_XSET:-/usr/bin/xset} 
     1362PATH_XMODMAP=\${PATH_XMODMAP:-/usr/bin/xmodmap} 
     1363PATH_SETXKBMAP=\${PATH_SETXKBMAP:-/usr/bin/setxkbmap} 
     1364PATH_LOADKEYS=\${PATH_LOADKEYS:-/usr/bin/loadkeys} 
     1365PATH_SUDO=\${PATH_SUDO:-/usr/bin/sudo} 
     1366PATH_SETLEDS=\${PATH_SETLEDS:-/usr/bin/setleds} 
     1367PATH_NUMLOCKX=\${PATH_NUMLOCKX:-/usr/bin/numlockx} 
     1368PATH_XSET=\${PATH_XSET:-/usr/bin/xset} 
    14031369 
    14041370# Default values 
    1405 STD_X_VARIANTE=${STD_X_VARIANTE:-xkbmap} 
    1406 STD_XKBMAP=${STD_XKBMAP:-de} 
    1407 STD_XKBVARIANT=${STD_XKBVARIANT:-nodeadkeys} 
    1408 STD_CONSOLE_KEYMAP="${STD_CONSOLE_KEYMAP:-de-latin1-nodeadkeys}" 
    1409 NUM_LOCK_STATUS=${NUM_LOCK_STATUS:-on} 
     1371STD_X_VARIANTE=\${STD_X_VARIANTE:-xkbmap} 
     1372STD_XKBMAP=\${STD_XKBMAP:-de} 
     1373STD_XKBVARIANT=\${STD_XKBVARIANT:-nodeadkeys} 
     1374STD_CONSOLE_KEYMAP="\${STD_CONSOLE_KEYMAP:-de-latin1-nodeadkeys}" 
     1375NUM_LOCK_STATUS=\${NUM_LOCK_STATUS:-on} 
    14101376 
    14111377die() { 
    1412         echo "$@" >&2 
     1378        echo "\$@" >&2 
    14131379        exit 1 
    14141380} 
    14151381 
    14161382set_xmodmap() { 
    1417         if [ -e "${PATH_XMODMAP}" ]; then 
    1418                 if [ -f "$@" ]; then 
    1419                         "${PATH_XMODMAP}" "$@" || die "Failed to set xmodmap $@." 
     1383        if [ -e "\${PATH_XMODMAP}" ]; then 
     1384                if [ -f "\$@" ]; then 
     1385                        "\${PATH_XMODMAP}" "\$@" || die "Failed to set xmodmap \$@." 
    14201386                else 
    1421                         die "Cannot use $@ for xmodmap." 
     1387                        die "Cannot use \$@ for xmodmap." 
    14221388                fi 
    14231389        else 
     
    14271393 
    14281394set_xkbmap() { 
    1429         if [ -e "${PATH_SETXKBMAP}" ]; then 
    1430                 "${PATH_SETXKBMAP}" "$@" || die "Failed to select xkbmap $@." 
     1395        if [ -e "\${PATH_SETXKBMAP}" ]; then 
     1396                "\${PATH_SETXKBMAP}" "\$@" || die "Failed to select xkbmap \$@." 
    14311397        else 
    14321398                die "setxkbmap not found, cannot set xkbmap." 
     
    14351401 
    14361402set_keymap() { 
    1437         if [ -e "${PATH_LOADKEYS}" ]; then 
    1438                 if [ -f "$@" ]; then 
    1439                         if [ "${EUID}" = 0 ]; then 
    1440                                 "${PATH_LOADKEYS}" "$@" || die "Failed to set keymap $@." 
    1441                         elif [ -e "${PATH_SUDO}" ]; then 
    1442                                 "${PATH_SUDO}" "${PATH_LOADKEYS}" "$@" || die "Failed to set keymap using sudo." 
     1403        if [ -e "\${PATH_LOADKEYS}" ]; then 
     1404                if [ -f "\$@" ]; then 
     1405                        if [ "\${EUID}" = 0 ]; then 
     1406                                "\${PATH_LOADKEYS}" "\$@" || die "Failed to set keymap \$@." 
     1407                        elif [ -e "\${PATH_SUDO}" ]; then 
     1408                                "\${PATH_SUDO}" "\${PATH_LOADKEYS}" "\$@" || die "Failed to set keymap using sudo." 
    14431409                        else 
    14441410                                die "You need root priviliges to change the keymap." 
    14451411                        fi 
    14461412                else 
    1447                         die "keymap file $@ does not exist." 
     1413                        die "keymap file \$@ does not exist." 
    14481414                fi 
    14491415        else 
     
    14521418} 
    14531419 
    1454 if [ -n "$SSH_CONNECTION" ]; then 
     1420if [ -n "\$SSH_CONNECTION" ]; then 
    14551421        die "Cannot set keybord layout in a ssh session." 
    14561422fi 
    14571423 
    1458 if [ -z ${DISPLAY} ]; then 
    1459         set_keymap "${NEO_CONSOLE_KEYMAP}" 
    1460  
    1461         if [ -e "${PATH_SETLEDS}" ]; then 
    1462                 if [ "${NUM_LOCK_STATUS}" = "on" ]; then 
    1463                         "${PATH_SETLEDS}" -num || die "Failed to set num lock status to on." 
     1424if [ -z \${DISPLAY} ]; then 
     1425        set_keymap "\${NEO_CONSOLE_KEYMAP}" 
     1426 
     1427        if [ -e "\${PATH_SETLEDS}" ]; then 
     1428                if [ "\${NUM_LOCK_STATUS}" = "on" ]; then 
     1429                        "\${PATH_SETLEDS}" -num || die "Failed to set num lock status to on." 
    14641430                else 
    1465                         "${PATH_SETLEDS}" +num || die "Failed to set num lock status to off." 
     1431                        "\${PATH_SETLEDS}" +num || die "Failed to set num lock status to off." 
    14661432                fi 
    14671433        else 
     
    14691435        fi 
    14701436else 
    1471         if [ -e "${PATH_XSET}" ]; then 
     1437        if [ -e "\${PATH_XSET}" ]; then 
    14721438                for modifier in 51 94; do 
    1473                         "${PATH_XSET}" r ${modifier} || die "Failed to set repeat for modifier ${modifier}." 
     1439                        "\${PATH_XSET}" r \${modifier} || die "Failed to set repeat for modifier \${modifier}." 
    14741440                done 
    14751441                for deadkey in 21 35 49; do 
    1476                         "${PATH_XSET}" r ${deadkey} || die "Failed to set repeat for deadkey ${deakey}." 
     1442                        "\${PATH_XSET}" r \${deadkey} || die "Failed to set repeat for deadkey \${deakey}." 
    14771443                done 
    14781444        else 
     
    14801446        fi 
    14811447 
    1482         case "${STD_X_VARIANTE}" in 
     1448        case "\${STD_X_VARIANTE}" in 
    14831449                xkbmap) 
    1484                         set_xkbmap "${STD_XKBMAP}" "${STD_XKBVARIANT}" 
     1450                        set_xkbmap "\${STD_XKBMAP}" "\${STD_XKBVARIANT}" 
    14851451                        ;; 
    14861452                xmodmap) 
    14871453                        set_xkbmap de 
    1488                         set_xmodmap "${STD_XMODMAP}" 
     1454                        set_xmodmap "\${STD_XMODMAP}" 
    14891455                        ;; 
    14901456                *) 
    1491                         die "Unknown standard X variant ${STD_X_VARIANTE}." 
     1457                        die "Unknown standard X variant \${STD_X_VARIANTE}." 
    14921458                        ;; 
    14931459        esac 
    14941460 
    1495         if [ -e "${PATH_NUMLOCKX}" ]; then 
    1496                 if [ "${NUM_LOCK_STATUS}" = "on" ]; then 
    1497                         "${PATH_NUMLOCKX}" on || die "Failed to set num lock status to on." 
     1461        if [ -e "\${PATH_NUMLOCKX}" ]; then 
     1462                if [ "\${NUM_LOCK_STATUS}" = "on" ]; then 
     1463                        "\${PATH_NUMLOCKX}" on || die "Failed to set num lock status to on." 
    14981464                else 
    1499                         "${PATH_NUMLOCKX}" off || die "Failed to set num lock status to off." 
     1465                        "\${PATH_NUMLOCKX}" off || die "Failed to set num lock status to off." 
    15001466                fi 
    15011467        else 
     
    15041470fi 
    15051471 
    1506 #neo: uiae --- Ende 
    1507 #neo: neorc --- Beginn 
     1472NEO_UIAE 
     1473} 
     1474 
     1475neorc () 
     1476{ 
     1477cat <<NEORC 
    15081478# This file contains the configuration for the Neo scripts 
    15091479 
     
    15251495# When using a xmodmap, you may specify the full path to the xmodmap to be used. 
    15261496# Default: 
    1527 NEO_XMODMAP="$HOME/neo/neo_de.xmodmap" 
    1528 #NEO_XMODMAP_XPROG="$HOME/neo/neo_de_x-prog.xmodmap" 
    1529 #NEO_XMODMAP_ALTERNATIVE="$HOME/neo/neo_de_alternative.xmodmap" 
    1530 #NEO_XMODMAP_EVDEV="$HOME/neo/neo_de_evdev.xmodmap" 
     1497NEO_XMODMAP="\$HOME/neo/neo_de.xmodmap" 
     1498#NEO_XMODMAP_XPROG="\$HOME/neo/neo_de_x-prog.xmodmap" 
     1499#NEO_XMODMAP_ALTERNATIVE="\$HOME/neo/neo_de_alternative.xmodmap" 
     1500#NEO_XMODMAP_EVDEV="\$HOME/neo/neo_de_evdev.xmodmap" 
    15311501 
    15321502 
     
    15431513 
    15441514# For Neo without an X System set the path to the console keymap 
    1545 NEO_CONSOLE_KEYMAP="$HOME/neo/neo" # if necessary add „.map“ 
     1515NEO_CONSOLE_KEYMAP="\$HOME/neo/neo" # if necessary add „.map“ 
    15461516 
    15471517# Set the standard console keymap to switch back to 
     
    15591529#PATH_XSET=/usr/bin/xset 
    15601530 
    1561 #neo: neorc --- Ende 
    1562 #neo: profile.neo --- Beginn 
     1531NEORC 
     1532} 
     1533#!/bin/bash 
     1534 
     1535profile_neo() { 
     1536cat <<PROFIL 
    15631537 
    15641538# NEO: 
    1565 asdf   # mit einem # am Zeilenanfang bleibt QWERTZ das Standardlayout, sonst ist es NEO 
    1566 #neo: profile.neo --- Ende 
    1567 #neo: profile.qwertz --- Beginn 
     1539PATH=\$PATH:$inst_dir/  # für asdf und uiae 
     1540export PATH             # für asdf und uiae 
     1541asdf                    # mit einem # am Zeilenanfang bleibt QWERTZ das Standardlayout, sonst ist es NEO 
     1542PROFIL 
     1543} 
     1544 
     1545profile_qwertz() { 
     1546cat <<PROFIL 
    15681547 
    15691548# NEO: 
    1570 # asdf   # mit einem # am Zeilenanfang bleibt QWERTZ das Standardlayout, sonst ist es NEO 
    1571 #neo: profile.qwertz --- Ende 
    1572  
     1549PATH=\$PATH:$inst_dir/  # für asdf und uiae 
     1550export PATH             # für asdf und uiae 
     1551# asdf                  # mit einem # am Zeilenanfang bleibt QWERTZ das Standardlayout, sonst ist es NEO 
     1552PROFIL 
     1553} 
     1554 
     1555neo_path() { 
     1556cat <<NEO_PATH 
     1557PATH=$PATH:$inst_dir 
     1558export PATH 
     1559echo "Die Belegung wird nun auf NEO geändert…" 
     1560asdf 
     1561NEO_PATH 
     1562} 
     1563 
     1564# *** main program *** 
     1565clear 
     1566echo 
     1567echo "   *** NEO – Ergonomie und Zeichenvielfalt ***" 
     1568echo 
     1569echo 
     1570echo " Ihr System wird untersucht…" 
     1571echo 
     1572 
     1573# check for an existing neo configuration 
     1574if [ -f "${NEO_CONFIG}" ]; then 
     1575        . "${NEO_CONFIG}" || die "Failed to source ${NEO_CONFIG}" 
     1576elif [ -f "${HOME}"/.neorc ]; then 
     1577        . "${HOME}"/.neorc || die "Failed to source ${HOME}/.neorc" 
     1578elif [ -f /etc/neo.conf ]; then 
     1579        . /etc/neo.conf || die "Failed to source /etc/neo.conf" 
     1580else 
     1581 
     1582# no configuration file found → install NEO 
     1583        install_options 
     1584        neo_path > $inst_dir/starte_neo 
     1585        echo 
     1586        echo -e "Um NEO nun jetzt zu aktivieren geben Sie bitte »${green}. $inst_dir/starte_neo${normal}« (mit Punkt und Leerzeichen!) ein." 
     1587        echo -e "Danach oder nach dem nächsten Login kann jederzeit mit ${green}asdf${normal} von QWERTZ zu NEO und mit ${green}uiae${normal} von NEO zu QWERTZ gewechselt werden." 
     1588        exit 
     1589fi 
     1590 
     1591 
     1592# configuration file found → delete/deinstall options 
     1593deinstall_options 
     1594exit 
     1595