slitaz-tools annotate tinyutils/tazx @ rev 81

Support Openbox in tazx
author Christophe Lincoln <pankso@slitaz.org>
date Thu Mar 06 23:05:04 2008 +0100 (2008-03-06)
parents 7b4f85f56142
children b4d5ddf5a00d
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@81 6 # 20080306 <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@69 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@81 129 # Openbox with openbox-session.
pankso@81 130 openbox_stuff()
pankso@81 131 {
pankso@81 132 if [ "$WM" == "openbox" -o "$WM" == "ob" ]; then
pankso@81 133 WM=openbox-session
pankso@81 134 XSEVER_OPTS="dpms -terminate"
pankso@81 135 fi
pankso@81 136 # Check if a personnal autostart script exist if OB is installed.
pankso@81 137 if [ -d "/var/lib/tazpkg/installed/openbox" ]; then
pankso@81 138 if [ ! -f "$HOME/.config/openbox/autostart.sh" ]; then
pankso@81 139 mkdir -p $HOME/.config/openbox
pankso@81 140 cp /etc/xdg/openbox/autostart.sh $HOME/.config/openbox
pankso@81 141 fi
pankso@81 142 # Script for hacker, Openbox can be used with a LiveCD flavor or
pankso@81 143 # LiveUSB.
pankso@81 144 if [ ! -f "/home/hacker/.config/openbox/autostart.sh" ]; then
pankso@81 145 mkdir -p /home/hacker/.config/openbox
pankso@81 146 cp /etc/xdg/openbox/autostart.sh /home/hacker/.config/openbox
pankso@81 147 fi
pankso@81 148 fi
pankso@81 149 }
pankso@81 150
pankso@68 151 # Sample xinitrc for user (WM can be specified with F1 at slim login).
pankso@68 152 xinitrc_sample()
pankso@68 153 {
pankso@68 154 cat > $FILE << "EOF"
pankso@68 155 # ~/.xinitrc: Executed by slim login manager to startx X session.
pankso@81 156 # You can use 'tazx' to configure your default WM: tazx e17
pankso@68 157 #
pankso@81 158 if [ -z $1 ]; then
pankso@81 159 1=jwm
pankso@81 160 fi
pankso@81 161
pankso@68 162 case $1 in
pankso@68 163 e17|enlightenment_start)
pankso@68 164 exec enlightenment_start
pankso@68 165 ;;
pankso@81 166 openbox|openbox-session)
pankso@81 167 exec openbox-session
pankso@81 168 ;;
pankso@81 169 jwm|*)
pankso@81 170 lxpanel &
pankso@68 171 exec jwm
pankso@68 172 ;;
pankso@68 173 esac
pankso@68 174 EOF
pankso@68 175 }
pankso@68 176
pankso@65 177 # ~/.xinitrc for slim login.
pankso@66 178 creat_xinitrc()
pankso@66 179 {
pankso@68 180 FILE=$HOME/.xinitrc
pankso@68 181 xinitrc_sample
pankso@81 182 # Set default WM.
pankso@81 183 sed -i s/'1=jwm'/"1=$WM"/ $FILE
pankso@68 184 # In Live mode hacker needs a xinitrc, since tazx
pankso@68 185 # is executed only by root.
pankso@66 186 if [ ! -f /home/hacker/.xinitrc ]; then
pankso@68 187 FILE=/home/hacker/.xinitrc
pankso@68 188 xinitrc_sample
pankso@68 189 chown hacker.hacker $FILE
pankso@66 190 fi
pankso@66 191 }
pankso@65 192
pankso@66 193 # Copy a JWM system config if any present in user home.
pankso@66 194 jwm_config()
pankso@66 195 {
pankso@81 196 JWM_CONFIG=$HOME/.jwmrc
pankso@81 197 if [ ! -f "$JWM_CONFIG" ]; then
pankso@81 198 cp /etc/jwm/system.jwmrc $JWM_CONFIG
pankso@66 199 fi
pankso@81 200 change_jwm_background
pankso@66 201 # In Live mode hacker JWM config dose not exist, this is
pankso@66 202 # because tazx is executed at boot time by root.
pankso@66 203 if [ ! -f "/home/hacker/.jwmrc" ]; then
pankso@66 204 JWM_CONFIG=/home/hacker/.jwmrc
pankso@81 205 cp /etc/jwm/system.jwmrc $JWM_CONFIG
pankso@66 206 change_jwm_background
pankso@66 207 chown hacker.hacker $JWM_CONFIG
pankso@66 208 fi
pankso@66 209 }
pankso@45 210
pankso@66 211 # Creat ~/.xsession to keep the configuration selected (used
pankso@66 212 # only by startx, Slim login manager use .xinitrc).
pankso@66 213 creat_xsession()
pankso@66 214 {
pankso@68 215 cat > $HOME/.xsession << _EOF_
pankso@68 216 # ~/.xsession: Start X window session manually on your system (startx).
pankso@37 217 #
pankso@65 218 $XSERVER -ac -shadow $XSEVER_OPTS -screen $NEW_SCREEN -mouse $MOUSE &
pankso@65 219 #xterm &
pankso@37 220 #xpad &
pankso@81 221 #lxpanel &
pankso@37 222 exec $WM
pankso@68 223 _EOF_
pankso@66 224 chmod 700 $HOME/.xsession
pankso@66 225 }
pankso@4 226
pankso@66 227 ###################
pankso@66 228 # Tazx sequence #
pankso@66 229 ###################
pankso@66 230
pascal@74 231 [ -n "$NEW_SECREEN" ] || screen_config_dialog
pankso@66 232 slim_config
pankso@66 233 e17_stuff
pankso@81 234 openbox_stuff
pankso@66 235 creat_xinitrc
pankso@66 236 jwm_config
pankso@66 237 creat_xsession
pankso@4 238
pankso@4 239 exit 0