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 |