slitaz-tools annotate tinyutils/tazx @ rev 66

Improved tazx and clean code
author Christophe Lincoln <pankso@slitaz.org>
date Fri Feb 22 22:57:37 2008 +0100 (2008-02-22)
parents 24536a8294f8
children f08ba67c03a6
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@66 6 # 20080222 <pankso@slitaz.org> - GNU gpl v3.
pankso@4 7 #
pankso@4 8 : ${DIALOG=dialog}
pankso@4 9
pankso@4 10 # Variables.
pankso@66 11 #
pankso@4 12 XSERVER=Xvesa
pankso@4 13 DOC=/usr/share/doc/slitaz-tools/tazx.txt
pankso@4 14 MOUSE=/dev/input/mice,5
pankso@46 15 # WM can be specified on cmdline.
pankso@46 16 if [ -n "$1" ]; then
pankso@46 17 WM=$1
pankso@46 18 else
pankso@46 19 WM=jwm
pankso@46 20 fi
pankso@4 21
pankso@66 22 ####################
pankso@66 23 # Tazx functions #
pankso@66 24 ####################
pankso@66 25
pankso@65 26 # Change backgroud image if the 3/4 is not respected.
pankso@65 27 change_jwm_background()
pankso@65 28 {
pankso@65 29 if echo $NEW_SCREEN | grep -q '1280x1024'; then
pankso@65 30 sed -i s/'1024x768.png'/'1280x1024.png'/ $JWM_CONFIG
pankso@65 31 fi
pankso@65 32 if echo $NEW_SCREEN | grep -q '1024x768'; then
pankso@65 33 sed -i s/'1280x1024.png'/'1024x768.png'/ $JWM_CONFIG
pankso@65 34 fi
pankso@65 35 if echo $NEW_SCREEN | grep -q '1280x800'; then
pankso@65 36 sed -i s/'1024x768.png'/'1280x800.png'/ $JWM_CONFIG
pankso@65 37 fi
pankso@65 38 }
pankso@65 39
pankso@66 40 # Screen configuration dialog.
pankso@66 41 screen_config_dialog()
pankso@66 42 {
pankso@66 43 exec 3>&1
pankso@66 44 value=`$DIALOG --help-button \
pankso@66 45 --clear --colors \
pankso@66 46 --title " Configure X " \
pankso@66 47 --menu \
pankso@66 48 "L'application 'tazx' permet de configurer une session X.\n\
pankso@66 49 Gestionnaire de fenêtres : \Z2$WM\Zn" 16 70 5 \
pankso@66 50 "640x400x16" "TrueColor" \
pankso@66 51 "640x400x24" "TrueColor" \
pankso@66 52 "640x480x16" "TrueColor" \
pankso@66 53 "640x480x24" "TrueColor" \
pankso@66 54 "800x600x16" "TrueColor" \
pankso@66 55 "800x600x24" "TrueColor" \
pankso@66 56 "1024x768x16" "TrueColor" \
pankso@66 57 "1024x768x24" "TrueColor" \
pankso@66 58 "1280x800x16" "TrueColor" \
pankso@66 59 "1280x800x24" "TrueColor" \
pankso@66 60 "1280x1024x16" "TrueColor" \
pankso@66 61 "1280x1024x24" "TrueColor" \
pankso@66 62 "1600x1200x16" "TrueColor" \
pankso@66 63 "1600x1200x24" "TrueColor" \
pankso@66 64 "1920x1440x16" "TrueColor" \
pankso@66 65 "xterm" "800x600x16" \
pankso@66 66 "quit" "Quitter" \
pankso@66 67 2>&1 1>&3`
pankso@66 68 retval=$?
pankso@66 69 exec 3>&-
pankso@66 70 # Continue, exit or help...
pankso@66 71 case $retval in
pankso@66 72 0)
pankso@66 73 continue ;;
pankso@66 74 1)
pankso@66 75 echo "Cancel pressed..."
pankso@66 76 exit 0 ;;
pankso@66 77 2)
pankso@66 78 $DIALOG --clear \
pankso@66 79 --title " Aide - Help " --textbox "$DOC" 16 70
pankso@66 80 exec tazx ;;
pankso@66 81 255)
pankso@66 82 if test -n "$value"; then
pankso@66 83 continue
pankso@66 84 else
pankso@66 85 echo "ESC pressed..."
pankso@66 86 exit 0
pankso@66 87 fi ;;
pankso@66 88 esac
pankso@66 89 # Set selected value.
pankso@66 90 case $value in
pankso@66 91 xterm)
pankso@66 92 Xvesa -ac -shadow -screen 800x600x16 -br &
pankso@66 93 exec xterm -cr orange -geometry 80x35+0-0 ;;
pankso@66 94 *)
pankso@66 95 NEW_SCREEN=$value ;;
pankso@66 96 esac
pankso@66 97 }
pankso@4 98
pankso@65 99 # Slim config if root.
pankso@66 100 slim_config()
pankso@66 101 {
pankso@66 102 if test $(id -u) = 0; then
pankso@66 103 # Get current screen size or set default to 1024x768x24 to sed
pankso@66 104 # config file with the new value.
pankso@66 105 if [ -f /etc/X11/screen.conf ]; then
pankso@66 106 . /etc/X11/screen.conf
pankso@66 107 else
pankso@66 108 SCREEN=1024x768x24
pankso@66 109 fi
pankso@66 110 if [ -f /etc/slim.conf ]; then
pankso@66 111 mkdir -p /etc/X11
pankso@66 112 echo "SCREEN=$NEW_SCREEN" > /etc/X11/screen.conf
pankso@66 113 sed -i s/"$SCREEN"/"$NEW_SCREEN"/ /etc/slim.conf
pankso@66 114 fi
pankso@66 115 JWM_CONFIG=/etc/jwm/system.jwmrc
pankso@66 116 change_jwm_background
pankso@65 117 fi
pankso@66 118 }
pankso@66 119
pankso@66 120 # e17 start with enlightenment_start.
pankso@66 121 e17_stuff()
pankso@66 122 {
pankso@66 123 if [ "$WM" == "e17" ]; then
pankso@66 124 WM=enlightenment_start
pankso@66 125 XSEVER_OPTS="dpms -terminate"
pankso@65 126 fi
pankso@66 127 }
pankso@65 128
pankso@65 129 # ~/.xinitrc for slim login.
pankso@66 130 creat_xinitrc()
pankso@66 131 {
pankso@66 132 echo "$WM" > $HOME/.xinitrc
pankso@66 133 if [ ! -f /home/hacker/.xinitrc ]; then
pankso@66 134 echo "$WM" > /home/hacker/.xinitrc
pankso@66 135 chown hacker.hacker /home/hacker/.xinitrc
pankso@66 136 fi
pankso@66 137 }
pankso@65 138
pankso@66 139 # Copy a JWM system config if any present in user home.
pankso@66 140 jwm_config()
pankso@66 141 {
pankso@66 142 if [ ! -f "$HOME/.jwmrc" ]; then
pankso@66 143 cp /etc/jwm/system.jwmrc $HOME/.jwmrc
pankso@66 144 JWM_CONFIG=$HOME/.jwmrc
pankso@66 145 change_jwm_background
pankso@66 146 fi
pankso@66 147 # In Live mode hacker JWM config dose not exist, this is
pankso@66 148 # because tazx is executed at boot time by root.
pankso@66 149 if [ ! -f "/home/hacker/.jwmrc" ]; then
pankso@66 150 cp /etc/jwm/system.jwmrc /home/hacker/.jwmrc
pankso@66 151 JWM_CONFIG=/home/hacker/.jwmrc
pankso@66 152 change_jwm_background
pankso@66 153 chown hacker.hacker $JWM_CONFIG
pankso@66 154 fi
pankso@66 155 }
pankso@45 156
pankso@66 157 # Creat ~/.xsession to keep the configuration selected (used
pankso@66 158 # only by startx, Slim login manager use .xinitrc).
pankso@66 159 creat_xsession()
pankso@66 160 {
pankso@66 161 cat > $HOME/.xsession << _EOT_
pankso@37 162 # ~/.xsession: Start X window session on your system.
pankso@37 163 #
pankso@65 164 $XSERVER -ac -shadow $XSEVER_OPTS -screen $NEW_SCREEN -mouse $MOUSE &
pankso@65 165 #xterm &
pankso@37 166 #xpad &
pankso@37 167 exec $WM
pankso@45 168 _EOT_
pankso@66 169 chmod 700 $HOME/.xsession
pankso@66 170 }
pankso@4 171
pankso@66 172 # Console message.
pankso@66 173 console_message()
pankso@66 174 {
pankso@66 175 echo ""
pankso@66 176 echo "X server : $XSERVER"
pankso@66 177 echo "Screen : $NEW_SCREEN"
pankso@66 178 echo "Exec WM : $WM"
pankso@66 179 echo ""
pankso@66 180 }
pankso@66 181
pankso@66 182 ###################
pankso@66 183 # Tazx sequence #
pankso@66 184 ###################
pankso@66 185
pankso@66 186 screen_config_dialog
pankso@66 187 slim_config
pankso@66 188 e17_stuff
pankso@66 189 creat_xinitrc
pankso@66 190 jwm_config
pankso@66 191 creat_xsession
pankso@66 192 console_message
pankso@4 193
pankso@4 194 exit 0