Changeset 1388 for linux/bin/asdf
- Timestamp:
- 01/06/09 13:22:16 (4 years ago)
- Files:
-
- 1 modified
-
linux/bin/asdf (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
linux/bin/asdf
r1385 r1388 1 #!/bin/ sh1 #!/bin/bash 2 2 # Copyright 2008 Bernd Steinhauser <berniyh@exherbo.org> 3 3 # Copyright 2008 Benjamin Kellermann … … 6 6 # Distributed under the terms of the GNU General Public License v3 7 7 8 9 # colours in the Bash 10 normal="\033[0m" 11 red="\033[31m" 12 green="\033[32m" 13 8 14 if [ -f "${NEO_CONFIG}" ]; then 9 . "${NEO_CONFIG}" || die "F ailed to source${NEO_CONFIG}"15 . "${NEO_CONFIG}" || die "Fehler beim Verwenden der Konfigurationsdatei ${NEO_CONFIG}" 10 16 elif [ -f "${HOME}"/.neorc ]; then 11 . "${HOME}"/.neorc || die "F ailed to source${HOME}/.neorc"17 . "${HOME}"/.neorc || die "Fehler beim Verwenden der Konfigurationsdatei ${HOME}/.neorc" 12 18 elif [ -f /etc/neo.conf ]; then 13 . /etc/neo.conf || die "F ailed to source/etc/neo.conf"19 . /etc/neo.conf || die "Fehler beim Verwenden der Konfigurationsdatei /etc/neo.conf" 14 20 else 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}" 16 22 fi 17 23 … … 26 32 27 33 # Default values 28 NEO_X_VARIANTE=${NEO_X_VARIANTE:-xkbmap}29 NEO_X_VARIANTE=${1-$NEO_X_VARIANTE}30 34 NEO_XKBMAP=${NEO_XKBMAP:-de} 31 35 NEO_XKBVARIANT=${NEO_XKBVARIANT:-neo} … … 36 40 NEO_CONSOLE_KEYMAP=${NEO_CONSOLE_KEYMAP:-$HOME/neo/neo.map} 37 41 42 help() { 43 cat <<HELP 44 Aufruf: $0 [-q] [NEO-X-Variante] 45 Aktiviert 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 59 NEO-Tastaturbelegung 60 Homepage: http://neo-layout.org/ 61 62 HELP 63 exit 0 64 } 65 38 66 die() { 39 echo "$@" >&267 echo -e "${red}$@${normal}" >&2 40 68 exit 1 69 } 70 71 die2() { 72 set_xkbmap de 73 die "Fehler beim Laden der Xmodmap $@." 41 74 } 42 75 43 76 numlock_manually() { 44 77 echo "$1" >&2 45 echo " Please turn Numlock $2 now and press ›Enter‹ to continue." >&278 echo "Bitte jetzt NumLock von Hand auf $2 schalten und ›Enter‹ drücken um fortzufahren…" >&2 46 79 read enter 47 80 } … … 51 84 if [ -f "$@" ]; then 52 85 set_xkbmap lv 53 "${PATH_XMODMAP}" "$@" || ( set_xkbmap de ; die "Failed to set xmodmap $@." )86 "${PATH_XMODMAP}" "$@" || die2 $@ 54 87 else 55 die " Cannot use $@ for xmodmap."88 die "Die Xmodmap-Datei $@ gibt es nicht." 56 89 fi 57 90 else 58 die " xmodmap not found, cannot set xmodmap."91 die "Der Befehl ›xmodmap‹ wurde nicht gefunden, die Belegung kann nicht verändert werden." 59 92 fi 60 93 } … … 62 95 set_xkbmap() { 63 96 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." 67 100 fi 68 101 } … … 72 105 if [ -f "$@" ]; then 73 106 if [ "${EUID}" = 0 ]; then 74 "${PATH_LOADKEYS}" "$@" || die "F ailed to set keymap $@."107 "${PATH_LOADKEYS}" "$@" || die "Fehler beim Laden der Keymap $@." 75 108 elif [ -e "${PATH_SUDO}" ]; then 76 "${PATH_SUDO}" "${PATH_LOADKEYS}" "$@" || die "F ailed to set keymap using sudo."109 "${PATH_SUDO}" "${PATH_LOADKEYS}" "$@" || die "Fehler bei der Verwendung von ›sudo‹, um die Belegung zu ändern." 77 110 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." 79 112 fi 80 113 else 81 die " keymap file $@ does not exist."114 die "Die keymap-Datei $@ gibt es nicht." 82 115 fi 83 116 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 122 while [ ! -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 136 done 137 87 138 88 139 if [ -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." 90 141 fi 91 142 … … 94 145 95 146 if [ -e "${PATH_SETLEDS}" ]; then 96 "${PATH_SETLEDS}" +num || numlock_manually "F ailed to set NUM status." on97 else 98 numlock_manually " setleds does not exist, cannot set NUM status." on147 "${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 99 150 fi 100 151 else 101 152 if [ -e "${PATH_NUMLOCKX}" ]; then 102 "${PATH_NUMLOCKX}" off || numlock_manually "F ailed to turn off Numlock." off103 else 104 numlock_manually " numlockx not found, cannot turn off Numlock." off153 "${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 105 156 fi 106 157 107 158 if [ -e "${PATH_XSET}" ]; then 108 159 for modifier in 51 94; do 109 "${PATH_XSET}" -r ${modifier} || echo "F ailed to unset repeat for modifier ${modifier}." >&2160 "${PATH_XSET}" -r ${modifier} || echo "Fehler beim Ausschalten von Autorepeat beim Modifier ${modifier}." >&2 110 161 done 111 162 for deadkey in 21 35 49; do 112 "${PATH_XSET}" -r ${deadkey} || echo "F ailed to unset repeat for deadkey${deakey}." >&2163 "${PATH_XSET}" -r ${deadkey} || echo "Fehler beim Ausschalten von Autorepead bei der toten Taste ${deakey}." >&2 113 164 done 114 165 else 115 echo " xset not found, cannot set modifiers and dead keys." >&2166 echo "Der Befehl ›xset‹ wurde nicht gefunden. Der Status von autorepeat kann für Modifier und tote Tasten nicht geändert werden." >&2 116 167 fi 117 168 118 169 case "${NEO_X_VARIANTE}" in 119 170 xkbmap) 171 [ $quiet ] || echo "Die xkbmap wird geladen…" 120 172 set_xkbmap "${NEO_XKBMAP}" "${NEO_XKBVARIANT}" 121 173 ;; 122 174 xmodmap) 175 [ $quiet ] || echo "Das Laden der Xmodmap kann einige Sekunden dauern…" 123 176 set_xmodmap "${NEO_XMODMAP}" 124 177 ;; 125 178 xprog) 179 [ $quiet ] || echo "Das Laden der Xmodmap (Variante für X-Programme) kann einige Sekunden dauern…" 126 180 set_xmodmap "${NEO_XMODMAP_XPROG}" 127 181 ;; 128 182 alternative) 183 [ $quiet ] || echo "Das Laden der alternativen Xmodmap kann einige Sekunden dauern…" 129 184 set_xmodmap "${NEO_XMODMAP_ALTERNATIVE}" 130 185 ;; 131 186 evdev) 187 [ $quiet ] || echo "Das Laden der Xmodmap (evdev-Variante) kann einige Sekunden dauern…" 132 188 set_xmodmap "${NEO_XMODMAP_EVDEV}" 133 189 ;; 134 190 *) 135 die " Unknown Neo X variant ${NEO_X_VARIANTE}."191 die "${NEO_X_VARIANTE} ist eine unbekannte X-Variante der NEO-Belegung." 136 192 ;; 137 193 esac 138 194 fi 139 195 196 if [ ! "$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." 201 fi
