slitaz-tools annotate tinyutils/tazx @ rev 65

Support slim config with tazx
author Christophe Lincoln <pankso@slitaz.org>
date Fri Feb 22 19:51:43 2008 +0100 (2008-02-22)
parents 6e50cf1c3f92
children b7cf20bb05db
rev   line source
pankso@4 1 #!/bin/sh
pankso@4 2 #
pankso@4 3 # Tazx - Ncurses startx script for SliTaz GNU/Linux using Dialog boxes.
pankso@4 4 # This tinyutils is part of slitaz-tools.
pankso@4 5 #
pankso@49 6 # 20080205 <pankso@slitaz.org> - GNU gpl v3.
pankso@4 7 #
pankso@4 8 : ${DIALOG=dialog}
pankso@4 9
pankso@4 10 # Variables.
pankso@4 11 XSERVER=Xvesa
pankso@4 12 DOC=/usr/share/doc/slitaz-tools/tazx.txt
pankso@4 13 MOUSE=/dev/input/mice,5
pankso@46 14 # WM can be specified on cmdline.
pankso@46 15 if [ -n "$1" ]; then
pankso@46 16 WM=$1
pankso@46 17 else
pankso@46 18 WM=jwm
pankso@46 19 fi
pankso@4 20
pankso@65 21 # Change backgroud image if the 3/4 is not respected.
pankso@65 22 change_jwm_background()
pankso@65 23 {
pankso@65 24 if echo $NEW_SCREEN | grep -q '1280x1024'; then
pankso@65 25 sed -i s/'1024x768.png'/'1280x1024.png'/ $JWM_CONFIG
pankso@65 26 fi
pankso@65 27 if echo $NEW_SCREEN | grep -q '1024x768'; then
pankso@65 28 sed -i s/'1280x1024.png'/'1024x768.png'/ $JWM_CONFIG
pankso@65 29 fi
pankso@65 30 if echo $NEW_SCREEN | grep -q '1280x800'; then
pankso@65 31 sed -i s/'1024x768.png'/'1280x800.png'/ $JWM_CONFIG
pankso@65 32 fi
pankso@65 33 }
pankso@65 34
pankso@45 35 # Main dialog.
pankso@4 36 exec 3>&1
pankso@4 37 value=`$DIALOG --help-button \
pankso@45 38 --clear --colors \
pankso@45 39 --title " Configure X " \
pankso@41 40 --menu \
pankso@45 41 "L'application 'tazx' permet de configurer votre session X.\n\
pankso@45 42 Gestionnaire de fenêtres : \Z2$WM\Zn" 16 70 5 \
pankso@49 43 "640x400x16" "TrueColor" \
pankso@49 44 "640x400x24" "TrueColor" \
pankso@37 45 "640x480x16" "TrueColor" \
pankso@37 46 "640x480x24" "TrueColor" \
pankso@37 47 "800x600x16" "TrueColor" \
pankso@37 48 "800x600x24" "TrueColor" \
pankso@37 49 "1024x768x16" "TrueColor" \
pankso@37 50 "1024x768x24" "TrueColor" \
pankso@45 51 "1280x800x16" "TrueColor" \
pankso@45 52 "1280x800x24" "TrueColor" \
pankso@37 53 "1280x1024x16" "TrueColor" \
pankso@37 54 "1280x1024x24" "TrueColor" \
pankso@37 55 "1600x1200x16" "TrueColor" \
pankso@37 56 "1600x1200x24" "TrueColor" \
pankso@37 57 "1920x1440x16" "TrueColor" \
pankso@40 58 "xterm" "800x600x16" \
pankso@40 59 "quit" "Quitter" \
pankso@4 60 2>&1 1>&3`
pankso@4 61 retval=$?
pankso@4 62 exec 3>&-
pankso@4 63
pankso@45 64 # Continue, exit or help...
pankso@4 65 case $retval in
pankso@41 66 0)
pankso@41 67 continue ;;
pankso@41 68 1)
pankso@41 69 echo "Cancel pressed..."
pankso@41 70 exit 0 ;;
pankso@41 71 2)
pankso@41 72 $DIALOG --clear \
pankso@41 73 --title " Aide - Help " --textbox "$DOC" 15 70
pankso@41 74 exec tazx ;;
pankso@41 75 255)
pankso@41 76 if test -n "$value"; then
pankso@45 77 continue
pankso@41 78 else
pankso@41 79 echo "ESC pressed..."
pankso@41 80 exit 0
pankso@41 81 fi ;;
pankso@4 82 esac
pankso@4 83
pankso@4 84 # Set selected value.
pankso@4 85 case $value in
pankso@37 86 xterm)
pankso@49 87 Xvesa -ac -shadow -screen 800x600x16 -br &
pankso@45 88 exec xterm -cr orange -geometry 80x35+0-0 ;;
pankso@37 89 *)
pankso@65 90 NEW_SCREEN=$value ;;
pankso@4 91 esac
pankso@4 92
pankso@65 93 # Slim config if root.
pankso@65 94 if test $(id -u) = 0; then
pankso@65 95 # Get current screen size or set default to 1024x768x24 to sed
pankso@65 96 # config file with the new value.
pankso@65 97 if [ -f /etc/X11/screen.conf ]; then
pankso@65 98 . /etc/X11/screen.conf
pankso@65 99 else
pankso@65 100 SCREEN=1024x768x24
pankso@65 101 fi
pankso@65 102 if [ -f /etc/slim.conf ]; then
pankso@65 103 mkdir -p /etc/X11
pankso@65 104 echo "SCREEN=$NEW_SCREEN" > /etc/X11/screen.conf
pankso@65 105 sed -i s/"$SCREEN"/"$NEW_SCREEN"/ /etc/slim.conf
pankso@65 106 fi
pankso@65 107 JWM_CONFIG=/etc/jwm/system.jwmrc
pankso@65 108 change_jwm_background
pankso@65 109 fi
pankso@65 110
pankso@65 111 # ~/.xinitrc for slim login.
pankso@65 112 echo "$WM" > $HOME/.xinitrc
pankso@65 113
pankso@45 114 # Copy a JWM system config if any present in user home
pankso@41 115 if [ ! -f "$HOME/.jwmrc" ]; then
pankso@4 116 cp /etc/jwm/system.jwmrc $HOME/.jwmrc
pankso@18 117 fi
pankso@65 118 JWM_CONFIG=$HOME/.jwmrc
pankso@65 119 change_jwm_background
pankso@45 120
pankso@45 121 # e17 start with enlightenment_start.
pankso@45 122 if [ "$WM" == "e17" ]; then
pankso@45 123 WM=enlightenment_start
pankso@45 124 XSEVER_OPTS="dpms -terminate"
pankso@45 125 fi
pankso@4 126
pankso@4 127 # Creat ~/.xsession to keep the configuration selected.
pankso@4 128 #
pankso@45 129 cat > $HOME/.xsession << _EOT_
pankso@37 130 # ~/.xsession: Start X window session on your system.
pankso@37 131 #
pankso@65 132 $XSERVER -ac -shadow $XSEVER_OPTS -screen $NEW_SCREEN -mouse $MOUSE &
pankso@65 133 #xterm &
pankso@37 134 #xpad &
pankso@37 135 exec $WM
pankso@45 136 _EOT_
pankso@4 137 chmod 700 $HOME/.xsession
pankso@4 138
pankso@45 139 # Console messages.
pankso@65 140 echo ""
pankso@45 141 echo "X server : $XSERVER"
pankso@65 142 echo "Screen : $NEW_SCREEN"
pankso@45 143 echo "Exec WM : $WM"
pankso@45 144 echo ""
pankso@4 145
pankso@4 146 exit 0