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 |