slitaz-tools annotate tinyutils/tazkeymap @ rev 813

Current state, features stabilized and open for bugfixes and translations.
author Aleksej Bobylev <al.bobylev@gmail.com>
date Mon Sep 09 03:27:04 2013 +0300 (2013-09-09)
parents 494b03aad433
children c79e656b37a5
rev   line source
pankso@166 1 #!/bin/sh
pankso@166 2 #
pankso@166 3 # Tazkeymap - SliTaz GNU/Linux keymap config using loadkeys and dialog boxes.
pankso@752 4 # Configuration file is: /etc/keymap.conf
pankso@192 5 #
al@813 6 # Copyright (C) 2008-2013 SliTaz GNU/Linux - BSD License
pankso@752 7 #
pankso@752 8 # Author: Christophe Lincoln <pankso@slitaz.org>
pankso@166 9 #
pankso@752 10 . /lib/libtaz.sh
al@813 11 export TEXTDOMAIN='slitaz-tools' #i18n
pankso@623 12
pankso@752 13 # List all keymaps.
pankso@752 14 list_keymaps() {
pankso@752 15 cd /usr/share/kbd/keymaps/i386
pankso@752 16 # We first need a list to sort and then use \n for Yad list.
al@813 17 for i in $(find *rty *rtz dvorak -name *.map.gz); do
pankso@752 18 keymap=$(basename $i)
pankso@752 19 type=$(dirname $i)
pankso@752 20 echo "${keymap%.map.gz} $type"
pankso@752 21 done
pankso@752 22 }
pankso@166 23
pankso@572 24 # Load the selected kmap file from /usr/share/kbd/keymaps or Busybox kmaps.
pankso@572 25 load_keymap() {
pankso@572 26 if [ -x /bin/loadkeys ]; then
pankso@572 27 loadkeys $kmap
pankso@572 28 else
pankso@572 29 loadkmap < /usr/share/kmap/$kmap.kmap
pankso@572 30 fi
pankso@572 31 }
pankso@166 32
pankso@752 33 # Config /etc/keymap.conf
pankso@752 34 system_config() {
pankso@752 35 #gettext "Setting system keymap to:"; echo -n " $kmap"
pankso@752 36 echo "$kmap" > /etc/keymap.conf
pankso@752 37 #status
pankso@752 38 }
pankso@752 39
pankso@572 40 case "$1" in
pankso@752 41 info)
al@813 42 _n 'Config file:'; echo " /etc/keymap.conf"
al@813 43 _n 'Current keymap:'; echo " $(cat /etc/keymap.conf)" ;;
pankso@752 44 list)
pankso@752 45 list_keymaps | sort ;;
pankso@752 46 "")
pankso@572 47 # Default to text mode dialog.
pankso@753 48 : ${DIALOG=dialog}
pankso@753 49 check_root
pankso@572 50 exec 3>&1
pankso@752 51 value=$($DIALOG --clear \
al@813 52 --title " $(_n 'SliTaz keymap configuration') " \
pankso@623 53 --menu "" 15 70 5 \
pankso@752 54 $(list_keymaps | sort) \
pankso@752 55 2>&1 1>&3)
pankso@572 56 retval=$?
pankso@572 57 exec 3>&-
pankso@572 58 case $retval in
pankso@623 59 0) continue ;;
pankso@623 60 1|255) exit 0 ;;
pankso@572 61 esac
pankso@572 62 # If it's a reconfiguration give an info message.
pankso@572 63 if [ -s /etc/keymap.conf ]; then
al@813 64 $DIALOG --clear --title " $(_n 'Information') " \
al@813 65 --msgbox "$(_n 'Please logout of your current session and login again to use new keyboard.')" 16 70
pankso@572 66 fi
pankso@572 67 kmap=$value
pankso@752 68 system_config
pankso@752 69 load_keymap ;;
pankso@752 70 *)
pankso@752 71 # Used to configure keymap from cmdline or scripts
pankso@752 72 kmap=$1
pankso@753 73 check_root
pankso@752 74 system_config
pankso@572 75 load_keymap ;;
pankso@166 76 esac
pankso@166 77
pankso@166 78 exit 0