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 |