slitaz-tools annotate tinyutils/tazx @ rev 935

tazx: fix rename
author Xander Ziiryanoff <psychomaniak@xakep.ru>
date Sun Jan 11 23:21:03 2015 +0200 (2015-01-11)
parents a14efe47926c
children e5d5980ecf4e
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.
al@926 4 # This tinyutil is part of slitaz-tools. Tazx can configure Xorg with
pankso@626 5 # several Window Managers. The GTK interface to configure X is in tazbox.
pankso@4 6 #
pascal@821 7 # (c) 2011-2014 SliTaz GNU/Linux - GNU GPL v3.
pankso@209 8 # Authors: Christophe Lincoln <pankso@slitaz.org>
pankso@209 9 # Pascal Bellard <pascal.bellard@slitaz.org>
pankso@4 10 #
pankso@837 11
paul@838 12 # 20140317: most xsession, xinitrc are obsolete, provided system files
pankso@840 13 # are in /etc/skel and WM config files should no longer be copied by
pankso@840 14 # tazx to user home. If some configs are needed by WMs they should
pankso@840 15 # be set by a /usr/bin/wmname-session script I guess. - Pankso
pankso@837 16
al@813 17 . /lib/libtaz.sh
al@813 18 . /etc/slitaz/slitaz.conf
pankso@840 19
al@813 20 export TEXTDOMAIN='slitaz-tools' #i18n
pascal@916 21 : ${DIALOG=dialog --timeout 60}
pankso@4 22
pankso@534 23 # Default user for config files in Live mode, id is 1000 since it is
pankso@534 24 # created by /etc/init.d/bootopts.sh.
al@926 25
al@926 26 USER=$(awk -F: '/1000/{print $1}' /etc/passwd)
al@926 27
pankso@4 28
pankso@628 29 #
pankso@615 30 # Functions
pankso@628 31 #
pankso@615 32
al@926 33
al@813 34 # Save chunk of xorg.conf into specified file
al@926 35
al@813 36 save_chunk() {
al@813 37 sed -e '/Section "'${1#*-}'"/,/EndSection/!d' \
al@926 38 -e "s/EndSection/&\n/" $xorg_template > \
al@813 39 $xorg_config/$1.conf
pankso@615 40 }
pankso@66 41
al@926 42
al@926 43 # Create a xorg.conf if needed
al@926 44
pankso@871 45 gen_xorg_conf_file() {
pankso@871 46 if [ ! -f /etc/X11/xorg.conf ]; then
pankso@871 47 cat > /etc/X11/xorg.conf << EOT
pankso@871 48 # You can put here your own Xorg configurations. This config file is read
pankso@871 49 # before all files in /etc/X11/xorg.conf.d and will NOT be erased by any
pankso@871 50 # updates.
pankso@871 51 EOT
pankso@871 52 fi
pankso@871 53 }
pankso@871 54
al@926 55
al@926 56 # Add or remove xkb applet from lxpanel
al@926 57
al@926 58 xkb() {
al@926 59 case $(id -u) in
al@926 60 0)
al@926 61 # Empty if lxpanel not running, else something like:
al@926 62 # tux lxpanel -p slitaz
al@926 63 LXPS=$(ps -ouser,args | sed -n '/[l]xpanel/ s| *| |p' | \
al@926 64 fgrep -v '[' | fgrep -v 'xkb' | fgrep -v 'sh')
al@926 65
al@926 66 # Stop lxpanel
al@926 67 if [ -n "$LXPS" ]; then
al@926 68 lxpanelctl exit
al@926 69 killall lxpanel
al@926 70 fi
al@926 71
al@926 72 # For all human users
al@926 73 for USER in $(awk -F: '/\/home\//{print $1}' /etc/passwd); do
al@926 74 su $USER -c '. ~/.profile; tazx xkb'
al@926 75 done
al@926 76
al@926 77 # Re-run lxpanel
al@926 78 [ -n "$LXPS" ] && su ${LXPS%% *} -c "exec ${LXPS#* }" &
al@926 79 ;;
al@926 80
al@926 81 *)
al@926 82 DOTCONFIG=${XDG_CONFIG_HOME:-$HOME/.config}
al@926 83 CFG_LXPANEL=$DOTCONFIG/lxpanel
al@926 84
al@926 85 if [ ! -d $CFG_LXPANEL ]; then
al@926 86 mkdir -p $DOTCONFIG
al@926 87 cp -r /etc/lxpanel $DOTCONFIG
al@926 88 fi
al@926 89
al@926 90 case $(fgrep 'XkbLayout' /etc/X11/xorg.conf.d/40-Keyboard.conf | \
al@926 91 fgrep -o ',') in
al@926 92 '')
al@926 93 for CFG in $(find $CFG_LXPANEL -type f -name panel); do
al@926 94 if [ -n "$(grep 'type = xkb' $CFG)" ]; then
al@926 95 echo "Remove xkb applet from $CFG"
al@926 96 sed -i "$(grep -n -e "^Plugin {" -e "^}" -e "xkb" \
al@926 97 $CFG | grep -C 1 xkb | grep -v xkb | cut -d: \
al@926 98 -f1 | tr '\n' ' ' | sed 's| |,|')d" $CFG
al@926 99 fi
al@926 100 done ;;
al@926 101 ',')
al@926 102 for CFG in $(find $CFG_LXPANEL -type f -name panel); do
al@926 103 if [ -z "$(grep 'type = xkb' $CFG)" ]; then
al@926 104 echo "Add xkb applet to $CFG"
al@926 105 XKB='Plugin {\
al@926 106 type = xkb\
al@926 107 Config {\
al@926 108 DisplayType=0\
al@926 109 PerWinLayout=0\
al@926 110 NoResetOpt=0\
al@926 111 KeepSysLayouts=1\
al@926 112 Model=pc105\
al@926 113 LayoutsList=us\
al@926 114 VariantsList=,\
al@926 115 ToggleOpt=shift_caps_toggle\
al@926 116 FlagSize=4\
al@926 117 }\
al@926 118 }\
al@926 119 '
al@926 120 sed -i "$(grep -n -e "^Plugin {" -e "tray" $CFG | \
al@926 121 grep -B1 tray | head -n1 | cut -d: -f1) i\\
al@926 122 $XKB" $CFG
al@926 123 fi
al@926 124 done ;;
al@926 125 esac ;;
al@926 126 esac
al@926 127 }
al@926 128
al@926 129
pankso@870 130 # Generate or regenerate 40-Keyboard.conf
al@926 131
pankso@870 132 keyboard_conf() {
al@926 133 # Configure the keyboard with the right keymap
al@813 134 keymap=$(cat /etc/keymap.conf)
pankso@874 135 keyboard_config="/etc/X11/xorg.conf.d/40-Keyboard.conf"
al@779 136 variant=""
al@926 137
al@779 138 # this XkbOption moved from 40-evdev.conf (xorg-xf86-input-evdev)
al@779 139 options="terminate:ctrl_alt_bksp"
al@926 140 _n 'Creating:'; echo -n " $keyboard_config"
pankso@874 141 mkdir -p $(dirname $keyboard_config)
al@926 142
pankso@874 143 case "$keymap" in
pankso@260 144 fr_CH-latin1)
pankso@260 145 # Swiss FrenCH
al@779 146 layout="ch"; variant="fr" ;;
pankso@597 147 uk)
paul@617 148 # English UK
al@779 149 layout="gb" ;;
pankso@260 150 ru)
pankso@260 151 # Russian
al@779 152 layout="us,ru"
al@926 153 options="grp:ctrl_shift_toggle, grp_led:scroll, compose:ralt, $options" ;;
al@813 154 ua)
al@813 155 # Ukrainian
al@813 156 layout="us,ua,ru"
al@926 157 options="grp:ctrl_shift_toggle, compose:ralt, $options" ;;
pankso@303 158 slovene)
pankso@303 159 # Slovenian
al@779 160 layout="si"; options="grp:alt_shift_toggle, $options" ;;
pankso@577 161 us-acentos)
al@779 162 layout="us"; variant="intl" ;;
pankso@260 163 *)
pankso@260 164 # Use clean /etc/keymap.conf value.
gokhlayeh@492 165 keymap=${keymap%-latin1}
gokhlayeh@492 166 keymap=${keymap%-lat2}
gokhlayeh@492 167 keymap=${keymap%-lat6}
al@779 168 layout=${keymap%-abnt2}
pankso@260 169 esac
al@926 170
al@779 171 cat > $keyboard_config << EOC
al@779 172 Section "InputClass"
al@779 173 Identifier "Keyboard Defaults"
al@779 174 MatchIsKeyboard "yes"
al@779 175 Option "XkbLayout" "$layout"
al@779 176 Option "XkbVariant" "$variant"
al@779 177 Option "XkbOptions" "$options"
al@779 178 EndSection
al@779 179 EOC
al@926 180
pankso@874 181 status
al@926 182 [ -z "$variant" ] && sed -i '/XkbVariant/d' $keyboard_config
psychomaniak@932 183 [ -z $(busybox which lxpanel) ] || xkb
pankso@870 184 }
pankso@870 185
al@926 186
al@926 187 # Populate xorg.conf.d
al@926 188
pankso@870 189 xorg_conf_d() {
pankso@870 190 # Define the xorg.conf.d (can be /etc/X11/xorg.conf.d or /usr/share/X11/xorg.conf.d)
pankso@870 191 xorg_config=/etc/X11/xorg.conf.d
pankso@870 192
pankso@870 193 # Define the xorg.conf.new place.
pankso@870 194 xorg_template=/root/xorg.conf.new
pankso@870 195
pankso@870 196 # Obtain a default configuration file from Xorg.
pankso@870 197 Xorg -configure :2
pankso@870 198
pankso@870 199 # Backup existing config.
al@926 200 tar -cf $xorg_config/../Previous_xorg.conf.d.tar $xorg_config/ &> /dev/null
pankso@870 201
pankso@870 202 # Put the different sections in separate files in the config directory.
pankso@870 203 save_chunk 10-ServerLayout
pankso@870 204 sed -i '/Core/d' $xorg_config/10-ServerLayout.conf
pankso@870 205 save_chunk 20-Files
pankso@870 206 save_chunk 30-Module
pankso@870 207 save_chunk 50-Monitor
pankso@870 208 save_chunk 60-Device
pankso@870 209 save_chunk 70-Screen
pankso@870 210
pankso@870 211 # Remove the template.
pankso@870 212 rm $xorg_template
pankso@870 213
pankso@871 214 # Keyboard & xorg.conf
pankso@870 215 keyboard_conf
pankso@871 216 gen_xorg_conf_file
pankso@260 217 }
pankso@260 218
al@926 219
al@926 220 # Process dialog's return code.
al@926 221
psychomaniak@912 222 dialog_end() {
psychomaniak@912 223 retval=$?
psychomaniak@912 224 exec 3>&-
psychomaniak@912 225 # Continue or exit.
psychomaniak@912 226 case $retval in
al@926 227 0|3) continue ;;
al@926 228 1|255) exit 0 ;;
psychomaniak@912 229 esac
psychomaniak@912 230 }
psychomaniak@912 231
al@926 232
paul@549 233 # Install xorg server.
al@926 234
al@813 235 install_xorg() {
al@926 236 [ -f "$PKGS_DB/packages.list" ] || tazpkg recharge
al@926 237
pankso@117 238 exec 3>&1
al@926 239
al@926 240 driver=$($DIALOG \
al@926 241 --clear --colors --scrollbar --title " $(_ 'Install Xorg') " \
al@926 242 --menu "$(_ 'Tazx helps you to select your X driver.')" 16 70 9 \
al@926 243 'auto' "$(_ 'Auto configuring')" \
al@926 244 $(fgrep xorg-xf86-video- $PKGS_DB/packages.list | cut -d- -f4 | \
al@926 245 sed "s|.*|& $(_ 'driver')|") \
al@926 246 'quit' "$(_ 'Quit')" \
al@926 247 2>&1 1>&3)
al@926 248
psychomaniak@912 249 dialog_end
al@813 250
al@926 251 case $driver in
pankso@628 252 quit) exit 0 ;;
al@926 253 auto) autoselect_driver ;;
pankso@117 254 *)
psychomaniak@912 255 inst_pkg xorg-server
al@926 256 inst_pkg xorg-xf86-video-$driver
pankso@628 257 xorg_conf_d ;;
pankso@117 258 esac
pankso@117 259 }
pankso@117 260
al@925 261
al@926 262 # Auto-select and install Xorg driver.
al@926 263
psychomaniak@918 264 autoselect_driver() {
al@925 265 inst_pkg xorg-server
al@925 266
al@924 267 for VID in $(busybox lspci | grep 'Class 03' | cut -c21-24 | sort -u); do
al@924 268 case $VID in
al@924 269 1022|1002) d=ati ;;
al@924 270 8086) d=intel ;;
al@924 271 10de) d=nouveau ;;
al@924 272 1039) d=sis ;;
al@924 273 15ad) d=vmware ;;
al@925 274 *) d=''; $DIALOG --colors --msgbox \
al@926 275 "\n\Z1$(_n 'Failed to setup driver')\Zn $(_ '(unknown hardware)')" 7 68 ;;
al@924 276 esac
al@925 277 [ -n "$d" ] && inst_pkg xorg-xf86-video-$d
al@924 278 done
al@925 279
al@925 280 xorg_conf_d
psychomaniak@918 281 }
psychomaniak@918 282
al@926 283
al@926 284 # Install specified package.
al@926 285
psychomaniak@912 286 inst_pkg() {
al@926 287 pkg="$@"
al@926 288 colorize 3 $(_ 'Installing pkg: $pkg')
al@926 289
al@926 290 case $(id -u) in
al@926 291 0) CMD="tazpkg -gi $@" ;;
al@926 292 *) CMD="sudo tazpkg -gi $@" ;;
al@926 293 esac
al@926 294 [ -d "$INSTALLED/$@" ] || $CMD
psychomaniak@909 295 }
psychomaniak@909 296
al@926 297
al@926 298 # Select/install Window Manager and favorite applications.
al@926 299
psychomaniak@912 300 apps_dialog() {
psychomaniak@931 301 slitaz_apps_conf
al@926 302 . $user_conf
al@926 303
psychomaniak@912 304 exec 3>&1
al@926 305
psychomaniak@918 306 app=$($DIALOG --clear --colors --backtitle "$msg" \
al@926 307 --title "{\Z3 $(_n 'Install Window Manager and applications') \Zn}" \
psychomaniak@918 308 --inputmenu "" 21 52 18 \
al@926 309 $(for a in WINDOW_MANAGER EDITOR BROWSER TERMINAL FILE_MANAGER; do
al@926 310 eval n='$'$a; echo $a $n;
al@926 311 done) 2>&1 1>&3)
psychomaniak@912 312 dialog_end
al@926 313
psychomaniak@912 314 case $app in
psychomaniak@935 315 RENAMED*) # like: RENAMED EDITOR myeditor
al@926 316 appname=$(echo $app | cut -d" " -f3)
al@926 317 app=$(echo $app | cut -d" " -f2) ;;
psychomaniak@912 318 *)
al@926 319 app_name_dialog only-installed ;;
psychomaniak@912 320 esac
al@926 321
al@926 322 if [ $appname != " " ]; then
al@926 323 if [ $appname = show_ALL ]; then
al@926 324 app_name_dialog full-list
psychomaniak@931 325 inst_pkg $appname
psychomaniak@912 326 fi
al@926 327 if [ -z $(busybox which $appname) ]; then
psychomaniak@935 328 inst_pkg $appname
al@926 329 inst_pkg $(lzcat $PKGS_DB/files.list.lzma | fgrep /bin/$appname | head -n1 | cut -d: -f1)
al@926 330 fi
psychomaniak@931 331 sed -i "/$app/ s|=.*$|=\"$appname\"|" $user_conf
psychomaniak@912 332 fi
al@926 333
al@926 334 msg=''; apps_dialog # loop
psychomaniak@912 335 }
psychomaniak@912 336
al@926 337
al@926 338 # Show list of applications to choose.
al@926 339
psychomaniak@912 340 app_name_dialog() {
al@926 341 case $1 in
al@926 342 full-list) height=24 ;;
al@926 343 *) height=18 ;;
al@926 344 esac
al@926 345
psychomaniak@912 346 exec 3>&1
al@926 347
al@926 348 appname=$($DIALOG --clear --colors --title "$app" \
al@926 349 --menu '' $height 50 24 $(gen_applist $app $@) 2>&1 1>&3)
psychomaniak@912 350 dialog_end
psychomaniak@912 351 }
psychomaniak@912 352
al@926 353
al@926 354 # Generate application list for Dialog or Yad.
al@926 355
psychomaniak@912 356 gen_applist() {
al@926 357 # $1 = [ FILE_MANAGER | BROWSER | EDITOR | TERMINAL | WINDOW_MANAGER ]
al@926 358 # $2 = [ only-installed | full-list ]
al@926 359 # $3 = [ yad | * ]
al@926 360
al@926 361 . $user_conf
al@926 362
al@926 363 FILE_MANAGERS="clex caja emelfm2 mc pathfinder pcmanfm pcmanfm-qt ranger \
al@926 364 spacefm thunar xfe ytree"
al@926 365
al@926 366 BROWSERS="arora chrome cream dillo elinks firefox firefox-official iron \
psychomaniak@931 367 links lynx midori netsurf opera QtWeb qupzilla retawq seamonkey surf tazweb w3m xombrero"
al@926 368
psychomaniak@931 369 EDITORS="adie beaver bluefish emacs geany jed joe juffed ht le leafpad \
psychomaniak@931 370 mcedit mousepad mp-5 nano qedit SciTE tea vi vim xedit xfw zile"
al@926 371
al@926 372 TERMINALS="aterm evilvte lxterminal mrxvt qterminal sakura stjerm tilda \
psychomaniak@931 373 urxvt vte xfce4-terminal xterm yeahconsole"
al@926 374
al@926 375 WINDOW_MANAGERS="awesome blackbox compiz dwm echinus enlightenment fluxbox \
al@926 376 icewm jwm lxde-session lxqt karmen matchbox openbox-session pekwm ratpoison \
al@926 377 xfwm4"
psychomaniak@912 378
psychomaniak@912 379 eval list='$'"$1"S
psychomaniak@912 380 eval current='$'"$1"
al@926 381
al@926 382 for i in $current $(echo " $list " | sed "s| $current | |g"); do
al@926 383
al@926 384 case $(busybox which $i) in
al@926 385 '') # not installed
al@926 386 t='---' ;;
al@926 387 *) # installed
al@926 388 t='<--' ;;
al@926 389 esac
al@926 390
al@926 391 if [ "$2" == 'full-list' ] || [ "$t" == '<--' ]; then
al@926 392 echo "$i"
al@926 393
al@926 394 if [ "$3" != 'yad' ]; then
al@926 395 echo "$(echo $t | sed "s|---|$(_n 'Install')|g")"
al@926 396 fi
al@926 397 fi
al@926 398 done
al@926 399
al@926 400 if [ "$2" == 'only-installed' ] && [ "$3" != 'yad' ]; then
al@926 401 echo 'show_ALL' "+$(_n 'Install')"
psychomaniak@912 402 fi
psychomaniak@912 403 }
psychomaniak@912 404
al@926 405
psychomaniak@912 406 # Screen configuration dialog.
al@926 407
al@813 408 config_dialog() {
al@926 409 . /etc/rcS.conf
al@926 410 case $LOGIN_MANAGER in
al@926 411 slim) LM="$(_ 'ON')" ;;
al@926 412 *) LM="$(_ 'OFF')" ;;
al@926 413 esac
psychomaniak@909 414
pankso@66 415 exec 3>&1
al@926 416
al@813 417 value=$($DIALOG \
pankso@535 418 --clear --colors \
pankso@840 419 --title "{ $(_n 'SliTaz Xorg config') }" \
pankso@840 420 --menu "" 16 72 10 \
pankso@840 421 "xorg" "$(_n 'Install or reconfigure Xorg')" \
pankso@840 422 "xorg-light" "$(_n 'Install Xorg server (light version)')" \
al@926 423 "onboot" "$(_n 'AutoStart Xorg by SLiM on boot'): \Z5$LM\Zn" \
psychomaniak@909 424 "slim" "$(_n '(Re)Start Simple Login Manager now')" \
al@926 425 "wm_apps" "$(_n 'Install Window Manager and applications')" \
pankso@840 426 "quit" "$(_n 'Quit Tazx utility')" \
al@813 427 2>&1 1>&3)
psychomaniak@912 428 dialog_end
al@926 429
pankso@840 430 case "$value" in
psychomaniak@912 431 xorg)
pankso@339 432 install_xorg ;;
al@926 433
pankso@840 434 xorg-light)
psychomaniak@912 435 inst_pkg xorg-server-light
psychomaniak@912 436 inst_pkg xorg-xf86-video-fbdev
pankso@840 437 xorg_conf_d ;;
al@926 438
psychomaniak@909 439 onboot)
al@926 440 inst_pkg slim
al@926 441 inst_pkg dbus
al@926 442
al@926 443 if [ $LM == "$(_ 'OFF')" ]; then
al@926 444 LM='slim'
al@926 445 else
al@926 446 LM=''
psychomaniak@909 447 fi
al@926 448 sed -i "/LOGIN_MANAGER/ s|=.*$|=$LM|" /etc/rcS.conf
al@926 449
al@926 450 [ -z "$LM" ] && LM='disabled'
al@926 451 _n "Start X on boot:"; boldify " $LM" ;;
al@926 452
psychomaniak@909 453 slim)
al@926 454 inst_pkg slim
al@926 455 inst_pkg dbus
al@926 456 if [ -z $XAUTHORITY ]; then
al@926 457 stopd slim; sleep 2; startd slim
al@926 458 fi ;;
al@926 459
psychomaniak@912 460 wm_apps)
al@926 461 apps_dialog ;;
al@926 462
pankso@840 463 *)
pankso@840 464 exit 0 ;;
pankso@66 465 esac
pankso@66 466 }
pankso@4 467
al@926 468
pankso@870 469 # ~/.config/slitaz/applications.conf: Missing = failed to login
pankso@876 470 # Make users applications.conf in /etc/skel so new added user will get
pankso@876 471 # a working X session. Note --> flavors can have a custom config in
pankso@876 472 # /etc/slitaz/applications that we must use.
al@926 473
pankso@870 474 slitaz_apps_conf() {
pankso@840 475 apps_conf=/etc/slitaz/applications.conf
al@926 476
psychomaniak@933 477 [ -f $apps_conf ] || inst_pkg slitaz-configs --forced
psychomaniak@933 478
pankso@876 479 if [ "$(id -u)" = 0 ]; then
al@926 480 user_conf=$apps_conf
psychomaniak@912 481 new_user_conf="/etc/skel/.config/slitaz/applications.conf"
al@926 482 mkdir -p $(dirname $new_user_conf)
al@926 483 cp -f $apps_conf $new_user_conf
pankso@876 484 else
pankso@876 485 # If started by: startx and with boot opts screen=text
al@926 486 user_conf="${XDG_CONFIG_HOME:-$HOME/.config}/slitaz/applications.conf"
pankso@876 487 if [ ! -f "$user_conf" ]; then
al@926 488 mkdir -p $(dirname $user_conf)
al@926 489 cp $apps_conf $user_conf
pankso@876 490 fi
slaxemulator@538 491 fi
psychomaniak@918 492 [ -f "$HOME/.xinitrc" ] || inst_pkg slitaz-configs-base --forced
pankso@66 493 }
pankso@4 494
al@926 495
psychomaniak@933 496 # Handle live options: screen= video=
psychomaniak@933 497 proc_cmdline()
psychomaniak@933 498 {
psychomaniak@933 499 if grep -qs 'screen=' /proc/cmdline ; then
psychomaniak@933 500 MODE="$(sed 's/.*screen=\([0-9]*x[0-9]*\).*/\1/' < /proc/cmdline)"
psychomaniak@933 501 sed "s/.*EndSubSection.*/\\t\\tModes\\t\"$MODE\"\\n&/" \
psychomaniak@933 502 -i ${xorg_config}/70-Screen.conf
psychomaniak@933 503 elif grep -qs 'video=' /proc/cmdline ; then
psychomaniak@933 504 MODE="$(sed 's/.*video=\([0-9]*x[0-9]*\).*/\1/' < /proc/cmdline)"
psychomaniak@933 505 DEPTH=$(sed 's/.*video=.*-\([0-9]*\).*/\1/' < /proc/cmdline)
psychomaniak@933 506 sed "s/.*EndSubSection.*/\\t\\tModes\\t\"$MODE\"\\n&/" \
psychomaniak@933 507 -i ${xorg_config}/70-Screen.conf
psychomaniak@933 508 set_depth $DEPTH
psychomaniak@933 509 fi
psychomaniak@933 510 }
psychomaniak@933 511
psychomaniak@933 512 set_depth()
psychomaniak@933 513 {
psychomaniak@933 514 case "$1" in
psychomaniak@935 515 8|15|16|24|32) colors=$1 ;;
psychomaniak@933 516 *)
psychomaniak@933 517 exec 3>&1
psychomaniak@933 518 colors=$($DIALOG --menu " " 12 12 12 \
psychomaniak@935 519 32 truecolor 24 truecolor 16 hicolor 15 hicolor 8 256colors 2>&1 1>&3)
psychomaniak@933 520 dialog_end ;;
psychomaniak@933 521 esac
psychomaniak@933 522 sed 's|Monitor.*"$|&\n\tDefaultDepth '$colors'|' -i ${xorg_config}/70-Screen.conf
psychomaniak@933 523 }
psychomaniak@933 524
psychomaniak@933 525
psychomaniak@933 526
pankso@840 527 # Commands
pankso@66 528
pankso@351 529 case "$1" in
pankso@351 530 install-xorg)
pankso@840 531 check_root
pankso@351 532 install_xorg
pankso@870 533 slitaz_apps_conf ;;
al@926 534
pankso@415 535 config-xorg)
pankso@840 536 check_root
pankso@870 537 slitaz_apps_conf
pankso@840 538 xorg_conf_d
psychomaniak@933 539 proc_cmdline ;;
al@926 540
pankso@870 541 init)
paul@885 542 # We don't need much config files with last Xorg version, So just
paul@885 543 # get files for starting an X session and config the keyboard.
pankso@870 544 check_root
psychomaniak@933 545 slitaz_apps_conf
al@926 546 keyboard_conf
pankso@871 547 gen_xorg_conf_file ;;
al@926 548
pankso@879 549 keyboard)
pankso@870 550 keyboard_conf ;;
al@926 551
psychomaniak@912 552 get-applist)
psychomaniak@912 553 slitaz_apps_conf
psychomaniak@912 554 gen_applist $2 $3 $4 ;;
al@926 555
psychomaniak@918 556 auto)
al@925 557 autoselect_driver ;;
al@926 558
psychomaniak@918 559 bpp)
psychomaniak@918 560 check_root
psychomaniak@918 561 xorg_conf_d
psychomaniak@935 562 proc_cmdline
psychomaniak@933 563 set_depth $2 ;;
al@926 564
al@926 565 xkb)
al@926 566 xkb ;;
al@926 567
psychomaniak@935 568
psychomaniak@933 569 *help|-h|-?)
al@926 570 emsg "
paul@929 571 <b>tazx</b> - $(_ 'Configuration tool for SliTaz GNU/Linux')
al@926 572
al@926 573 <c 33>$(_ 'Usage:')</c> <b>tazx</b> <c 34>$(_ 'command')</c> $(_ 'parameter')
al@926 574
al@926 575 <c 34>$(_ 'Commands:')</c>
al@926 576 install-xorg $(_ 'Install Xorg and selected Xorg driver')
al@926 577 config-xorg $(_ 'Configure Xorg, generate configuration files')
al@926 578 bpp $(_ 'Set monitor default depth (valid parameters: 8, 15, 16 or 24)')
al@926 579 auto $(_ 'Auto-select and install Xorg driver')
al@926 580 init $(_ 'Get files for starting an X session and config the keyboard')
al@926 581 keyboard $(_ 'Generate or regenerate Xorg keyboard config')
al@926 582 "
al@926 583 ;;
al@926 584
pankso@351 585 *)
pankso@615 586 # User can get a new .xinitrc with tazx from cmdline.
al@926 587 case $(id -u) in
al@926 588 0)
al@926 589 config_dialog ;;
al@926 590 *)
al@926 591 msg="\Z1 $(_n 'Run tazx as root if you need to configure xorg') \Zn"
al@926 592 apps_dialog ;;
al@926 593 esac
psychomaniak@912 594 # gen_xsession
psychomaniak@912 595 ;;
pankso@351 596 esac
pankso@4 597
pankso@4 598 exit 0