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