root/linux/bin/uiae @ 1410

Revision 1410, 2.7 KB (checked in by pascal, 4 years ago)

Befehle nicht mehr in Variablen

  • Property svn:executable set to *
Line 
1#!/bin/sh
2# Copyright 2008 Bernd Steinhauser <berniyh@exherbo.org>
3# Copyright 2008 Benjamin Kellermann
4# Copyright 2008 Pascal Hauck
5# Copyright 2008 Erik Streb del Toro
6# Distributed under the terms of the GNU General Public License v3
7
8
9# colours in the Bash
10normal="\033[0m"
11red="\033[31m"
12orange="\033[33m"
13green="\033[32m"
14
15if [ -f "${NEO_CONFIG}" ]; then
16        . "${NEO_CONFIG}" || die "Failed to source ${NEO_CONFIG}"
17elif [ -f "${HOME}"/.neorc ]; then
18        . "${HOME}"/.neorc || die "Failed to source ${HOME}/.neorc"
19elif [ -f /etc/neo.conf ]; then
20        . /etc/neo.conf || die "Failed to source /etc/neo.conf"
21else
22        echo "No configuration file found. Using default values, this might fail!"
23fi
24
25
26# Default values
27STD_X_VARIANTE=${STD_X_VARIANTE:-xkbmap}
28STD_XKBMAP=${STD_XKBMAP:-de}
29STD_XKBVARIANT=${STD_XKBVARIANT:-nodeadkeys}
30STD_CONSOLE_KEYMAP="${STD_CONSOLE_KEYMAP:-de-latin1-nodeadkeys}"
31NUM_LOCK_STATUS=${NUM_LOCK_STATUS:-on}
32
33help() {
34cat <<HELP
35Aufruf: $0 [-q]
36Aktiviert die Standard-Tastaturbelegung.
37
38  -q, --quiet           gibt – abgesehen von Fehlern – keine Meldungen aus
39
40NEO-Tastaturbelegung
41Homepage: http://neo-layout.org/
42
43HELP
44exit 0
45}
46
47die() {
48        echo -e "${red}$@${normal}" >&2
49        echo -e "${red}Die Belegung konnte nicht geändert werden.${normal}"
50        exit 1
51}
52
53set_xmodmap() {
54        if [ -f "$@" ]; then
55                xmodmap "$@" || die "Failed to set xmodmap $@."
56        else
57                die "Cannot use $@ for xmodmap."
58        fi
59}
60
61set_xkbmap() {
62        setxkbmap "$@" || die "Failed to select xkbmap $@."
63}
64
65set_keymap() {
66        if [ "${EUID}" = 0 ]; then
67                loadkeys "$@" || die "Fehler beim Laden der Keymap ${orange}$@${red}."
68        else
69                sudo loadkeys "$@" || die "Fehler bei der Verwendung von ${orange}sudo${red}, um die Belegung zu ändern."
70        fi
71}
72
73if [ -n "$SSH_CONNECTION" ]; then
74        die "In einer ssh-session kann die Belegung nicht geändert werden."
75fi
76
77if [ -z ${DISPLAY} ]; then
78        set_keymap "${STD_CONSOLE_KEYMAP}"
79
80        if [ "${NUM_LOCK_STATUS}" = "on" ]; then
81                setleds -num || echo -e "${orange}Fehler beim setzen des Status von NumLock.${normal}" >&2
82        else
83                setleds +num || echo "${orange}Fehler beim setzen des Status von NumLock.${normal}" >&2
84        fi
85
86else
87        for modifier in 51 94; do
88                xset r ${modifier} || echo "Failed to set repeat for modifier ${modifier}." >&2
89        done
90        for deadkey in 21 35 49; do
91                xset r ${deadkey} || echo "Failed to set repeat for deadkey ${deakey}." >&2
92        done
93
94
95        case "${STD_X_VARIANTE}" in
96                xkbmap)
97                        set_xkbmap "${STD_XKBMAP}" "${STD_XKBVARIANT}"
98                        ;;
99                xmodmap)
100                        set_xkbmap de
101                        set_xmodmap "${STD_XMODMAP}"
102                        ;;
103                *)
104                        die "Unknown standard X variant ${STD_X_VARIANTE}."
105                        ;;
106        esac
107
108        if [ "${NUM_LOCK_STATUS}" = "on" ]; then
109                numlockx on || die "Failed to set num lock status to on."
110        else
111                numlockx off || die "Failed to set num lock status to off."
112        fi
113fi
114
Note: See TracBrowser for help on using the browser.