slitaz-tools annotate tinyutils/tazx @ rev 65
Support slim config with tazx
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Fri Feb 22 19:51:43 2008 +0100 (2008-02-22) |
parents | 6e50cf1c3f92 |
children | b7cf20bb05db |
rev | line source |
---|---|
pankso@4 | 1 #!/bin/sh |
pankso@4 | 2 # |
pankso@4 | 3 # Tazx - Ncurses startx script for SliTaz GNU/Linux using Dialog boxes. |
pankso@4 | 4 # This tinyutils is part of slitaz-tools. |
pankso@4 | 5 # |
pankso@49 | 6 # 20080205 <pankso@slitaz.org> - GNU gpl v3. |
pankso@4 | 7 # |
pankso@4 | 8 : ${DIALOG=dialog} |
pankso@4 | 9 |
pankso@4 | 10 # Variables. |
pankso@4 | 11 XSERVER=Xvesa |
pankso@4 | 12 DOC=/usr/share/doc/slitaz-tools/tazx.txt |
pankso@4 | 13 MOUSE=/dev/input/mice,5 |
pankso@46 | 14 # WM can be specified on cmdline. |
pankso@46 | 15 if [ -n "$1" ]; then |
pankso@46 | 16 WM=$1 |
pankso@46 | 17 else |
pankso@46 | 18 WM=jwm |
pankso@46 | 19 fi |
pankso@4 | 20 |
pankso@65 | 21 # Change backgroud image if the 3/4 is not respected. |
pankso@65 | 22 change_jwm_background() |
pankso@65 | 23 { |
pankso@65 | 24 if echo $NEW_SCREEN | grep -q '1280x1024'; then |
pankso@65 | 25 sed -i s/'1024x768.png'/'1280x1024.png'/ $JWM_CONFIG |
pankso@65 | 26 fi |
pankso@65 | 27 if echo $NEW_SCREEN | grep -q '1024x768'; then |
pankso@65 | 28 sed -i s/'1280x1024.png'/'1024x768.png'/ $JWM_CONFIG |
pankso@65 | 29 fi |
pankso@65 | 30 if echo $NEW_SCREEN | grep -q '1280x800'; then |
pankso@65 | 31 sed -i s/'1024x768.png'/'1280x800.png'/ $JWM_CONFIG |
pankso@65 | 32 fi |
pankso@65 | 33 } |
pankso@65 | 34 |
pankso@45 | 35 # Main dialog. |
pankso@4 | 36 exec 3>&1 |
pankso@4 | 37 value=`$DIALOG --help-button \ |
pankso@45 | 38 --clear --colors \ |
pankso@45 | 39 --title " Configure X " \ |
pankso@41 | 40 --menu \ |
pankso@45 | 41 "L'application 'tazx' permet de configurer votre session X.\n\ |
pankso@45 | 42 Gestionnaire de fenêtres : \Z2$WM\Zn" 16 70 5 \ |
pankso@49 | 43 "640x400x16" "TrueColor" \ |
pankso@49 | 44 "640x400x24" "TrueColor" \ |
pankso@37 | 45 "640x480x16" "TrueColor" \ |
pankso@37 | 46 "640x480x24" "TrueColor" \ |
pankso@37 | 47 "800x600x16" "TrueColor" \ |
pankso@37 | 48 "800x600x24" "TrueColor" \ |
pankso@37 | 49 "1024x768x16" "TrueColor" \ |
pankso@37 | 50 "1024x768x24" "TrueColor" \ |
pankso@45 | 51 "1280x800x16" "TrueColor" \ |
pankso@45 | 52 "1280x800x24" "TrueColor" \ |
pankso@37 | 53 "1280x1024x16" "TrueColor" \ |
pankso@37 | 54 "1280x1024x24" "TrueColor" \ |
pankso@37 | 55 "1600x1200x16" "TrueColor" \ |
pankso@37 | 56 "1600x1200x24" "TrueColor" \ |
pankso@37 | 57 "1920x1440x16" "TrueColor" \ |
pankso@40 | 58 "xterm" "800x600x16" \ |
pankso@40 | 59 "quit" "Quitter" \ |
pankso@4 | 60 2>&1 1>&3` |
pankso@4 | 61 retval=$? |
pankso@4 | 62 exec 3>&- |
pankso@4 | 63 |
pankso@45 | 64 # Continue, exit or help... |
pankso@4 | 65 case $retval in |
pankso@41 | 66 0) |
pankso@41 | 67 continue ;; |
pankso@41 | 68 1) |
pankso@41 | 69 echo "Cancel pressed..." |
pankso@41 | 70 exit 0 ;; |
pankso@41 | 71 2) |
pankso@41 | 72 $DIALOG --clear \ |
pankso@41 | 73 --title " Aide - Help " --textbox "$DOC" 15 70 |
pankso@41 | 74 exec tazx ;; |
pankso@41 | 75 255) |
pankso@41 | 76 if test -n "$value"; then |
pankso@45 | 77 continue |
pankso@41 | 78 else |
pankso@41 | 79 echo "ESC pressed..." |
pankso@41 | 80 exit 0 |
pankso@41 | 81 fi ;; |
pankso@4 | 82 esac |
pankso@4 | 83 |
pankso@4 | 84 # Set selected value. |
pankso@4 | 85 case $value in |
pankso@37 | 86 xterm) |
pankso@49 | 87 Xvesa -ac -shadow -screen 800x600x16 -br & |
pankso@45 | 88 exec xterm -cr orange -geometry 80x35+0-0 ;; |
pankso@37 | 89 *) |
pankso@65 | 90 NEW_SCREEN=$value ;; |
pankso@4 | 91 esac |
pankso@4 | 92 |
pankso@65 | 93 # Slim config if root. |
pankso@65 | 94 if test $(id -u) = 0; then |
pankso@65 | 95 # Get current screen size or set default to 1024x768x24 to sed |
pankso@65 | 96 # config file with the new value. |
pankso@65 | 97 if [ -f /etc/X11/screen.conf ]; then |
pankso@65 | 98 . /etc/X11/screen.conf |
pankso@65 | 99 else |
pankso@65 | 100 SCREEN=1024x768x24 |
pankso@65 | 101 fi |
pankso@65 | 102 if [ -f /etc/slim.conf ]; then |
pankso@65 | 103 mkdir -p /etc/X11 |
pankso@65 | 104 echo "SCREEN=$NEW_SCREEN" > /etc/X11/screen.conf |
pankso@65 | 105 sed -i s/"$SCREEN"/"$NEW_SCREEN"/ /etc/slim.conf |
pankso@65 | 106 fi |
pankso@65 | 107 JWM_CONFIG=/etc/jwm/system.jwmrc |
pankso@65 | 108 change_jwm_background |
pankso@65 | 109 fi |
pankso@65 | 110 |
pankso@65 | 111 # ~/.xinitrc for slim login. |
pankso@65 | 112 echo "$WM" > $HOME/.xinitrc |
pankso@65 | 113 |
pankso@45 | 114 # Copy a JWM system config if any present in user home |
pankso@41 | 115 if [ ! -f "$HOME/.jwmrc" ]; then |
pankso@4 | 116 cp /etc/jwm/system.jwmrc $HOME/.jwmrc |
pankso@18 | 117 fi |
pankso@65 | 118 JWM_CONFIG=$HOME/.jwmrc |
pankso@65 | 119 change_jwm_background |
pankso@45 | 120 |
pankso@45 | 121 # e17 start with enlightenment_start. |
pankso@45 | 122 if [ "$WM" == "e17" ]; then |
pankso@45 | 123 WM=enlightenment_start |
pankso@45 | 124 XSEVER_OPTS="dpms -terminate" |
pankso@45 | 125 fi |
pankso@4 | 126 |
pankso@4 | 127 # Creat ~/.xsession to keep the configuration selected. |
pankso@4 | 128 # |
pankso@45 | 129 cat > $HOME/.xsession << _EOT_ |
pankso@37 | 130 # ~/.xsession: Start X window session on your system. |
pankso@37 | 131 # |
pankso@65 | 132 $XSERVER -ac -shadow $XSEVER_OPTS -screen $NEW_SCREEN -mouse $MOUSE & |
pankso@65 | 133 #xterm & |
pankso@37 | 134 #xpad & |
pankso@37 | 135 exec $WM |
pankso@45 | 136 _EOT_ |
pankso@4 | 137 chmod 700 $HOME/.xsession |
pankso@4 | 138 |
pankso@45 | 139 # Console messages. |
pankso@65 | 140 echo "" |
pankso@45 | 141 echo "X server : $XSERVER" |
pankso@65 | 142 echo "Screen : $NEW_SCREEN" |
pankso@45 | 143 echo "Exec WM : $WM" |
pankso@45 | 144 echo "" |
pankso@4 | 145 |
pankso@4 | 146 exit 0 |