slitaz-tools annotate tinyutils/tazx @ rev 68

Gen a nice .xinitrc and rm console end msgs in tazx
author Christophe Lincoln <pankso@slitaz.org>
date Sat Feb 23 10:37:06 2008 +0100 (2008-02-23)
parents f08ba67c03a6
children 0fd5a7bdf689
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@67 31 sed -i s/'1280x800.png'/'1280x1024.png'/ $JWM_CONFIG
pankso@65 32 fi
pankso@65 33 if echo $NEW_SCREEN | grep -q '1024x768'; then
pankso@65 34 sed -i s/'1280x1024.png'/'1024x768.png'/ $JWM_CONFIG
pankso@67 35 sed -i s/'1280x800.png'/'1024x768.png'/ $JWM_CONFIG
pankso@65 36 fi
pankso@65 37 if echo $NEW_SCREEN | grep -q '1280x800'; then
pankso@67 38 sed -i s/'1024x768.png'/'1280x800.png'/ $JWM_CONFIG
pankso@67 39 sed -i s/'1280x1024.png'/'1280x800.png'/ $JWM_CONFIG
pankso@65 40 fi
pankso@65 41 }
pankso@65 42
pankso@66 43 # Screen configuration dialog.
pankso@66 44 screen_config_dialog()
pankso@66 45 {
pankso@66 46 exec 3>&1
pankso@66 47 value=`$DIALOG --help-button \
pankso@66 48 --clear --colors \
pankso@66 49 --title " Configure X " \
pankso@66 50 --menu \
pankso@66 51 "L'application 'tazx' permet de configurer une session X.\n\
pankso@66 52 Gestionnaire de fenêtres : \Z2$WM\Zn" 16 70 5 \
pankso@66 53 "640x400x16" "TrueColor" \
pankso@66 54 "640x400x24" "TrueColor" \
pankso@66 55 "640x480x16" "TrueColor" \
pankso@66 56 "640x480x24" "TrueColor" \
pankso@66 57 "800x600x16" "TrueColor" \
pankso@66 58 "800x600x24" "TrueColor" \
pankso@66 59 "1024x768x16" "TrueColor" \
pankso@66 60 "1024x768x24" "TrueColor" \
pankso@66 61 "1280x800x16" "TrueColor" \
pankso@66 62 "1280x800x24" "TrueColor" \
pankso@66 63 "1280x1024x16" "TrueColor" \
pankso@66 64 "1280x1024x24" "TrueColor" \
pankso@66 65 "1600x1200x16" "TrueColor" \
pankso@66 66 "1600x1200x24" "TrueColor" \
pankso@66 67 "1920x1440x16" "TrueColor" \
pankso@66 68 "xterm" "800x600x16" \
pankso@66 69 "quit" "Quitter" \
pankso@66 70 2>&1 1>&3`
pankso@66 71 retval=$?
pankso@66 72 exec 3>&-
pankso@66 73 # Continue, exit or help...
pankso@66 74 case $retval in
pankso@66 75 0)
pankso@66 76 continue ;;
pankso@66 77 1)
pankso@66 78 echo "Cancel pressed..."
pankso@66 79 exit 0 ;;
pankso@66 80 2)
pankso@66 81 $DIALOG --clear \
pankso@66 82 --title " Aide - Help " --textbox "$DOC" 16 70
pankso@66 83 exec tazx ;;
pankso@66 84 255)
pankso@66 85 if test -n "$value"; then
pankso@66 86 continue
pankso@66 87 else
pankso@66 88 echo "ESC pressed..."
pankso@66 89 exit 0
pankso@66 90 fi ;;
pankso@66 91 esac
pankso@66 92 # Set selected value.
pankso@66 93 case $value in
pankso@66 94 xterm)
pankso@66 95 Xvesa -ac -shadow -screen 800x600x16 -br &
pankso@66 96 exec xterm -cr orange -geometry 80x35+0-0 ;;
pankso@66 97 *)
pankso@68 98 NEW_SCREEN=$value ;;
pankso@66 99 esac
pankso@66 100 }
pankso@4 101
pankso@65 102 # Slim config if root.
pankso@66 103 slim_config()
pankso@66 104 {
pankso@66 105 if test $(id -u) = 0; then
pankso@68 106 # /etc/X11/screen.conf exist for Live mode, if this file dos not
pankso@68 107 # exist tazx is executed at boot time.
pankso@68 108 mkdir -p /etc/X11
pankso@68 109 echo "SCREEN=$NEW_SCREEN" > /etc/X11/screen.conf
pankso@67 110 # Get current screen size and sed config file with the new value.
pankso@66 111 if [ -f /etc/slim.conf ]; then
pankso@67 112 RES=$(grep ^xserver_arguments /etc/slim.conf | sed 's/xserver_arguments.*-screen *//')
pankso@68 113 sed -i "s/\(xserver_arguments.*-screen \).*/\1 $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@68 129 # Sample xinitrc for user (WM can be specified with F1 at slim login).
pankso@68 130 xinitrc_sample()
pankso@68 131 {
pankso@68 132 cat > $FILE << "EOF"
pankso@68 133 # ~/.xinitrc: Executed by slim login manager to startx X session.
pankso@68 134 #
pankso@68 135 case $1 in
pankso@68 136 e17|enlightenment_start)
pankso@68 137 exec enlightenment_start
pankso@68 138 ;;
pankso@68 139 *)
pankso@68 140 exec jwm
pankso@68 141 ;;
pankso@68 142 esac
pankso@68 143 EOF
pankso@68 144 }
pankso@68 145
pankso@65 146 # ~/.xinitrc for slim login.
pankso@66 147 creat_xinitrc()
pankso@66 148 {
pankso@68 149 FILE=$HOME/.xinitrc
pankso@68 150 xinitrc_sample
pankso@68 151 # In Live mode hacker needs a xinitrc, since tazx
pankso@68 152 # is executed only by root.
pankso@66 153 if [ ! -f /home/hacker/.xinitrc ]; then
pankso@68 154 FILE=/home/hacker/.xinitrc
pankso@68 155 xinitrc_sample
pankso@68 156 chown hacker.hacker $FILE
pankso@66 157 fi
pankso@66 158 }
pankso@65 159
pankso@66 160 # Copy a JWM system config if any present in user home.
pankso@66 161 jwm_config()
pankso@66 162 {
pankso@66 163 if [ ! -f "$HOME/.jwmrc" ]; then
pankso@66 164 cp /etc/jwm/system.jwmrc $HOME/.jwmrc
pankso@66 165 JWM_CONFIG=$HOME/.jwmrc
pankso@66 166 change_jwm_background
pankso@66 167 fi
pankso@66 168 # In Live mode hacker JWM config dose not exist, this is
pankso@66 169 # because tazx is executed at boot time by root.
pankso@66 170 if [ ! -f "/home/hacker/.jwmrc" ]; then
pankso@66 171 cp /etc/jwm/system.jwmrc /home/hacker/.jwmrc
pankso@66 172 JWM_CONFIG=/home/hacker/.jwmrc
pankso@66 173 change_jwm_background
pankso@66 174 chown hacker.hacker $JWM_CONFIG
pankso@66 175 fi
pankso@66 176 }
pankso@45 177
pankso@66 178 # Creat ~/.xsession to keep the configuration selected (used
pankso@66 179 # only by startx, Slim login manager use .xinitrc).
pankso@66 180 creat_xsession()
pankso@66 181 {
pankso@68 182 cat > $HOME/.xsession << _EOF_
pankso@68 183 # ~/.xsession: Start X window session manually on your system (startx).
pankso@37 184 #
pankso@65 185 $XSERVER -ac -shadow $XSEVER_OPTS -screen $NEW_SCREEN -mouse $MOUSE &
pankso@65 186 #xterm &
pankso@37 187 #xpad &
pankso@37 188 exec $WM
pankso@68 189 _EOF_
pankso@66 190 chmod 700 $HOME/.xsession
pankso@66 191 }
pankso@4 192
pankso@66 193 ###################
pankso@66 194 # Tazx sequence #
pankso@66 195 ###################
pankso@66 196
pankso@66 197 screen_config_dialog
pankso@66 198 slim_config
pankso@66 199 e17_stuff
pankso@66 200 creat_xinitrc
pankso@66 201 jwm_config
pankso@66 202 creat_xsession
pankso@4 203
pankso@4 204 exit 0