root/linux/bin/asdf @ 921

Revision 921, 3.1 KB (checked in by erik, 5 years ago)

in den kommentaren muss es auch .neorc heißen

  • 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
8if [ -f "${NEO_CONFIG}" ]; then
9        . "${NEO_CONFIG}" || die "Failed to source ${NEO_CONFIG}"
10elif [ -f "${HOME}"/.neorc ]; then
11        . "${HOME}"/.neorc || die "Failed to source ${HOME}/.neorc"
12elif [ -f /etc/neo.conf ]; then
13        . /etc/neo.conf || die "Failed to source /etc/neo.conf"
14else
15        echo "No configuration file found. Using default values, this might fail!"
16fi
17
18# Default paths
19PATH_XMODMAP=${PATH_XMODMAP:-/usr/bin/xmodmap}
20PATH_SETXKBMAP=${PATH_SETXKBMAP:-/usr/bin/setxkbmap}
21PATH_LOADKEYS=${PATH_LOADKEYS:-/usr/bin/loadkeys}
22PATH_SUDO=${PATH_SUDO:-/usr/bin/sudo}
23PATH_SETLEDS=${PATH_SETLEDS:-/usr/bin/setleds}
24PATH_NUMLOCKX=${PATH_NUMLOCKX:-/usr/bin/numlockx}
25PATH_XSET=${PATH_XSET:-/usr/bin/xset}
26
27# Default values
28NEO_X_VARIANTE=${NEO_X_VARIANTE:-xkbmap}
29NEO_XKBMAP=${NEO_XKBMAP:-de}
30NEO_XKBVARIANT=${NEO_XKBVARIANT:-neo}
31NEO_XMODMAP="${NEO_XMODMAP:-/usr/share/neo-layout/xmodmap/neo_de.xmodmap}"
32NEO_CONSOLE_KEYMAP="${NEO_CONSOLE_KEYMAP:-/usr/share/keymaps/i386/neo/neo.map}"
33
34die() {
35        echo "$@" >&2
36        exit 1
37}
38
39set_xmodmap() {
40        if [ -e "${PATH_XMODMAP}" ]; then
41                if [ -f "$@" ]; then
42                        "${PATH_XMODMAP}" "$@" || die "Failed to set xmodmap $@."
43                else
44                        die "Cannot use $@ for xmodmap."
45                fi
46        else
47                die "xmodmap not found, cannot set xmodmap."
48        fi
49}
50
51set_xkbmap() {
52        if [ -e "${PATH_SETXKBMAP}" ]; then
53                "${PATH_SETXKBMAP}" "$@" || die "Failed to select xkbmap $@."
54        else
55                die "setxkbmap not found, cannot set xkbmap."
56        fi
57}
58
59set_keymap() {
60        if [ -e "${PATH_LOADKEYS}" ]; then
61                if [ -f "$@" ]; then
62                        if [ "${EUID}" = 0 ]; then
63                                "${PATH_LOADKEYS}" "$@" || die "Failed to set keymap $@."
64                        elif [ -e "${PATH_SUDO}" ]; then
65                                "${PATH_SUDO}" "${PATH_LOADKEYS}" "$@" || die "Failed to set keymap using sudo."
66                        else
67                                die "You need root priviliges to change the keymap."
68                        fi
69                else
70                        die "keymap file $@ does not exist."
71                fi
72        else
73                die "loadkeys not found, cannot set keymap."
74        fi
75}
76
77if [ -n "$SSH_CONNECTION" ]; then
78        die "Cannot set keybord layout in a ssh session."
79fi
80
81if [ -z ${DISPLAY} ]; then
82        set_keymap "${NEO_CONSOLE_KEYMAP}"
83
84        if [ -e "${PATH_SETLEDS}" ]; then
85                "${PATH_SETLEDS}" -num || die "Failed to set NUM status."
86        else
87                die "setleds does not exist, cannot set NUM status."
88        fi
89else
90        if [ -e "${PATH_NUMLOCKX}" ]; then
91                "${PATH_NUMLOCKX}" off || die "Failed to turn off Numlock."
92        else
93                die "numlockx not found, cannot turn off Numlock."
94        fi
95
96        if [ -e "${PATH_XSET}" ]; then
97                for modifier in 51 94; do
98                        "${PATH_XSET}" -r ${modifier} || die "Failed to unset repeat for modifier ${modifier}."
99                done
100                for deadkey in 21 35 49; do
101                        "${PATH_XSET}" -r ${deadkey} || die "Failed to unset repeat for deadkey ${deakey}."
102                done
103        else
104                die "xset not found, cannot set modifiers and dead keys."
105        fi
106
107        case "${NEO_X_VARIANTE}" in
108                xkbmap)
109                        set_xkbmap "${NEO_XKBMAP}" "${NEO_XKBVARIANT}"
110                        ;;
111                xmodmap)
112                        set_xkbmap ie
113                        set_xmodmap "${NEO_XMODMAP}"
114                        ;;
115                *)
116                        die "Unknown Neo X variant ${NEO_X_VARIANTE}."
117                        ;;
118        esac
119fi
120
Note: See TracBrowser for help on using the browser.