slitaz-tools annotate tinyutils/tazx @ rev 105

We dont need multi-wallpapers now (Thank Pascal)
author Christophe Lincoln <pankso@slitaz.org>
date Thu Mar 13 01:33:02 2008 +0100 (2008-03-13)
parents 4eaba614e892
children d30840862d0c
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@105 6 # 20080313 <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@66 26 # Screen configuration dialog.
pankso@66 27 screen_config_dialog()
pankso@66 28 {
pankso@66 29 exec 3>&1
pankso@66 30 value=`$DIALOG --help-button \
pankso@66 31 --clear --colors \
pankso@66 32 --title " Configure X " \
pankso@66 33 --menu \
pankso@66 34 "L'application 'tazx' permet de configurer une session X.\n\
pankso@66 35 Gestionnaire de fenêtres : \Z2$WM\Zn" 16 70 5 \
pankso@66 36 "640x400x16" "TrueColor" \
pankso@66 37 "640x400x24" "TrueColor" \
pankso@66 38 "640x480x16" "TrueColor" \
pankso@66 39 "640x480x24" "TrueColor" \
pankso@66 40 "800x600x16" "TrueColor" \
pankso@66 41 "800x600x24" "TrueColor" \
pankso@66 42 "1024x768x16" "TrueColor" \
pankso@66 43 "1024x768x24" "TrueColor" \
pankso@66 44 "1280x800x16" "TrueColor" \
pankso@66 45 "1280x800x24" "TrueColor" \
pankso@66 46 "1280x1024x16" "TrueColor" \
pankso@66 47 "1280x1024x24" "TrueColor" \
pankso@66 48 "1600x1200x16" "TrueColor" \
pankso@66 49 "1600x1200x24" "TrueColor" \
pankso@66 50 "1920x1440x16" "TrueColor" \
pankso@66 51 "xterm" "800x600x16" \
pankso@66 52 "quit" "Quitter" \
pankso@66 53 2>&1 1>&3`
pankso@66 54 retval=$?
pankso@66 55 exec 3>&-
pankso@66 56 # Continue, exit or help...
pankso@66 57 case $retval in
pankso@66 58 0)
pankso@66 59 continue ;;
pankso@66 60 1)
pankso@66 61 echo "Cancel pressed..."
pankso@66 62 exit 0 ;;
pankso@66 63 2)
pankso@66 64 $DIALOG --clear \
pankso@66 65 --title " Aide - Help " --textbox "$DOC" 16 70
pankso@66 66 exec tazx ;;
pankso@66 67 255)
pankso@66 68 if test -n "$value"; then
pankso@66 69 continue
pankso@66 70 else
pankso@66 71 echo "ESC pressed..."
pankso@66 72 exit 0
pankso@66 73 fi ;;
pankso@66 74 esac
pankso@66 75 # Set selected value.
pankso@66 76 case $value in
pankso@66 77 xterm)
pankso@66 78 Xvesa -ac -shadow -screen 800x600x16 -br &
pankso@66 79 exec xterm -cr orange -geometry 80x35+0-0 ;;
pankso@66 80 *)
pankso@68 81 NEW_SCREEN=$value ;;
pankso@66 82 esac
pankso@66 83 }
pankso@4 84
pankso@65 85 # Slim config if root.
pankso@66 86 slim_config()
pankso@66 87 {
pankso@66 88 if test $(id -u) = 0; then
pankso@68 89 # /etc/X11/screen.conf exist for Live mode, if this file dos not
pankso@68 90 # exist tazx is executed at boot time.
pankso@68 91 mkdir -p /etc/X11
pankso@68 92 echo "SCREEN=$NEW_SCREEN" > /etc/X11/screen.conf
pankso@67 93 # Get current screen size and sed config file with the new value.
pankso@66 94 if [ -f /etc/slim.conf ]; then
pankso@67 95 RES=$(grep ^xserver_arguments /etc/slim.conf | sed 's/xserver_arguments.*-screen *//')
pankso@69 96 sed -i "s/\(xserver_arguments.*-screen\).*/\1 $NEW_SCREEN/" /etc/slim.conf
pankso@66 97 fi
pankso@66 98 JWM_CONFIG=/etc/jwm/system.jwmrc
pankso@66 99 change_jwm_background
pankso@65 100 fi
pankso@66 101 }
pankso@66 102
pankso@66 103 # e17 start with enlightenment_start.
pankso@66 104 e17_stuff()
pankso@66 105 {
pankso@66 106 if [ "$WM" == "e17" ]; then
pankso@66 107 WM=enlightenment_start
pankso@66 108 XSEVER_OPTS="dpms -terminate"
pankso@65 109 fi
pankso@66 110 }
pankso@65 111
pankso@81 112 # Openbox with openbox-session.
pankso@81 113 openbox_stuff()
pankso@81 114 {
pankso@81 115 if [ "$WM" == "openbox" -o "$WM" == "ob" ]; then
pankso@81 116 WM=openbox-session
pankso@81 117 XSEVER_OPTS="dpms -terminate"
pankso@81 118 fi
pankso@81 119 # Check if a personnal autostart script exist if OB is installed.
pankso@81 120 if [ -d "/var/lib/tazpkg/installed/openbox" ]; then
pankso@81 121 if [ ! -f "$HOME/.config/openbox/autostart.sh" ]; then
pankso@81 122 mkdir -p $HOME/.config/openbox
pankso@81 123 cp /etc/xdg/openbox/autostart.sh $HOME/.config/openbox
pankso@81 124 fi
pankso@81 125 # Script for hacker, Openbox can be used with a LiveCD flavor or
pankso@81 126 # LiveUSB.
pankso@81 127 if [ ! -f "/home/hacker/.config/openbox/autostart.sh" ]; then
pankso@81 128 mkdir -p /home/hacker/.config/openbox
pankso@81 129 cp /etc/xdg/openbox/autostart.sh /home/hacker/.config/openbox
pankso@91 130 chown -R hacker.hacker /home/hacker/.config
pankso@81 131 fi
pankso@81 132 fi
pankso@81 133 }
pankso@81 134
pankso@68 135 # Sample xinitrc for user (WM can be specified with F1 at slim login).
pankso@68 136 xinitrc_sample()
pankso@68 137 {
pankso@68 138 cat > $FILE << "EOF"
pankso@68 139 # ~/.xinitrc: Executed by slim login manager to startx X session.
pankso@99 140 # You can use F1 with Slim or 'tazx' to configure permanantly
pankso@99 141 # your default WM: tazx e17
pankso@68 142 #
pankso@99 143 WM=jwm
pankso@99 144
pankso@99 145 if [ -n $1 ]; then
pankso@99 146 WM=$1
pankso@81 147 fi
pankso@81 148
pankso@99 149 case $WM in
pankso@68 150 e17|enlightenment_start)
pankso@68 151 exec enlightenment_start
pankso@68 152 ;;
pankso@81 153 openbox|openbox-session)
pankso@81 154 exec openbox-session
pankso@81 155 ;;
pankso@81 156 jwm|*)
pankso@81 157 lxpanel &
pankso@68 158 exec jwm
pankso@68 159 ;;
pankso@68 160 esac
pankso@68 161 EOF
pankso@68 162 }
pankso@68 163
pankso@65 164 # ~/.xinitrc for slim login.
pankso@66 165 creat_xinitrc()
pankso@66 166 {
pankso@68 167 FILE=$HOME/.xinitrc
pankso@68 168 xinitrc_sample
pankso@99 169
pankso@99 170
pankso@68 171 # In Live mode hacker needs a xinitrc, since tazx
pankso@68 172 # is executed only by root.
pankso@66 173 if [ ! -f /home/hacker/.xinitrc ]; then
pankso@68 174 FILE=/home/hacker/.xinitrc
pankso@68 175 xinitrc_sample
pankso@68 176 chown hacker.hacker $FILE
pankso@66 177 fi
pankso@99 178 # Set default WM.
pankso@99 179 RES=`grep ^WM=[e-o] $HOME/.xinitrc`
pankso@99 180 sed -i s/"$RES"/"WM=$WM"/ $HOME/.xinitrc
pankso@66 181 }
pankso@65 182
pankso@66 183 # Copy a JWM system config if any present in user home.
pankso@66 184 jwm_config()
pankso@66 185 {
pankso@81 186 JWM_CONFIG=$HOME/.jwmrc
pankso@81 187 if [ ! -f "$JWM_CONFIG" ]; then
pankso@81 188 cp /etc/jwm/system.jwmrc $JWM_CONFIG
pankso@66 189 fi
pankso@105 190 # In Live mode hacker/root JWM config dose not exist ans $HOME is
pankso@105 191 # ot set, this is because tazx is executed by boot scripts.
pankso@66 192 if [ ! -f "/home/hacker/.jwmrc" ]; then
pankso@66 193 JWM_CONFIG=/home/hacker/.jwmrc
pankso@81 194 cp /etc/jwm/system.jwmrc $JWM_CONFIG
pankso@66 195 chown hacker.hacker $JWM_CONFIG
pankso@66 196 fi
pankso@105 197 if [ ! -f "/root/.jwmrc" ]; then
pankso@105 198 JWM_CONFIG=/root/.jwmrc
pankso@105 199 cp /etc/jwm/system.jwmrc $JWM_CONFIG
pankso@105 200 fi
pankso@66 201 }
pankso@45 202
pankso@66 203 # Creat ~/.xsession to keep the configuration selected (used
pankso@66 204 # only by startx, Slim login manager use .xinitrc).
pankso@66 205 creat_xsession()
pankso@66 206 {
pankso@68 207 cat > $HOME/.xsession << _EOF_
pankso@68 208 # ~/.xsession: Start X window session manually on your system (startx).
pankso@37 209 #
pankso@65 210 $XSERVER -ac -shadow $XSEVER_OPTS -screen $NEW_SCREEN -mouse $MOUSE &
pankso@65 211 #xterm &
pankso@37 212 #xpad &
pankso@68 213 _EOF_
pankso@99 214 # LXpanel by default with JWM.
pankso@99 215 if [ "$WM" = "jwm" ];then
pankso@99 216 echo 'lxpanel &' >> $HOME/.xsession
pankso@99 217 fi
pankso@104 218 echo "exec $WM" >> $HOME/.xsession
pankso@66 219 chmod 700 $HOME/.xsession
pankso@66 220 }
pankso@4 221
pankso@66 222 ###################
pankso@66 223 # Tazx sequence #
pankso@66 224 ###################
pankso@66 225
pascal@96 226 [ -n "$NEW_SCREEN" ] || screen_config_dialog
pankso@66 227 slim_config
pankso@66 228 e17_stuff
pankso@81 229 openbox_stuff
pankso@66 230 creat_xinitrc
pankso@66 231 jwm_config
pankso@66 232 creat_xsession
pankso@4 233
pankso@4 234 exit 0