slitaz-tools annotate tinyutils/tazx @ rev 334

tazx: translate help messages
author Paul Issott <paul@slitaz.org>
date Sun Apr 26 13:50:45 2009 +0000 (2009-04-26)
parents af65458ca488
children 777b680060ec
rev   line source
pankso@4 1 #!/bin/sh
pankso@4 2 #
pankso@66 3 # Tazx - Ncurses X configuration for SliTaz GNU/Linux using Dialog boxes.
pankso@4 4 # This tinyutils is part of slitaz-tools.
pankso@4 5 #
pankso@209 6 # (c) 20080609 SliTaz GNU/Linux - GNU gpl v3.
pankso@209 7 # Authors: Christophe Lincoln <pankso@slitaz.org>
pankso@209 8 # Pascal Bellard <pascal.bellard@slitaz.org>
pankso@4 9 #
pascal@190 10 : ${DIALOG=tazdialog}
pankso@4 11
pankso@4 12 # Variables.
pankso@66 13 #
pankso@4 14 XSERVER=Xvesa
pankso@4 15 DOC=/usr/share/doc/slitaz-tools/tazx.txt
pankso@4 16 MOUSE=/dev/input/mice,5
pankso@46 17 # WM can be specified on cmdline.
pankso@46 18 if [ -n "$1" ]; then
pankso@46 19 WM=$1
pankso@46 20 else
pankso@158 21 WM=openbox
pankso@46 22 fi
pankso@209 23 # Default user for config files
pankso@209 24 USER=`cat /etc/passwd | grep 1000 | cut -d ":" -f 1`
pankso@4 25
pankso@66 26 ####################
pankso@66 27 # Tazx functions #
pankso@66 28 ####################
pankso@66 29
pankso@260 30 # Patch xorg.conf to set keymap layout.
pankso@260 31 patch_xorg_kbd()
pankso@260 32 {
pankso@260 33 KEYMAP=`cat /etc/keymap.conf`
pankso@260 34 case $KEYMAP in
pankso@260 35 fr_CH-latin1)
pankso@260 36 # Swiss FrenCH
pankso@260 37 patch -p0 <<EOF
pankso@260 38 --- /etc/X11/xorg.conf
pankso@260 39 +++ /etc/X11/xorg.conf
pankso@260 40 @@ -30,2 +30,3 @@
pankso@260 41 Driver "kbd"
pankso@260 42 + Option "XkbLayout" "ch"
pankso@260 43 + Option "XkbVariant" "fr"
pankso@260 44 EndSection
pankso@260 45 EOF
pankso@260 46 ;;
pankso@260 47 en)
pankso@260 48 # Englisk UK
pankso@260 49 patch -p0 <<EOF
pankso@260 50 --- /etc/X11/xorg.conf
pankso@260 51 +++ /etc/X11/xorg.conf
pankso@260 52 @@ -30,2 +30,3 @@
pankso@260 53 Driver "kbd"
pankso@260 54 + Option "XkbLayout" "en"
pankso@260 55 + Option "XkbVariant" "en"
pankso@260 56 EndSection
pankso@260 57 EOF
pankso@260 58 ;;
pankso@260 59 ru)
pankso@260 60 # Russian
pankso@260 61 patch -p0 <<EOF
pankso@260 62 --- /etc/X11/xorg.conf
pankso@260 63 +++ /etc/X11/xorg.conf
pankso@260 64 @@ -30,2 +30,3 @@
pankso@260 65 Driver "kbd"
pankso@260 66 + Option "XkbLayout" "us,ru(winkeys)"
pankso@260 67 + Option "XkbVariant" "grp:alt_shift_toggle"
pankso@260 68 EndSection
pankso@260 69 EOF
pankso@260 70 ;;
pankso@303 71 slovene)
pankso@303 72 # Slovenian
pankso@303 73 patch -p0 <<EOF
pankso@303 74 --- /etc/X11/xorg.conf
pankso@303 75 +++ /etc/X11/xorg.conf
pankso@303 76 @@ -30,2 +30,3 @@
pankso@303 77 Driver "kbd"
pankso@303 78 + Option "XkbLayout" "si"
pankso@303 79 + Option "XkbOptions" "grp:alt_shift_toggle"
pankso@303 80 EndSection
pankso@303 81 EOF
pankso@308 82 ;;
pankso@260 83 *)
pankso@260 84 # Use clean /etc/keymap.conf value.
pankso@260 85 KEYMAP=${KEYMAP%-latin1}
pankso@260 86 KEYMAP=${KEYMAP%-lat2}
pankso@260 87 KEYMAP=${KEYMAP%-lat6}
pankso@260 88 KEYMAP=${KEYMAP%-abnt2}
pankso@260 89 patch -p0 <<EOF
pankso@260 90 --- /etc/X11/xorg.conf
pankso@260 91 +++ /etc/X11/xorg.conf
pankso@260 92 @@ -30,2 +30,3 @@
pankso@260 93 Driver "kbd"
pankso@260 94 + Option "XkbLayout" "$KEYMAP"
pankso@260 95 EndSection
pankso@260 96 EOF
pankso@260 97 ;;
pankso@260 98 esac
pankso@260 99 }
pankso@260 100
pankso@117 101 # Install xorg server
pankso@117 102 install_xorg()
pankso@117 103 {
pankso@117 104 tazpkg recharge
pankso@117 105 exec 3>&1
pankso@117 106 value=`$DIALOG --clear --colors --title " Install Xorg " \
pankso@117 107 --menu \
paul@334 108 "The 'tazx' application helps you to select your X driver." 16 70 5 \
pankso@117 109 $(grep xorg-xf86-video /var/lib/tazpkg/packages.list | cut -d- -f4 | while read x; do echo $x; echo driver; done) \
pankso@117 110 "quit" "Quitter" \
pankso@117 111 2>&1 1>&3`
pankso@117 112 retval=$?
pankso@117 113 exec 3>&-
pankso@117 114 # Continue, exit...
pankso@117 115 case $retval in
pankso@117 116 1)
pankso@117 117 echo "Cancel pressed..."
pankso@117 118 exit 0 ;;
pankso@117 119 255)
pankso@117 120 if test -z "$value"; then
pankso@117 121 echo "ESC pressed..."
pankso@117 122 exit 0
pankso@117 123 fi ;;
pankso@117 124 esac
pankso@117 125 # Set selected value.
pankso@117 126 case $value in
pankso@117 127 quit)
pankso@117 128 echo "Quit..."
pankso@117 129 exit 0 ;;
pankso@117 130 *)
pankso@117 131 tazpkg get-install xorg-server
pankso@117 132 tazpkg get-install xorg-xf86-video-$value
pascal@124 133 Xorg -configure :1
pankso@117 134 mv /root/xorg.conf.new /etc/X11/xorg.conf
pankso@260 135 patch_xorg_kbd
pankso@117 136 sed -i 's|/usr/bin/Xvesa|/usr/bin/Xorg|' /etc/slim.conf
pankso@117 137 sed -i s/"^xserver_arguments"/'\#xserver_arguments'/ /etc/slim.conf
pankso@117 138 XSERVER=Xorg;;
pankso@117 139 esac
pankso@117 140 }
pankso@117 141
pankso@66 142 # Screen configuration dialog.
pankso@66 143 screen_config_dialog()
pankso@66 144 {
pankso@66 145 exec 3>&1
pankso@66 146 value=`$DIALOG --help-button \
pankso@66 147 --clear --colors \
pankso@66 148 --title " Configure X " \
pankso@66 149 --menu \
paul@334 150 "The 'tazx' application helps you to configure your X session.\n\
paul@334 151 Window Manager : \Z2$WM\Zn" 16 70 5 \
pankso@118 152 $(Xvesa -listmodes 2>&1 | grep ^0x | awk '{ printf "%s %s\n",$2,$3 }' | sort -nr | grep x[1-2][4-6]) \
pankso@66 153 "xterm" "800x600x16" \
pankso@117 154 "xorg" "Installer Xorg" \
pankso@66 155 "quit" "Quitter" \
pankso@66 156 2>&1 1>&3`
pankso@66 157 retval=$?
pankso@66 158 exec 3>&-
pankso@66 159 # Continue, exit or help...
pankso@66 160 case $retval in
pankso@66 161 0)
pankso@66 162 continue ;;
pankso@66 163 1)
pankso@66 164 echo "Cancel pressed..."
pankso@66 165 exit 0 ;;
pankso@66 166 2)
pankso@66 167 $DIALOG --clear \
pankso@66 168 --title " Aide - Help " --textbox "$DOC" 16 70
pankso@66 169 exec tazx ;;
pankso@66 170 255)
pankso@66 171 if test -n "$value"; then
pankso@66 172 continue
pankso@66 173 else
pankso@66 174 echo "ESC pressed..."
pankso@66 175 exit 0
pankso@66 176 fi ;;
pankso@66 177 esac
pankso@66 178 # Set selected value.
pankso@66 179 case $value in
pankso@117 180 xorg)
pankso@117 181 install_xorg;;
pankso@66 182 xterm)
pankso@66 183 Xvesa -ac -shadow -screen 800x600x16 -br &
pankso@66 184 exec xterm -cr orange -geometry 80x35+0-0 ;;
pankso@66 185 *)
pankso@68 186 NEW_SCREEN=$value ;;
pankso@66 187 esac
pankso@66 188 }
pankso@4 189
pankso@65 190 # Slim config if root.
pankso@66 191 slim_config()
pankso@66 192 {
pankso@66 193 if test $(id -u) = 0; then
paul@317 194 # /etc/X11/screen.conf exists for Live mode, if this file does not
pankso@68 195 # exist tazx is executed at boot time.
pankso@68 196 mkdir -p /etc/X11
pankso@68 197 echo "SCREEN=$NEW_SCREEN" > /etc/X11/screen.conf
pankso@67 198 # Get current screen size and sed config file with the new value.
pankso@66 199 if [ -f /etc/slim.conf ]; then
pankso@67 200 RES=$(grep ^xserver_arguments /etc/slim.conf | sed 's/xserver_arguments.*-screen *//')
pankso@69 201 sed -i "s/\(xserver_arguments.*-screen\).*/\1 $NEW_SCREEN/" /etc/slim.conf
pankso@66 202 fi
pankso@66 203 JWM_CONFIG=/etc/jwm/system.jwmrc
pankso@65 204 fi
pankso@66 205 }
pankso@66 206
pankso@66 207 # e17 start with enlightenment_start.
pankso@66 208 e17_stuff()
pankso@66 209 {
pankso@66 210 if [ "$WM" == "e17" ]; then
pankso@66 211 WM=enlightenment_start
pankso@66 212 XSEVER_OPTS="dpms -terminate"
pankso@65 213 fi
pankso@66 214 }
pankso@65 215
pankso@315 216 # dwm start with dwm-session.
pankso@315 217 dwm_stuff()
pankso@315 218 {
pankso@315 219 if [ "$WM" == "dwm" ]; then
pankso@315 220 WM=dwm-session
pankso@315 221 XSEVER_OPTS="dpms"
pankso@315 222 fi
pankso@315 223 }
pankso@315 224
pankso@81 225 # Openbox with openbox-session.
pankso@81 226 openbox_stuff()
pankso@81 227 {
pankso@81 228 if [ "$WM" == "openbox" -o "$WM" == "ob" ]; then
pankso@81 229 WM=openbox-session
pankso@158 230 XSEVER_OPTS="dpms +extension Composite"
pankso@81 231 fi
MikeDSmith25@252 232 # Check if a personal autostart script exists if OB is installed.
pankso@81 233 if [ -d "/var/lib/tazpkg/installed/openbox" ]; then
pankso@81 234 if [ ! -f "$HOME/.config/openbox/autostart.sh" ]; then
pankso@81 235 mkdir -p $HOME/.config/openbox
pankso@81 236 cp /etc/xdg/openbox/autostart.sh $HOME/.config/openbox
pankso@81 237 fi
pankso@209 238 # Script for default user (uid=1000).
pankso@209 239 if [ ! -f "/home/$USER/.config/openbox/autostart.sh" ]; then
pankso@209 240 mkdir -p /home/$USER/.config/openbox
pankso@209 241 cp /etc/xdg/openbox/autostart.sh /home/$USER/.config/openbox
pankso@81 242 fi
pankso@209 243 if [ ! -f "/home/$USER/.config/openbox/menu.xml" ]; then
pankso@209 244 mkdir -p /home/$USER/.config/openbox
pankso@209 245 cp /etc/xdg/openbox/menu.xml /home/$USER/.config/openbox
pankso@158 246 fi
pankso@209 247 chown -R $USER.$USER /home/$USER/.config
pankso@81 248 fi
pankso@81 249 }
pankso@81 250
pankso@68 251 # Sample xinitrc for user (WM can be specified with F1 at slim login).
pankso@68 252 xinitrc_sample()
pankso@68 253 {
pankso@68 254 cat > $FILE << "EOF"
pankso@68 255 # ~/.xinitrc: Executed by slim login manager to startx X session.
paul@317 256 # You can use F1 with Slim or 'tazx' to configure permanently
pankso@99 257 # your default WM: tazx e17
pankso@68 258 #
pankso@162 259 WM=openbox-session
pankso@99 260
pankso@117 261 case $1 in
pankso@68 262 e17|enlightenment_start)
pankso@315 263 exec enlightenment_start ;;
pankso@162 264 openbox|openbox-session|ob)
pankso@315 265 exec openbox-session ;;
pankso@315 266 dwm|dwm-session)
pankso@315 267 exec dwm-session ;;
pankso@117 268 jwm)
pankso@81 269 lxpanel &
pankso@315 270 exec jwm ;;
pankso@117 271 *)
pankso@315 272 exec $WM ;;
pankso@68 273 esac
pankso@68 274 EOF
pankso@122 275 # Set default WM.
pankso@122 276 RES=`grep ^WM=[e-o] $FILE`
pankso@122 277 sed -i s/"$RES"/"WM=$WM"/ $FILE
pankso@68 278 }
pankso@68 279
pankso@65 280 # ~/.xinitrc for slim login.
pankso@66 281 creat_xinitrc()
pankso@66 282 {
pankso@68 283 FILE=$HOME/.xinitrc
pankso@68 284 xinitrc_sample
pankso@203 285
pankso@209 286 # In Live mode default user needs a xinitrc, since tazx
pankso@68 287 # is executed only by root.
pankso@209 288 if [ ! -f /home/$USER/.xinitrc ]; then
pankso@209 289 FILE=/home/$USER/.xinitrc
pankso@68 290 xinitrc_sample
pankso@209 291 chown $USER.$USER $FILE
pankso@66 292 fi
pankso@66 293 }
pankso@65 294
pankso@66 295 # Copy a JWM system config if any present in user home.
pankso@66 296 jwm_config()
pankso@66 297 {
pankso@162 298 if [ -d "/var/lib/tazpkg/installed/jwm" ]; then
pankso@162 299 JWM_CONFIG=$HOME/.jwmrc
pankso@162 300 if [ ! -f "$JWM_CONFIG" ]; then
pankso@162 301 cp /etc/jwm/system.jwmrc $JWM_CONFIG
pankso@162 302 fi
paul@334 303 # In Live mode default user/root JWM config does not exist and
paul@334 304 # $HOME is not set, this is because tazx is executed by boot
pankso@209 305 # scripts.
pankso@209 306 if [ ! -f "/home/$USER/.jwmrc" ]; then
pankso@209 307 JWM_CONFIG=/home/$USER/.jwmrc
pankso@162 308 cp /etc/jwm/system.jwmrc $JWM_CONFIG
pankso@209 309 chown $USER.$USER $JWM_CONFIG
pankso@162 310 fi
pankso@162 311 if [ ! -f "/root/.jwmrc" -a `id -u` = 0 ]; then
pankso@162 312 JWM_CONFIG=/root/.jwmrc
pankso@162 313 cp /etc/jwm/system.jwmrc $JWM_CONFIG
pankso@162 314 fi
pankso@105 315 fi
pankso@66 316 }
pankso@45 317
MikeDSmith25@252 318 # Create ~/.xsession to keep the configuration selected (used
MikeDSmith25@252 319 # only by startx, Slim login manager uses .xinitrc).
pankso@66 320 creat_xsession()
pankso@66 321 {
pankso@68 322 cat > $HOME/.xsession << _EOF_
pankso@68 323 # ~/.xsession: Start X window session manually on your system (startx).
pankso@37 324 #
pankso@68 325 _EOF_
pankso@117 326 if [ "$XSERVER " == "Xorg" ]; then
pankso@117 327 echo 'Xorg &' >> $HOME/.xsession
pankso@117 328 else
pankso@117 329 echo "$XSERVER -ac -shadow $XSEVER_OPTS -screen $NEW_SCREEN -mouse $MOUSE &" \
pankso@117 330 >> $HOME/.xsession
pankso@117 331 fi
pankso@117 332 echo '#xterm &' >> $HOME/.xsession
pankso@117 333 echo '#xpad &' >> $HOME/.xsession
pankso@99 334 # LXpanel by default with JWM.
pankso@117 335 if [ "$WM" = "jwm" ]; then
pankso@99 336 echo 'lxpanel &' >> $HOME/.xsession
pankso@99 337 fi
pankso@104 338 echo "exec $WM" >> $HOME/.xsession
pankso@66 339 chmod 700 $HOME/.xsession
pankso@66 340 }
pankso@4 341
pankso@66 342 ###################
pankso@66 343 # Tazx sequence #
pankso@66 344 ###################
pankso@66 345
pascal@96 346 [ -n "$NEW_SCREEN" ] || screen_config_dialog
pankso@66 347 slim_config
pankso@66 348 e17_stuff
pankso@315 349 dwm_stuff
pankso@81 350 openbox_stuff
pankso@66 351 creat_xinitrc
pankso@66 352 jwm_config
pankso@66 353 creat_xsession
pankso@4 354
pankso@4 355 exit 0