slitaz-tools annotate tazbox/tazbox @ rev 569

tazbox: add locale and keymap config + up all POT files
author Christophe Lincoln <pankso@slitaz.org>
date Fri Apr 29 11:34:58 2011 +0200 (2011-04-29)
parents 1b852318ef51
children 01da82173a8c
rev   line source
pankso@553 1 #!/bin/sh
pankso@553 2 #
pankso@569 3 # SliTaz tiny GUI boxes for the desktop (su, logout, locale, etc)
pankso@569 4 # and as usual, please: KISS
pankso@553 5 #
paul@559 6 # Note: $(gettext "text") doesn't work inside Yad so use `gettext \"text\"`
pankso@553 7 #
pankso@553 8 # Copyright (C) 2011 SliTaz GNU/linux - GNU gpl v3
pankso@553 9 # - Christophe Lincoln <pankso@slitaz.org>
pankso@553 10 #
pankso@553 11
pankso@562 12 # Download dir (may be in a config file)
pankso@562 13 DOWNLOADS=$HOME/Downloads
pankso@562 14
pankso@553 15 # Internationalization
pankso@553 16 . /usr/bin/gettext.sh
pankso@553 17 TEXTDOMAIN='tazbox'
pankso@553 18 export TEXTDOMAIN
pankso@553 19
pankso@562 20 # Icons for most windows
pankso@562 21 icon=/usr/share/pixmaps/slitaz-menu.png
pankso@562 22
pankso@553 23 #
pankso@553 24 # Functions
pankso@553 25 #
pankso@553 26
pankso@553 27 usage() {
pankso@553 28 cat << EOT
pankso@553 29
pankso@553 30 $(gettext "Usage:") $(basename $0) [command]
pankso@553 31
pankso@553 32 $(gettext "Commands:")
pankso@553 33 usage $(gettext "Display this short help usage")
pankso@562 34 logout $(gettext "Desktop logout box with actions")
pankso@562 35 out $(gettext "Pipe a command output into a GTK window")
pankso@562 36 out-dl $(gettext "Pipe Wget output into a GTK window")
pankso@569 37 locale $(gettext "Configure system language")
pankso@569 38 keymap $(gettext "Configure system keymap")
pankso@553 39
pankso@553 40 EOT
pankso@553 41 }
pankso@553 42
pankso@569 43 # User may press cancel on download.
pankso@562 44 cancel_dl() {
pankso@562 45 if [ "$?" == 1 ]; then
pankso@562 46 echo "CANCEL"
pankso@562 47 rm -f $DOWNLOADS/$(basename $url)
pankso@562 48 fi
pankso@562 49 }
pankso@562 50
pankso@562 51 # Outup a command in a GTK window
pankso@562 52 output_command() {
pankso@562 53 yad --text-info --title="TazBox Output" --window-icon=$icon \
pankso@562 54 --geometry="560x210+0-24" --fore="#ffffff" --back="#000000"
pankso@562 55 }
pankso@562 56
pankso@553 57 # Logout GUI function
pankso@553 58 logout_main() {
pankso@553 59 text=$(gettext "SliTaz Logout. Please choose an action:")
pankso@562 60 yad --entry --title="SliTaz Logout" --window-icon=$icon \
pankso@553 61 --width=440 --height=150 --text="$text" \
pankso@553 62 --image="slitaz-menu" --image-on-top \
pankso@553 63 --center --on-top --entry-text \
pankso@553 64 "`gettext \"Close X session\"` : exit" \
pankso@553 65 "`gettext \"Reboot system\"` : reboot" \
pankso@553 66 "`gettext \"Shutdown system\"` : halt"
pankso@553 67 }
pankso@553 68
pankso@569 69 # Locale functions
pankso@569 70 locale_main() {
pankso@569 71 text=$(gettext "Language configuration")
pankso@569 72 db=/usr/share/i18n/locales
pankso@569 73 for locale in $(ls -1 $db | grep ^[a-z][a-z]_[A-Z][A-Z])
pankso@569 74 do
pankso@569 75 desc=$(grep ^title $db/$locale | cut -d '"' -f 2)
pankso@569 76 echo -e "$locale \n $desc"
pankso@569 77 done | \
pankso@569 78 yad --list $opts --title="SliTaz locale" --on-top \
pankso@569 79 --width=500 --height=380 --separator="" \
pankso@569 80 --image=preferences-desktop-locale --image-on-top \
pankso@569 81 --text="<b>$text</b>" --print-column=1 \
pankso@569 82 --column $(gettext "Name") --column $(gettext "Description")
pankso@569 83 }
pankso@569 84
pankso@569 85 locale() {
pankso@569 86 # Locale window with list
pankso@569 87 locale=$(locale_main)
pankso@569 88 # Deal with --button values
pankso@569 89 case $? in
pankso@569 90 1) exit 0 ;;
pankso@569 91 *) continue ;;
pankso@569 92 esac
pankso@569 93 # Deal with $locale values
pankso@569 94 [ "$locale" = "en" ] && locale="en_US"
pankso@569 95 # User language configuration is in ~/.profile
pankso@569 96 sed -i -e s"/LANG=.*/LANG=$locale/" \
pankso@569 97 -e s"/LC_ALL=.*/LC_ALL=$locale/" $HOME/.profile
pankso@569 98 # System language configuration via Tazlocale, on first boot
pankso@569 99 # we have root for root passwd so we can configure system locale
pankso@569 100 echo 'root' | su -c "tazlocale init $locale"
pankso@569 101 }
pankso@569 102
pankso@569 103 # Keymap functions
pankso@569 104 keymap_main() {
pankso@569 105 text=$(gettext "Keyborad configuration")
pankso@569 106 tmp=/tmp/keymap.list
pankso@569 107 echo > $tmp
pankso@569 108 cd /usr/share/kbd/keymaps/i386
pankso@569 109 # We first need a list to sort and then use \n fo Yad list.
pankso@569 110 for i in $(find *rty *rtz dvorak -name *.map.gz)
pankso@569 111 do
pankso@569 112 keymap=$(basename $i)
pankso@569 113 type=$(dirname $i)
pankso@569 114 echo -e "$keymap|$type" >> $tmp
pankso@569 115 done
pankso@569 116 for i in $(sort $tmp)
pankso@569 117 do
pankso@569 118 keymap=$(echo $i | cut -d "|" -f 1)
pankso@569 119 type=$(echo $i | cut -d "|" -f 2)
pankso@569 120 echo -e "${keymap%.map.gz} \n $type"
pankso@569 121 done | \
pankso@569 122 yad --list $opts --title="SliTaz locale" \
pankso@569 123 --width=500 --height=380 --separator="" \
pankso@569 124 --image=input-keyboard --image-on-top \
pankso@569 125 --text="<b>$text</b>" --print-column=1 \
pankso@569 126 --column $(gettext "Keymap") --column $(gettext "Type")
pankso@569 127 }
pankso@569 128
pankso@569 129 keymap() {
pankso@569 130 # Locale window with list
pankso@569 131 keymap=$(keymap_main)
pankso@569 132 # Deal with --button values
pankso@569 133 case $? in
pankso@569 134 1) exit 0 ;;
pankso@569 135 *) continue ;;
pankso@569 136 esac
pankso@569 137 [ "$keymap" ] && loadkeys $keymap
pankso@569 138 #setxkbmap $keymap
pankso@569 139 }
pankso@569 140
pankso@553 141 #
pankso@553 142 # Commands
pankso@553 143 #
pankso@553 144 case "$1" in
pankso@553 145 su)
pankso@562 146 # Execute a command as root
pankso@553 147 echo "TODO" ;;
pankso@553 148 logout)
pankso@562 149 # Lougout window with actions
pankso@562 150 main=`logout_main`
pankso@553 151 # Deal with --button values
pankso@553 152 case $? in
pankso@553 153 1) exit 0 ;;
pankso@553 154 *) continue ;;
pankso@553 155 esac
pankso@553 156 # Deal with $main values
pankso@553 157 case "$main" in
pankso@553 158 *exit) openbox --exit || jwm -exit ;;
pankso@553 159 *reboot) reboot ;;
pankso@553 160 *halt) poweroff ;;
pankso@553 161 esac ;;
pankso@562 162 out)
pankso@562 163 # Pipe a command into a GTK window
pankso@562 164 output_command ;;
pankso@562 165 dl-out)
pankso@562 166 # A tiny GTK window for Busybox wget output
pankso@562 167 url=$2
pankso@562 168 busybox wget -c -P $DOWNLOADS $url 2>&1 | output_command
pankso@562 169 cancel_dl ;;
pankso@569 170 locale)
pankso@569 171 locale ;;
pankso@569 172 keymap)
pankso@569 173 keymap ;;
pankso@569 174 i18n)
pankso@569 175 # This command is used at first login to configure user
pankso@569 176 # environment.
pankso@569 177 locale
pankso@569 178 keymap ;;
pankso@553 179 *)
pankso@553 180 usage ;;
pankso@553 181 esac
pankso@553 182
pankso@553 183 exit 0