Magellan Linux

Contents of /mcore-src/trunk/mcore-tools/daemon/client/include/input.client.class

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2040 - (show annotations) (download)
Wed Apr 17 14:17:26 2013 UTC (11 years ago) by niro
File size: 1764 byte(s)
-added systemd support and use systemd supported config file names
1 # $Id$
2
3 provide basic-input
4 require fluxbox
5
6 help_input_keymap()
7 {
8 mecho "get input.keymap"
9 mecho " prints current keymap of xorg"
10 mecho
11 mecho "set input.keymap [keymap]"
12 mecho " set keymap of xorg to [keymap]"
13 mecho " keymaps may be: de, us, en, gr, etc"
14 }
15
16 # set_input_mouse
17 set_input_mouse()
18 {
19 return 0
20 }
21
22 # set_input_keyboard
23 set_input_keyboard()
24 {
25 local value="$1"
26 local rate
27 local CONFIG="${MROOT}/${MCORE_CONFIG_PATH}/fluxbox/autostart/keyboard"
28
29 case ${value} in
30 slow) rate="1000 10" ;;
31 fast) rate="250 100" ;;
32 normal) rate="" ;;
33 *) help_input_keyboard && return 1 ;;
34 esac
35
36 clearconfig
37 addconfig "# ${value}"
38 addconfig "[startup] { nohup xset r rate ${rate} &}"
39
40 # rebuild autostart file
41 helper_rebuild_fluxbox_autostart
42
43 if [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]]
44 then
45 x11runas "xset r rate ${rate}"
46 fi
47 }
48
49 get_input_keymap()
50 {
51 local keymap
52 if [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]]
53 then
54 keymap=$(x11runas "setxkbmap -query" | grep layout | awk '{print $2}')
55 else
56 keymap=$(grep "Option.*XkbLayout" ${MROOT}/etc/X11/xorg.conf.d/00-keyboard.conf \
57 | sed -e 's:\"::' -e 's:.*XkbLayout\(.*\):\1:' -e 's:[\ \t]::g')
58 fi
59 rvecho "${keymap}"
60 }
61
62 # set_input_keyboard
63 set_input_keymap()
64 {
65 local value="$1"
66 local CONFIG="${MROOT}/etc/X11/xorg.conf.d/00-keyboard.conf"
67
68 [[ -z ${value} ]] && help_input_keymap && return 1
69
70 # systemd support
71 if [ -x $(type -P localectl) ]
72 then
73 localectl set-x11-keymap "${value}"
74 else
75 clearconfig
76 addconfig 'Section "InputClass"'
77 addconfig ' Identifier "keyboard layout"'
78 addconfig ' MatchIsKeyboard "on"'
79 addconfig " Option \"XkbLayout\" \"${value}\""
80 addconfig 'EndSection'
81 fi
82
83 if [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]]
84 then
85 x11runas "setxkbmap ${value}"
86 fi
87 }