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