# $Id$ provide basic-input require fluxbox help_input_keymap() { mecho "get input.keymap" mecho " prints current keymap of xorg" mecho mecho "set input.keymap [keymap]" mecho " set keymap of xorg to [keymap]" mecho " keymaps may be: de, us, en, gr, etc" } # set_input_mouse set_input_mouse() { return 0 } # set_input_keyboard set_input_keyboard() { local value="${CLASS_ARGV[0]}" local rate case ${value} in slow) rate="1000 10" ;; fast) rate="250 100" ;; normal) rate="" ;; *) help_input_keyboard && return 1 ;; esac if is_provided fluxbox then ${MCORE_LIBDIR}/fluxbox-autostart --add --name keyboard --exec 'nohup xset r rate ${rate} &' --comment '${value}' && ${MCORE_LIBDIR}/fluxbox-rebuild-autostart fi if [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]] then x11runas "xset r rate ${rate}" fi } get_input_keymap() { local keymap if [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]] && [[ -n $(pidof X) ]] || [[ -n $(pidof Xorg) ]] then keymap=$(x11runas "setxkbmap -query" | grep layout | awk '{print $2}') else keymap=$(grep "Option.*XkbLayout" ${MROOT}/etc/X11/xorg.conf.d/00-keyboard.conf \ | sed -e 's:\"::g' -e 's:.*XkbLayout\(.*\):\1:' -e 's:[\ \t]::g') fi rvecho "${keymap}" } # set_input_keyboard set_input_keymap() { local value="${CLASS_ARGV[0]}" local CONFIG [[ -z ${value} ]] && help_input_keymap && return 1 # systemd support if [ -x $(type -P localectl) ] && [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]] then # console keymap localectl set-keymap "${value}" # x11 keymaps localectl set-x11-keymap "${value}" else CONFIG="${MROOT}@@SYSCONFDIR@@/vconsole.conf" clearconfig addconfig "KEYMAP=\"${value}\"" CONFIG="${MROOT}@@SYSCONFDIR@@/X11/xorg.conf.d/00-keyboard.conf" clearconfig addconfig 'Section "InputClass"' addconfig ' Identifier "keyboard layout"' addconfig ' MatchIsKeyboard "on"' addconfig " Option \"XkbLayout\" \"${value}\"" addconfig 'EndSection' fi if [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]] then x11runas "setxkbmap ${value}" fi }