diff options
Diffstat (limited to 'linux/bin/uiae')
-rwxr-xr-x | linux/bin/uiae | 58 |
1 files changed, 41 insertions, 17 deletions
diff --git a/linux/bin/uiae b/linux/bin/uiae index c04f974..65a93a0 100755 --- a/linux/bin/uiae +++ b/linux/bin/uiae @@ -5,6 +5,13 @@ # Copyright 2008 Erik Streb del Toro # Distributed under the terms of the GNU General Public License v3 + +# colours in the Bash +normal="\033[0m" +red="\033[31m" +orange="\033[33m" +green="\033[32m" + if [ -f "${NEO_CONFIG}" ]; then . "${NEO_CONFIG}" || die "Failed to source ${NEO_CONFIG}" elif [ -f "${HOME}"/.neorc ]; then @@ -31,8 +38,23 @@ STD_XKBVARIANT=${STD_XKBVARIANT:-nodeadkeys} STD_CONSOLE_KEYMAP="${STD_CONSOLE_KEYMAP:-de-latin1-nodeadkeys}" NUM_LOCK_STATUS=${NUM_LOCK_STATUS:-on} +help() { +cat <<HELP +Aufruf: $0 [-q] +Aktiviert die Standard-Tastaturbelegung. + + -q, --quiet gibt – abgesehen von Fehlern – keine Meldungen aus + +NEO-Tastaturbelegung +Homepage: http://neo-layout.org/ + +HELP +exit 0 +} + die() { - echo "$@" >&2 + echo -e "${red}$@${normal}" >&2 + echo -e "${red}Die Belegung konnte nicht geändert werden.${normal}" exit 1 } @@ -57,38 +79,40 @@ set_xkbmap() { } set_keymap() { - if [ -e "${PATH_LOADKEYS}" ]; then - if [ -f "$@" ]; then - if [ "${EUID}" = 0 ]; then - "${PATH_LOADKEYS}" "$@" || die "Failed to set keymap $@." - elif [ -e "${PATH_SUDO}" ]; then - "${PATH_SUDO}" "${PATH_LOADKEYS}" "$@" || die "Failed to set keymap using sudo." - else - die "You need root priviliges to change the keymap." - fi + if [ ! -e "${PATH_LOADKEYS}" ]; then + echo -e "${orange}Der Befehl ${red}loadkeys${orange} wurde nicht im angegebenen Verzeichnis gefunden, versuche es ohne explizite Angabe.${normal}" + PATH_LOADKEYS=loadkeys + fi + + if [ -f "$@" ]; then + if [ "${EUID}" = 0 ]; then + "${PATH_LOADKEYS}" "$@" || die "Fehler beim Laden der Keymap ${orange}$@${red}." + elif [ -e "${PATH_SUDO}" ]; then + "${PATH_SUDO}" "${PATH_LOADKEYS}" "$@" || die "Fehler bei der Verwendung von ${orange}sudo${red}, um die Belegung zu ändern." else - die "keymap file $@ does not exist." + die "Die Belegung auf der Textkonsole kann nur mir Rootrechten geändert werden." fi else - die "loadkeys not found, cannot set keymap." + die "Die keymap-Datei ${orange}$@${red} gibt es nicht." fi + } if [ -n "$SSH_CONNECTION" ]; then - die "Cannot set keybord layout in a ssh session." + die "In einer ssh-session kann die Belegung nicht geändert werden." fi if [ -z ${DISPLAY} ]; then - set_keymap "${NEO_CONSOLE_KEYMAP}" + set_keymap "${STD_CONSOLE_KEYMAP}" if [ -e "${PATH_SETLEDS}" ]; then if [ "${NUM_LOCK_STATUS}" = "on" ]; then - "${PATH_SETLEDS}" -num || echo "Failed to set num lock status to on." >&2 + "${PATH_SETLEDS}" -num || echo -e "${orange}Fehler beim setzen des Status von NumLock.${normal}" >&2 else - "${PATH_SETLEDS}" +num || echo "Failed to set num lock status to off." >&2 + "${PATH_SETLEDS}" +num || echo "${orange}Fehler beim setzen des Status von NumLock.${normal}" >&2 fi else - echo "setleds does not exist, cannot set NUM status." >&2 + echo "${orange}Der Befehl ${red}setleds${orange} wurde nicht gefunden. Darum kann der Status von NumLock nicht automatisch geändert werden.${normal}" >&2 fi else if [ -e "${PATH_XSET}" ]; then |