slitaz-tools annotate tinyutils/tazx @ rev 69
Sed slim.conf: remove space
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Sat Feb 23 10:50:46 2008 +0100 (2008-02-23) |
parents | ee9bb9111f35 |
children | 7b4f85f56142 |
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@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@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 |