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 2398 - (show annotations) (download)
Fri Aug 28 09:39:30 2015 UTC (8 years, 8 months ago) by niro
File size: 2076 byte(s)
-honor Xorg with all pidof instances
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
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 ${MCORE_LIBDIR}/fluxbox-autostart --add --name keyboard --exec 'nohup xset r rate ${rate} &' --comment '${value}' &&
36 ${MCORE_LIBDIR}/fluxbox-rebuild-autostart
37
38 if [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]]
39 then
40 x11runas "xset r rate ${rate}"
41 fi
42 }
43
44 get_input_keymap()
45 {
46 local keymap
47 if [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]] && [[ -n $(pidof X) ]] || [[ -n $(pidof Xorg) ]]
48 then
49 keymap=$(x11runas "setxkbmap -query" | grep layout | awk '{print $2}')
50 else
51 keymap=$(grep "Option.*XkbLayout" ${MROOT}/etc/X11/xorg.conf.d/00-keyboard.conf \
52 | sed -e 's:\"::g' -e 's:.*XkbLayout\(.*\):\1:' -e 's:[\ \t]::g')
53 fi
54 rvecho "${keymap}"
55 }
56
57 # set_input_keyboard
58 set_input_keymap()
59 {
60 local value="${CLASS_ARGV[0]}"
61 local CONFIG
62
63 [[ -z ${value} ]] && help_input_keymap && return 1
64
65 # systemd support
66 if [ -x $(type -P localectl) ] && [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]]
67 then
68 # console keymap
69 localectl set-keymap "${value}"
70 # x11 keymaps
71 localectl set-x11-keymap "${value}"
72 else
73 CONFIG="${MROOT}@@SYSCONFDIR@@/vconsole.conf"
74 clearconfig
75 addconfig "KEYMAP=\"${value}\""
76 addconfig 'FONT="lat9w-16"'
77 addconfig 'FONT_MAP="8851-1_to_uni"'
78
79 CONFIG="${MROOT}@@SYSCONFDIR@@/X11/xorg.conf.d/00-keyboard.conf"
80 clearconfig
81 addconfig 'Section "InputClass"'
82 addconfig ' Identifier "keyboard layout"'
83 addconfig ' MatchIsKeyboard "on"'
84 addconfig " Option \"XkbLayout\" \"${value}\""
85 addconfig 'EndSection'
86 fi
87
88 if [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]]
89 then
90 x11runas "setxkbmap ${value}"
91 fi
92 }