slitaz-tools annotate tinyutils/tazx @ rev 252

Fix spelling, typos, wording, etc.
author Mike D. Smith <MikeDSmith25@gmail.com>
date Sat Jul 19 06:35:45 2008 +0000 (2008-07-19)
parents 6ecc94a22bf5
children 116184aa30ee
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@117 30 # Install xorg server
pankso@117 31 install_xorg()
pankso@117 32 {
pankso@117 33 tazpkg recharge
pankso@117 34 exec 3>&1
pankso@117 35 value=`$DIALOG --clear --colors --title " Install Xorg " \
pankso@117 36 --menu \
pankso@117 37 "L'application 'tazx' permet de configurer le driver X." 16 70 5 \
pankso@117 38 $(grep xorg-xf86-video /var/lib/tazpkg/packages.list | cut -d- -f4 | while read x; do echo $x; echo driver; done) \
pankso@117 39 "quit" "Quitter" \
pankso@117 40 2>&1 1>&3`
pankso@117 41 retval=$?
pankso@117 42 exec 3>&-
pankso@117 43 # Continue, exit...
pankso@117 44 case $retval in
pankso@117 45 1)
pankso@117 46 echo "Cancel pressed..."
pankso@117 47 exit 0 ;;
pankso@117 48 255)
pankso@117 49 if test -z "$value"; then
pankso@117 50 echo "ESC pressed..."
pankso@117 51 exit 0
pankso@117 52 fi ;;
pankso@117 53 esac
pankso@117 54 # Set selected value.
pankso@117 55 case $value in
pankso@117 56 quit)
pankso@117 57 echo "Quit..."
pankso@117 58 exit 0 ;;
pankso@117 59 *)
pankso@117 60 tazpkg get-install xorg-server
pankso@117 61 tazpkg get-install xorg-xf86-video-$value
pascal@124 62 Xorg -configure :1
pankso@117 63 mv /root/xorg.conf.new /etc/X11/xorg.conf
pankso@203 64 . /etc/keymap.conf
pascal@120 65 patch -p0 <<EOF
pascal@120 66 --- /etc/X11/xorg.conf
pascal@120 67 +++ /etc/X11/xorg.conf
pascal@120 68 @@ -30,2 +30,3 @@
pascal@120 69 Driver "kbd"
pascal@120 70 + Option "XkbLayout" "${KMAP%.kmap}"
pascal@120 71 EndSection
pascal@120 72 EOF
pankso@117 73 sed -i 's|/usr/bin/Xvesa|/usr/bin/Xorg|' /etc/slim.conf
pankso@117 74 sed -i s/"^xserver_arguments"/'\#xserver_arguments'/ /etc/slim.conf
pankso@117 75 XSERVER=Xorg;;
pankso@117 76 esac
pankso@117 77 }
pankso@117 78
pankso@66 79 # Screen configuration dialog.
pankso@66 80 screen_config_dialog()
pankso@66 81 {
pankso@66 82 exec 3>&1
pankso@66 83 value=`$DIALOG --help-button \
pankso@66 84 --clear --colors \
pankso@66 85 --title " Configure X " \
pankso@66 86 --menu \
pankso@66 87 "L'application 'tazx' permet de configurer une session X.\n\
pankso@66 88 Gestionnaire de fenêtres : \Z2$WM\Zn" 16 70 5 \
pankso@118 89 $(Xvesa -listmodes 2>&1 | grep ^0x | awk '{ printf "%s %s\n",$2,$3 }' | sort -nr | grep x[1-2][4-6]) \
pankso@66 90 "xterm" "800x600x16" \
pankso@117 91 "xorg" "Installer Xorg" \
pankso@66 92 "quit" "Quitter" \
pankso@66 93 2>&1 1>&3`
pankso@66 94 retval=$?
pankso@66 95 exec 3>&-
pankso@66 96 # Continue, exit or help...
pankso@66 97 case $retval in
pankso@66 98 0)
pankso@66 99 continue ;;
pankso@66 100 1)
pankso@66 101 echo "Cancel pressed..."
pankso@66 102 exit 0 ;;
pankso@66 103 2)
pankso@66 104 $DIALOG --clear \
pankso@66 105 --title " Aide - Help " --textbox "$DOC" 16 70
pankso@66 106 exec tazx ;;
pankso@66 107 255)
pankso@66 108 if test -n "$value"; then
pankso@66 109 continue
pankso@66 110 else
pankso@66 111 echo "ESC pressed..."
pankso@66 112 exit 0
pankso@66 113 fi ;;
pankso@66 114 esac
pankso@66 115 # Set selected value.
pankso@66 116 case $value in
pankso@117 117 xorg)
pankso@117 118 install_xorg;;
pankso@66 119 xterm)
pankso@66 120 Xvesa -ac -shadow -screen 800x600x16 -br &
pankso@66 121 exec xterm -cr orange -geometry 80x35+0-0 ;;
pankso@66 122 *)
pankso@68 123 NEW_SCREEN=$value ;;
pankso@66 124 esac
pankso@66 125 }
pankso@4 126
pankso@65 127 # Slim config if root.
pankso@66 128 slim_config()
pankso@66 129 {
pankso@66 130 if test $(id -u) = 0; then
pankso@68 131 # /etc/X11/screen.conf exist for Live mode, if this file dos not
pankso@68 132 # exist tazx is executed at boot time.
pankso@68 133 mkdir -p /etc/X11
pankso@68 134 echo "SCREEN=$NEW_SCREEN" > /etc/X11/screen.conf
pankso@67 135 # Get current screen size and sed config file with the new value.
pankso@66 136 if [ -f /etc/slim.conf ]; then
pankso@67 137 RES=$(grep ^xserver_arguments /etc/slim.conf | sed 's/xserver_arguments.*-screen *//')
pankso@69 138 sed -i "s/\(xserver_arguments.*-screen\).*/\1 $NEW_SCREEN/" /etc/slim.conf
pankso@66 139 fi
pankso@66 140 JWM_CONFIG=/etc/jwm/system.jwmrc
pankso@65 141 fi
pankso@66 142 }
pankso@66 143
pankso@66 144 # e17 start with enlightenment_start.
pankso@66 145 e17_stuff()
pankso@66 146 {
pankso@66 147 if [ "$WM" == "e17" ]; then
pankso@66 148 WM=enlightenment_start
pankso@66 149 XSEVER_OPTS="dpms -terminate"
pankso@65 150 fi
pankso@66 151 }
pankso@65 152
pankso@81 153 # Openbox with openbox-session.
pankso@81 154 openbox_stuff()
pankso@81 155 {
pankso@81 156 if [ "$WM" == "openbox" -o "$WM" == "ob" ]; then
pankso@81 157 WM=openbox-session
pankso@158 158 XSEVER_OPTS="dpms +extension Composite"
pankso@81 159 fi
MikeDSmith25@252 160 # Check if a personal autostart script exists if OB is installed.
pankso@81 161 if [ -d "/var/lib/tazpkg/installed/openbox" ]; then
pankso@81 162 if [ ! -f "$HOME/.config/openbox/autostart.sh" ]; then
pankso@81 163 mkdir -p $HOME/.config/openbox
pankso@81 164 cp /etc/xdg/openbox/autostart.sh $HOME/.config/openbox
pankso@81 165 fi
pankso@209 166 # Script for default user (uid=1000).
pankso@209 167 if [ ! -f "/home/$USER/.config/openbox/autostart.sh" ]; then
pankso@209 168 mkdir -p /home/$USER/.config/openbox
pankso@209 169 cp /etc/xdg/openbox/autostart.sh /home/$USER/.config/openbox
pankso@81 170 fi
pankso@209 171 if [ ! -f "/home/$USER/.config/openbox/menu.xml" ]; then
pankso@209 172 mkdir -p /home/$USER/.config/openbox
pankso@209 173 cp /etc/xdg/openbox/menu.xml /home/$USER/.config/openbox
pankso@158 174 fi
pankso@209 175 chown -R $USER.$USER /home/$USER/.config
pankso@81 176 fi
pankso@81 177 }
pankso@81 178
pankso@68 179 # Sample xinitrc for user (WM can be specified with F1 at slim login).
pankso@68 180 xinitrc_sample()
pankso@68 181 {
pankso@68 182 cat > $FILE << "EOF"
pankso@68 183 # ~/.xinitrc: Executed by slim login manager to startx X session.
pankso@203 184 # You can use F1 with Slim or 'tazx' to configure permanantly
pankso@99 185 # your default WM: tazx e17
pankso@68 186 #
pankso@162 187 WM=openbox-session
pankso@99 188
pankso@117 189 case $1 in
pankso@68 190 e17|enlightenment_start)
pankso@68 191 exec enlightenment_start
pankso@68 192 ;;
pankso@162 193 openbox|openbox-session|ob)
pankso@81 194 exec openbox-session
pankso@81 195 ;;
pankso@117 196 jwm)
pankso@81 197 lxpanel &
pankso@68 198 exec jwm
pankso@68 199 ;;
pankso@117 200 *)
pankso@117 201 exec $WM
pankso@117 202 ;;
pankso@68 203 esac
pankso@68 204 EOF
pankso@122 205 # Set default WM.
pankso@122 206 RES=`grep ^WM=[e-o] $FILE`
pankso@122 207 sed -i s/"$RES"/"WM=$WM"/ $FILE
pankso@68 208 }
pankso@68 209
pankso@65 210 # ~/.xinitrc for slim login.
pankso@66 211 creat_xinitrc()
pankso@66 212 {
pankso@68 213 FILE=$HOME/.xinitrc
pankso@68 214 xinitrc_sample
pankso@203 215
pankso@209 216 # In Live mode default user needs a xinitrc, since tazx
pankso@68 217 # is executed only by root.
pankso@209 218 if [ ! -f /home/$USER/.xinitrc ]; then
pankso@209 219 FILE=/home/$USER/.xinitrc
pankso@68 220 xinitrc_sample
pankso@209 221 chown $USER.$USER $FILE
pankso@66 222 fi
pankso@66 223 }
pankso@65 224
pankso@66 225 # Copy a JWM system config if any present in user home.
pankso@66 226 jwm_config()
pankso@66 227 {
pankso@162 228 if [ -d "/var/lib/tazpkg/installed/jwm" ]; then
pankso@162 229 JWM_CONFIG=$HOME/.jwmrc
pankso@162 230 if [ ! -f "$JWM_CONFIG" ]; then
pankso@162 231 cp /etc/jwm/system.jwmrc $JWM_CONFIG
pankso@162 232 fi
pankso@209 233 # In Live mode default user/root JWM config dose not exist and
pankso@209 234 # $HOME is ot set, this is because tazx is executed by boot
pankso@209 235 # scripts.
pankso@209 236 if [ ! -f "/home/$USER/.jwmrc" ]; then
pankso@209 237 JWM_CONFIG=/home/$USER/.jwmrc
pankso@162 238 cp /etc/jwm/system.jwmrc $JWM_CONFIG
pankso@209 239 chown $USER.$USER $JWM_CONFIG
pankso@162 240 fi
pankso@162 241 if [ ! -f "/root/.jwmrc" -a `id -u` = 0 ]; then
pankso@162 242 JWM_CONFIG=/root/.jwmrc
pankso@162 243 cp /etc/jwm/system.jwmrc $JWM_CONFIG
pankso@162 244 fi
pankso@105 245 fi
pankso@66 246 }
pankso@45 247
MikeDSmith25@252 248 # Create ~/.xsession to keep the configuration selected (used
MikeDSmith25@252 249 # only by startx, Slim login manager uses .xinitrc).
pankso@66 250 creat_xsession()
pankso@66 251 {
pankso@68 252 cat > $HOME/.xsession << _EOF_
pankso@68 253 # ~/.xsession: Start X window session manually on your system (startx).
pankso@37 254 #
pankso@68 255 _EOF_
pankso@117 256 if [ "$XSERVER " == "Xorg" ]; then
pankso@117 257 echo 'Xorg &' >> $HOME/.xsession
pankso@117 258 else
pankso@117 259 echo "$XSERVER -ac -shadow $XSEVER_OPTS -screen $NEW_SCREEN -mouse $MOUSE &" \
pankso@117 260 >> $HOME/.xsession
pankso@117 261 fi
pankso@117 262 echo '#xterm &' >> $HOME/.xsession
pankso@117 263 echo '#xpad &' >> $HOME/.xsession
pankso@99 264 # LXpanel by default with JWM.
pankso@117 265 if [ "$WM" = "jwm" ]; then
pankso@99 266 echo 'lxpanel &' >> $HOME/.xsession
pankso@99 267 fi
pankso@104 268 echo "exec $WM" >> $HOME/.xsession
pankso@66 269 chmod 700 $HOME/.xsession
pankso@66 270 }
pankso@4 271
pankso@66 272 ###################
pankso@66 273 # Tazx sequence #
pankso@66 274 ###################
pankso@66 275
pascal@96 276 [ -n "$NEW_SCREEN" ] || screen_config_dialog
pankso@66 277 slim_config
pankso@66 278 e17_stuff
pankso@81 279 openbox_stuff
pankso@66 280 creat_xinitrc
pankso@66 281 jwm_config
pankso@66 282 creat_xsession
pankso@4 283
pankso@4 284 exit 0