Changeset 1388 for linux/bin/asdf

Show
Ignore:
Timestamp:
01/06/09 13:22:16 (4 years ago)
Author:
pascal
Message:

deutsche Ausgaben
Hilfe eingefügt
mehr Textausgaben (auf Wunsch mit -q abschaltbar)

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • linux/bin/asdf

    r1385 r1388  
    1 #!/bin/sh 
     1#!/bin/bash 
    22# Copyright 2008 Bernd Steinhauser <berniyh@exherbo.org> 
    33# Copyright 2008 Benjamin Kellermann 
     
    66# Distributed under the terms of the GNU General Public License v3 
    77 
     8 
     9# colours in the Bash 
     10normal="\033[0m" 
     11red="\033[31m" 
     12green="\033[32m" 
     13 
    814if [ -f "${NEO_CONFIG}" ]; then 
    9         . "${NEO_CONFIG}" || die "Failed to source ${NEO_CONFIG}" 
     15        . "${NEO_CONFIG}" || die "Fehler beim Verwenden der Konfigurationsdatei ${NEO_CONFIG}" 
    1016elif [ -f "${HOME}"/.neorc ]; then 
    11         . "${HOME}"/.neorc || die "Failed to source ${HOME}/.neorc" 
     17        . "${HOME}"/.neorc || die "Fehler beim Verwenden der Konfigurationsdatei ${HOME}/.neorc" 
    1218elif [ -f /etc/neo.conf ]; then 
    13         . /etc/neo.conf || die "Failed to source /etc/neo.conf" 
     19        . /etc/neo.conf || die "Fehler beim Verwenden der Konfigurationsdatei /etc/neo.conf" 
    1420else 
    15         echo "No configuration file found. Using default values, this might fail!" 
     21        echo "${red}Keine Konfigurationsdatei für NEO gefunden. Das Verwenden der Standardwerte kann fehlschlagen!${normal}" 
    1622fi 
    1723 
     
    2632 
    2733# Default values 
    28 NEO_X_VARIANTE=${NEO_X_VARIANTE:-xkbmap} 
    29 NEO_X_VARIANTE=${1-$NEO_X_VARIANTE} 
    3034NEO_XKBMAP=${NEO_XKBMAP:-de} 
    3135NEO_XKBVARIANT=${NEO_XKBVARIANT:-neo} 
     
    3640NEO_CONSOLE_KEYMAP=${NEO_CONSOLE_KEYMAP:-$HOME/neo/neo.map} 
    3741 
     42help() { 
     43cat <<HELP 
     44Aufruf: $0 [-q] [NEO-X-Variante] 
     45Aktiviert die NEO-Tastaturbelegung. 
     46 
     47  NEO-X-Variante        als NEO-X-Variante kann verwendet werden: 
     48                                xkmbap          i.d.R. wenn Rootrechte vorhanden sind 
     49                                xmodmap         i.d.R. wenn NEO nur für einen Benutzer verwendet werden soll  
     50                                alternative     sollte geladen werden, wenn das Laden der Xmodmap fehl schlägt 
     51                                xprog           falls ältere X-Programme (wie xedit oder xfig) verwendet werden 
     52                                evdev           falls der evdev-Treiber verwendet wird 
     53 
     54                        Das Skript erkennt, falls sich der Benutzer nur auf einer Textkonsole befindet und ändert 
     55                        auch dort die Belegung (hierfür sind allerdings Rootrechte erforderlich!) 
     56 
     57  -q, --quiet           gibt – abgesehen von Fehlern – keine Meldungen aus 
     58 
     59NEO-Tastaturbelegung 
     60Homepage: http://neo-layout.org/ 
     61 
     62HELP 
     63exit 0 
     64} 
     65 
    3866die() { 
    39         echo "$@" >&2 
     67        echo -e "${red}$@${normal}" >&2 
    4068        exit 1 
     69} 
     70 
     71die2() { 
     72        set_xkbmap de 
     73        die "Fehler beim Laden der Xmodmap $@." 
    4174} 
    4275 
    4376numlock_manually() { 
    4477        echo "$1" >&2 
    45         echo "Please turn Numlock $2 now and press ›Enter‹ to continue." >&2 
     78        echo "Bitte jetzt NumLock von Hand auf $2 schalten und ›Enter‹ drücken um fortzufahren…" >&2 
    4679        read enter 
    4780} 
     
    5184                if [ -f "$@" ]; then 
    5285                        set_xkbmap lv 
    53                         "${PATH_XMODMAP}" "$@" || ( set_xkbmap de ; die "Failed to set xmodmap $@." ) 
     86                        "${PATH_XMODMAP}" "$@" || die2 $@ 
    5487                else 
    55                         die "Cannot use $@ for xmodmap." 
     88                        die "Die Xmodmap-Datei $@ gibt es nicht." 
    5689                fi 
    5790        else 
    58                 die "xmodmap not found, cannot set xmodmap." 
     91                die "Der Befehl ›xmodmap‹ wurde nicht gefunden, die Belegung kann nicht verändert werden." 
    5992        fi 
    6093} 
     
    6295set_xkbmap() { 
    6396        if [ -e "${PATH_SETXKBMAP}" ]; then 
    64                 "${PATH_SETXKBMAP}" "$@" || die "Failed to select xkbmap $@." 
    65         else 
    66                 die "setxkbmap not found, cannot set xkbmap." 
     97                "${PATH_SETXKBMAP}" "$@" || die "Die xkbmap $@ wurde nicht gefunden." 
     98        else 
     99                die "Der Befehl ›setxkbmap‹ wurde nicht gefunden, die Belegung kann nicht verändert werden." 
    67100        fi 
    68101} 
     
    72105                if [ -f "$@" ]; then 
    73106                        if [ "${EUID}" = 0 ]; then 
    74                                 "${PATH_LOADKEYS}" "$@" || die "Failed to set keymap $@." 
     107                                "${PATH_LOADKEYS}" "$@" || die "Fehler beim Laden der Keymap $@." 
    75108                        elif [ -e "${PATH_SUDO}" ]; then 
    76                                 "${PATH_SUDO}" "${PATH_LOADKEYS}" "$@" || die "Failed to set keymap using sudo." 
     109                                "${PATH_SUDO}" "${PATH_LOADKEYS}" "$@" || die "Fehler bei der Verwendung von ›sudo‹, um die Belegung zu ändern." 
    77110                        else 
    78                                 die "You need root priviliges to change the keymap." 
     111                                die "Die Belegung auf der Textkonsole kann nur mir Rootrechten geändert werden." 
    79112                        fi 
    80113                else 
    81                         die "keymap file $@ does not exist." 
     114                        die "Die keymap-Datei $@ gibt es nicht." 
    82115                fi 
    83116        else 
    84                 die "loadkeys not found, cannot set keymap." 
    85         fi 
    86 } 
     117                die "Der Befehl ›loadkeys‹ wurde nicht gefunden, die Belegung kann nicht verändert werden." 
     118        fi 
     119} 
     120 
     121 
     122while [ ! -z "$1" ]; do 
     123        case $1 in 
     124                -h | --help ) 
     125                        help 
     126                        ;; 
     127                -q | --quiet ) 
     128                        quiet=1 
     129                        ;; 
     130                * ) 
     131                        NEO_X_VARIANTE=${1-$NEO_X_VARIANTE} 
     132                        shift $# 
     133                        ;; 
     134        esac 
     135        shift 
     136done 
     137 
    87138 
    88139if [ -n "$SSH_CONNECTION" ]; then 
    89         die "Cannot set keybord layout in a ssh session." 
     140        die "In einer ssh-session kann die Belegung nicht geändert werden." 
    90141fi 
    91142 
     
    94145 
    95146        if [ -e "${PATH_SETLEDS}" ]; then 
    96                 "${PATH_SETLEDS}" +num || numlock_manually "Failed to set NUM status." on 
    97         else 
    98                 numlock_manually "setleds does not exist, cannot set NUM status." on 
     147                "${PATH_SETLEDS}" +num || numlock_manually "Fehler beim setzen des Status von NumLock." an 
     148        else 
     149                numlock_manually "Der Befehl ›setleds‹ wurde nicht gefunden. Darum kann der Status von NumLock nicht automatisch geändert werden." an 
    99150        fi 
    100151else 
    101152        if [ -e "${PATH_NUMLOCKX}" ]; then 
    102                 "${PATH_NUMLOCKX}" off || numlock_manually "Failed to turn off Numlock." off 
    103         else 
    104                 numlock_manually "numlockx not found, cannot turn off Numlock." off 
     153                "${PATH_NUMLOCKX}" off || numlock_manually "Fehler beim setzen des Status von NumLock." aus 
     154        else 
     155                numlock_manually "Der Befehl ›setleds‹ wurde nicht gefunden. Darum kann der Status von NumLock nicht automatisch geändert werden." aus 
    105156        fi 
    106157 
    107158        if [ -e "${PATH_XSET}" ]; then 
    108159                for modifier in 51 94; do 
    109                         "${PATH_XSET}" -r ${modifier} || echo "Failed to unset repeat for modifier ${modifier}." >&2 
     160                        "${PATH_XSET}" -r ${modifier} || echo "Fehler beim Ausschalten von Autorepeat beim Modifier ${modifier}." >&2 
    110161                done 
    111162                for deadkey in 21 35 49; do 
    112                         "${PATH_XSET}" -r ${deadkey} || echo "Failed to unset repeat for deadkey ${deakey}." >&2 
     163                        "${PATH_XSET}" -r ${deadkey} || echo "Fehler beim Ausschalten von Autorepead bei der toten Taste ${deakey}." >&2 
    113164                done 
    114165        else 
    115                 echo "xset not found, cannot set modifiers and dead keys." >&2 
     166                echo "Der Befehl ›xset‹ wurde nicht gefunden. Der Status von autorepeat kann für Modifier und tote Tasten nicht geändert werden." >&2 
    116167        fi 
    117168 
    118169        case "${NEO_X_VARIANTE}" in 
    119170                xkbmap) 
     171                        [ $quiet ] || echo "Die xkbmap wird geladen…" 
    120172                        set_xkbmap "${NEO_XKBMAP}" "${NEO_XKBVARIANT}" 
    121173                        ;; 
    122174                xmodmap) 
     175                        [ $quiet ] || echo "Das Laden der Xmodmap kann einige Sekunden dauern…" 
    123176                        set_xmodmap "${NEO_XMODMAP}" 
    124177                        ;; 
    125178                xprog) 
     179                        [ $quiet ] || echo "Das Laden der Xmodmap (Variante für X-Programme) kann einige Sekunden dauern…" 
    126180                        set_xmodmap "${NEO_XMODMAP_XPROG}" 
    127181                        ;; 
    128182                alternative) 
     183                        [ $quiet ] || echo "Das Laden der alternativen Xmodmap kann einige Sekunden dauern…" 
    129184                        set_xmodmap "${NEO_XMODMAP_ALTERNATIVE}" 
    130185                        ;; 
    131186                evdev) 
     187                        [ $quiet ] || echo "Das Laden der Xmodmap (evdev-Variante) kann einige Sekunden dauern…" 
    132188                        set_xmodmap "${NEO_XMODMAP_EVDEV}" 
    133189                        ;; 
    134190                *) 
    135                         die "Unknown Neo X variant ${NEO_X_VARIANTE}." 
     191                        die "${NEO_X_VARIANTE} ist eine unbekannte X-Variante der NEO-Belegung." 
    136192                        ;; 
    137193        esac 
    138194fi 
    139195 
     196if [ ! "$quiet" ]; then 
     197        echo 
     198        echo "Die Tastaturbelegung wurde auf NEO geändert." 
     199        echo -e "Mit ${green}neo${normal} und ${green}num${normal} erhält man ein Bild der NEO-Belegung." 
     200        echo -e "Durch ${green}uiae${normal} kehrt man wieder zur Standardbelegung zurück." 
     201fi