Magellan Linux

Contents of /mcore-src/trunk/mcore-tools/src/modules/basic-input/input.client.class.in

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2269 - (show annotations) (download)
Tue Jan 14 10:34:57 2014 UTC (10 years, 3 months ago) by niro
File size: 2071 byte(s)
-use global argv arrays GLOBAL_ARGV and CLASS_ARGV to fix whitespace issues with the read cmd. escaping works with this now. every class must use the CLASS_ARGV array for arguments
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="${CLASS_ARGV[0]}"
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} = / ]] && pidof X &> /dev/null
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:\"::g' -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="${CLASS_ARGV[0]}"
66 local CONFIG
67
68 [[ -z ${value} ]] && help_input_keymap && return 1
69
70 # systemd support
71 if [ -x $(type -P localectl) ]
72 then
73 # console keymap
74 localectl set-keymap "${value}"
75 # x11 keymaps
76 localectl set-x11-keymap "${value}"
77 else
78 CONFIG="${MROOT}@@SYSCONFDIR@@/vconsole.conf"
79 clearconfig
80 addconfig "KEYMAP=\"${value}\""
81 addconfig 'FONT="lat9w-16"'
82 addconfig 'FONT_MAP="8851-1_to_uni"'
83
84 CONFIG="${MROOT}@@SYSCONFDIR@@/X11/xorg.conf.d/00-keyboard.conf"
85 clearconfig
86 addconfig 'Section "InputClass"'
87 addconfig ' Identifier "keyboard layout"'
88 addconfig ' MatchIsKeyboard "on"'
89 addconfig " Option \"XkbLayout\" \"${value}\""
90 addconfig 'EndSection'
91 fi
92
93 if [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]]
94 then
95 x11runas "setxkbmap ${value}"
96 fi
97 }