Annotation of /mcore-src/trunk/mcore-tools/src/modules/basic-input/input.client.class.in
Parent Directory | Revision Log
Revision 2346 -
(hide annotations)
(download)
Tue Jul 15 08:31:30 2014 UTC (9 years, 10 months ago) by niro
File size: 2051 byte(s)
Tue Jul 15 08:31:30 2014 UTC (9 years, 10 months ago) by niro
File size: 2051 byte(s)
-honor MROOT if localectl exist
1 | niro | 1248 | # $Id$ |
2 | |||
3 | provide basic-input | ||
4 | niro | 1921 | require fluxbox |
5 | niro | 1248 | |
6 | help_input_keymap() | ||
7 | { | ||
8 | niro | 1921 | mecho "get input.keymap" |
9 | mecho " prints current keymap of xorg" | ||
10 | mecho | ||
11 | niro | 1248 | mecho "set input.keymap [keymap]" |
12 | niro | 1921 | mecho " set keymap of xorg to [keymap]" |
13 | mecho " keymaps may be: de, us, en, gr, etc" | ||
14 | niro | 1248 | } |
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 | niro | 2269 | local value="${CLASS_ARGV[0]}" |
26 | niro | 1921 | local rate |
27 | |||
28 | case ${value} in | ||
29 | slow) rate="1000 10" ;; | ||
30 | fast) rate="250 100" ;; | ||
31 | normal) rate="" ;; | ||
32 | *) help_input_keyboard && return 1 ;; | ||
33 | esac | ||
34 | |||
35 | niro | 2283 | ${MCORE_LIBDIR}/fluxbox-autostart --add --name keyboard --exec 'nohup xset r rate ${rate} &' --comment '${value}' && |
36 | ${MCORE_LIBDIR}/fluxbox-rebuild-autostart | ||
37 | niro | 1921 | |
38 | niro | 2025 | if [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]] |
39 | then | ||
40 | x11runas "xset r rate ${rate}" | ||
41 | fi | ||
42 | niro | 1248 | } |
43 | |||
44 | niro | 1921 | get_input_keymap() |
45 | { | ||
46 | local keymap | ||
47 | niro | 2059 | if [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]] && pidof X &> /dev/null |
48 | niro | 2025 | then |
49 | keymap=$(x11runas "setxkbmap -query" | grep layout | awk '{print $2}') | ||
50 | else | ||
51 | niro | 2040 | keymap=$(grep "Option.*XkbLayout" ${MROOT}/etc/X11/xorg.conf.d/00-keyboard.conf \ |
52 | niro | 2060 | | sed -e 's:\"::g' -e 's:.*XkbLayout\(.*\):\1:' -e 's:[\ \t]::g') |
53 | niro | 2025 | fi |
54 | rvecho "${keymap}" | ||
55 | niro | 1921 | } |
56 | |||
57 | niro | 1248 | # set_input_keyboard |
58 | set_input_keymap() | ||
59 | { | ||
60 | niro | 2269 | local value="${CLASS_ARGV[0]}" |
61 | niro | 2097 | local CONFIG |
62 | niro | 1248 | |
63 | [[ -z ${value} ]] && help_input_keymap && return 1 | ||
64 | |||
65 | niro | 2040 | # systemd support |
66 | niro | 2346 | if [ -x $(type -P localectl) ] && [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]] |
67 | niro | 2040 | then |
68 | niro | 2058 | # console keymap |
69 | localectl set-keymap "${value}" | ||
70 | # x11 keymaps | ||
71 | niro | 2040 | localectl set-x11-keymap "${value}" |
72 | else | ||
73 | niro | 2197 | CONFIG="${MROOT}@@SYSCONFDIR@@/vconsole.conf" |
74 | niro | 2040 | clearconfig |
75 | niro | 2097 | addconfig "KEYMAP=\"${value}\"" |
76 | addconfig 'FONT="lat9w-16"' | ||
77 | addconfig 'FONT_MAP="8851-1_to_uni"' | ||
78 | |||
79 | niro | 2197 | CONFIG="${MROOT}@@SYSCONFDIR@@/X11/xorg.conf.d/00-keyboard.conf" |
80 | niro | 2097 | clearconfig |
81 | niro | 2040 | addconfig 'Section "InputClass"' |
82 | addconfig ' Identifier "keyboard layout"' | ||
83 | addconfig ' MatchIsKeyboard "on"' | ||
84 | addconfig " Option \"XkbLayout\" \"${value}\"" | ||
85 | addconfig 'EndSection' | ||
86 | fi | ||
87 | niro | 1248 | |
88 | niro | 2025 | if [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]] |
89 | then | ||
90 | x11runas "setxkbmap ${value}" | ||
91 | fi | ||
92 | niro | 1248 | } |