slitaz-tools annotate tinyutils/tazkeymap @ rev 837
Add slitaz-config and same size for tazkeymap, tazlocale, tazx
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Mon Mar 17 22:23:32 2014 +0100 (2014-03-17) |
parents | c79e656b37a5 |
children | 3dd4838c69c6 |
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 # |
pascal@821 | 6 # Copyright (C) 2008-2014 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 \ |
pankso@837 | 52 --title "{ $(_n 'SliTaz keyboard setting') }" \ |
pankso@837 | 53 --menu "" 20 72 14 \ |
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 |