slitaz-tools annotate tinyutils/tazkeymap @ rev 939
tazbox: fix subox icon when ~/.local/share/applications is absent; fix working with freegeoip; write full list of icons used; all other files: 2015 and insert blank lines.
author | Aleksej Bobylev <al.bobylev@gmail.com> |
---|---|
date | Fri Apr 17 07:35:02 2015 +0300 (2015-04-17) |
parents | 5bb075010572 |
children | 3be081525506 |
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@939 | 6 # Copyright (C) 2008-2015 SliTaz GNU/Linux - BSD License |
pankso@752 | 7 # |
pankso@752 | 8 # Author: Christophe Lincoln <pankso@slitaz.org> |
pankso@166 | 9 # |
al@939 | 10 |
pankso@752 | 11 . /lib/libtaz.sh |
al@813 | 12 export TEXTDOMAIN='slitaz-tools' #i18n |
pankso@623 | 13 |
al@939 | 14 |
pankso@752 | 15 # List all keymaps. |
al@939 | 16 |
pankso@752 | 17 list_keymaps() { |
pankso@752 | 18 cd /usr/share/kbd/keymaps/i386 |
pankso@752 | 19 # We first need a list to sort and then use \n for Yad list. |
al@813 | 20 for i in $(find *rty *rtz dvorak -name *.map.gz); do |
pankso@752 | 21 keymap=$(basename $i) |
pankso@752 | 22 type=$(dirname $i) |
pankso@752 | 23 echo "${keymap%.map.gz} $type" |
pankso@752 | 24 done |
pankso@752 | 25 } |
pankso@166 | 26 |
al@939 | 27 |
pankso@572 | 28 # Load the selected kmap file from /usr/share/kbd/keymaps or Busybox kmaps. |
al@939 | 29 |
pankso@572 | 30 load_keymap() { |
pankso@572 | 31 if [ -x /bin/loadkeys ]; then |
pankso@572 | 32 loadkeys $kmap |
pankso@572 | 33 else |
pankso@572 | 34 loadkmap < /usr/share/kmap/$kmap.kmap |
pankso@572 | 35 fi |
pankso@572 | 36 } |
pankso@166 | 37 |
al@939 | 38 |
pankso@879 | 39 # Config /etc/keymap.conf and update Xorg keyboard config |
al@939 | 40 |
pankso@752 | 41 system_config() { |
pankso@752 | 42 echo "$kmap" > /etc/keymap.conf |
pankso@879 | 43 tazx keyboard |
pankso@752 | 44 } |
pankso@752 | 45 |
al@939 | 46 |
pankso@572 | 47 case "$1" in |
pankso@752 | 48 info) |
al@813 | 49 _n 'Config file:'; echo " /etc/keymap.conf" |
al@813 | 50 _n 'Current keymap:'; echo " $(cat /etc/keymap.conf)" ;; |
pankso@752 | 51 list) |
pankso@752 | 52 list_keymaps | sort ;; |
pankso@752 | 53 "") |
pankso@572 | 54 # Default to text mode dialog. |
pascal@916 | 55 : ${DIALOG=dialog --timeout 60} |
pankso@753 | 56 check_root |
pankso@572 | 57 exec 3>&1 |
pankso@752 | 58 value=$($DIALOG --clear \ |
pankso@837 | 59 --title "{ $(_n 'SliTaz keyboard setting') }" \ |
pankso@837 | 60 --menu "" 20 72 14 \ |
pankso@752 | 61 $(list_keymaps | sort) \ |
pankso@752 | 62 2>&1 1>&3) |
pankso@572 | 63 retval=$? |
pankso@572 | 64 exec 3>&- |
pankso@572 | 65 case $retval in |
pankso@623 | 66 0) continue ;; |
pankso@623 | 67 1|255) exit 0 ;; |
pankso@572 | 68 esac |
pankso@572 | 69 # If it's a reconfiguration give an info message. |
pankso@572 | 70 if [ -s /etc/keymap.conf ]; then |
al@813 | 71 $DIALOG --clear --title " $(_n 'Information') " \ |
al@813 | 72 --msgbox "$(_n 'Please logout of your current session and login again to use new keyboard.')" 16 70 |
pankso@572 | 73 fi |
pankso@572 | 74 kmap=$value |
pankso@752 | 75 system_config |
pankso@752 | 76 load_keymap ;; |
pankso@752 | 77 *) |
pankso@752 | 78 # Used to configure keymap from cmdline or scripts |
pankso@752 | 79 kmap=$1 |
pankso@753 | 80 check_root |
pankso@752 | 81 system_config |
pankso@572 | 82 load_keymap ;; |
pankso@166 | 83 esac |
pankso@166 | 84 |
pankso@166 | 85 exit 0 |