slitaz-tools annotate tinyutils/tazx @ rev 91
tazx: let hacker change openbox theme...
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Sat Mar 08 15:28:30 2008 +0100 (2008-03-08) |
parents | 1437b2cd2616 |
children | 2ec509854987 |
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@91 | 147 chown -R hacker.hacker /home/hacker/.config |
pankso@81 | 148 fi |
pankso@81 | 149 fi |
pankso@81 | 150 } |
pankso@81 | 151 |
pankso@68 | 152 # Sample xinitrc for user (WM can be specified with F1 at slim login). |
pankso@68 | 153 xinitrc_sample() |
pankso@68 | 154 { |
pankso@68 | 155 cat > $FILE << "EOF" |
pankso@68 | 156 # ~/.xinitrc: Executed by slim login manager to startx X session. |
pankso@81 | 157 # You can use 'tazx' to configure your default WM: tazx e17 |
pankso@68 | 158 # |
pankso@81 | 159 if [ -z $1 ]; then |
pankso@81 | 160 1=jwm |
pankso@81 | 161 fi |
pankso@81 | 162 |
pankso@68 | 163 case $1 in |
pankso@68 | 164 e17|enlightenment_start) |
pankso@68 | 165 exec enlightenment_start |
pankso@68 | 166 ;; |
pankso@81 | 167 openbox|openbox-session) |
pankso@81 | 168 exec openbox-session |
pankso@81 | 169 ;; |
pankso@81 | 170 jwm|*) |
pankso@81 | 171 lxpanel & |
pankso@68 | 172 exec jwm |
pankso@68 | 173 ;; |
pankso@68 | 174 esac |
pankso@68 | 175 EOF |
pankso@68 | 176 } |
pankso@68 | 177 |
pankso@65 | 178 # ~/.xinitrc for slim login. |
pankso@66 | 179 creat_xinitrc() |
pankso@66 | 180 { |
pankso@68 | 181 FILE=$HOME/.xinitrc |
pankso@68 | 182 xinitrc_sample |
pankso@81 | 183 # Set default WM. |
pankso@81 | 184 sed -i s/'1=jwm'/"1=$WM"/ $FILE |
pankso@68 | 185 # In Live mode hacker needs a xinitrc, since tazx |
pankso@68 | 186 # is executed only by root. |
pankso@66 | 187 if [ ! -f /home/hacker/.xinitrc ]; then |
pankso@68 | 188 FILE=/home/hacker/.xinitrc |
pankso@68 | 189 xinitrc_sample |
pankso@68 | 190 chown hacker.hacker $FILE |
pankso@66 | 191 fi |
pankso@66 | 192 } |
pankso@65 | 193 |
pankso@66 | 194 # Copy a JWM system config if any present in user home. |
pankso@66 | 195 jwm_config() |
pankso@66 | 196 { |
pankso@81 | 197 JWM_CONFIG=$HOME/.jwmrc |
pankso@81 | 198 if [ ! -f "$JWM_CONFIG" ]; then |
pankso@81 | 199 cp /etc/jwm/system.jwmrc $JWM_CONFIG |
pankso@66 | 200 fi |
pankso@81 | 201 change_jwm_background |
pankso@66 | 202 # In Live mode hacker JWM config dose not exist, this is |
pankso@66 | 203 # because tazx is executed at boot time by root. |
pankso@66 | 204 if [ ! -f "/home/hacker/.jwmrc" ]; then |
pankso@66 | 205 JWM_CONFIG=/home/hacker/.jwmrc |
pankso@81 | 206 cp /etc/jwm/system.jwmrc $JWM_CONFIG |
pankso@66 | 207 change_jwm_background |
pankso@66 | 208 chown hacker.hacker $JWM_CONFIG |
pankso@66 | 209 fi |
pankso@66 | 210 } |
pankso@45 | 211 |
pankso@66 | 212 # Creat ~/.xsession to keep the configuration selected (used |
pankso@66 | 213 # only by startx, Slim login manager use .xinitrc). |
pankso@66 | 214 creat_xsession() |
pankso@66 | 215 { |
pankso@68 | 216 cat > $HOME/.xsession << _EOF_ |
pankso@68 | 217 # ~/.xsession: Start X window session manually on your system (startx). |
pankso@37 | 218 # |
pankso@65 | 219 $XSERVER -ac -shadow $XSEVER_OPTS -screen $NEW_SCREEN -mouse $MOUSE & |
pankso@65 | 220 #xterm & |
pankso@37 | 221 #xpad & |
pankso@81 | 222 #lxpanel & |
pankso@37 | 223 exec $WM |
pankso@68 | 224 _EOF_ |
pankso@66 | 225 chmod 700 $HOME/.xsession |
pankso@66 | 226 } |
pankso@4 | 227 |
pankso@66 | 228 ################### |
pankso@66 | 229 # Tazx sequence # |
pankso@66 | 230 ################### |
pankso@66 | 231 |
pascal@74 | 232 [ -n "$NEW_SECREEN" ] || screen_config_dialog |
pankso@66 | 233 slim_config |
pankso@66 | 234 e17_stuff |
pankso@81 | 235 openbox_stuff |
pankso@66 | 236 creat_xinitrc |
pankso@66 | 237 jwm_config |
pankso@66 | 238 creat_xsession |
pankso@4 | 239 |
pankso@4 | 240 exit 0 |