Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2059 - (hide annotations) (download)
Wed May 8 12:39:51 2013 UTC (11 years ago) by niro
Original Path: mcore-src/trunk/mcore-tools/daemon/client/include/input.client.class
File size: 1857 byte(s)
get_input_keymap(): only run setxkbmap if X11 is running, if not always try to get the keymap from the xorg.config
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 1921 local value="$1"
26     local rate
27 niro 2025 local CONFIG="${MROOT}/${MCORE_CONFIG_PATH}/fluxbox/autostart/keyboard"
28 niro 1921
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 niro 2025 if [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]]
44     then
45     x11runas "xset r rate ${rate}"
46     fi
47 niro 1248 }
48    
49 niro 1921 get_input_keymap()
50     {
51     local keymap
52 niro 2059 if [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]] && pidof X &> /dev/null
53 niro 2025 then
54     keymap=$(x11runas "setxkbmap -query" | grep layout | awk '{print $2}')
55     else
56 niro 2040 keymap=$(grep "Option.*XkbLayout" ${MROOT}/etc/X11/xorg.conf.d/00-keyboard.conf \
57 niro 2025 | sed -e 's:\"::' -e 's:.*XkbLayout\(.*\):\1:' -e 's:[\ \t]::g')
58     fi
59     rvecho "${keymap}"
60 niro 1921 }
61    
62 niro 1248 # set_input_keyboard
63     set_input_keymap()
64     {
65     local value="$1"
66 niro 2040 local CONFIG="${MROOT}/etc/X11/xorg.conf.d/00-keyboard.conf"
67 niro 1248
68     [[ -z ${value} ]] && help_input_keymap && return 1
69    
70 niro 2040 # systemd support
71     if [ -x $(type -P localectl) ]
72     then
73 niro 2058 # console keymap
74     localectl set-keymap "${value}"
75     # x11 keymaps
76 niro 2040 localectl set-x11-keymap "${value}"
77     else
78     clearconfig
79     addconfig 'Section "InputClass"'
80     addconfig ' Identifier "keyboard layout"'
81     addconfig ' MatchIsKeyboard "on"'
82     addconfig " Option \"XkbLayout\" \"${value}\""
83     addconfig 'EndSection'
84     fi
85 niro 1248
86 niro 2025 if [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]]
87     then
88     x11runas "setxkbmap ${value}"
89     fi
90 niro 1248 }