slitaz-tools rev 912 5.8.11
tazx: add default applications dialog, replace lists from tazbox.
author | Xander Ziiryanoff <psychomaniak@xakep.ru> |
---|---|
date | Wed Nov 05 19:01:28 2014 +0200 (2014-11-05) |
parents | 18ca3382d5b7 |
children | 5b758077efec |
files | tazbox/tazbox tinyutils/browser tinyutils/tazx |
line diff
1.1 --- a/tazbox/tazbox Sat Nov 01 19:04:27 2014 +0200 1.2 +++ b/tazbox/tazbox Wed Nov 05 19:01:28 2014 +0200 1.3 @@ -520,17 +520,6 @@ 1.4 --button="gtk-close:0" 1.5 } 1.6 1.7 -# Generate alternatives list: first - current choice, following - existing apps 1.8 -gen_alt() { 1.9 - alts="$@" 1.10 - current=$(echo $alts | cut -d' ' -f1) 1.11 - alts=$(echo $alts | sed "s|$current||g") 1.12 - for alt in $alts; do 1.13 - [ ! $(busybox which $alt) ] && alts=$(echo $alts | sed "s|$alt||") 1.14 - done 1.15 - echo $current $alts | tr ' ' '!' 1.16 -} 1.17 - 1.18 # Ask root permissions for system settings 1.19 ask_root() { 1.20 if [ $(id -u) != 0 ]; then 1.21 @@ -565,7 +554,7 @@ 1.22 cat /dev/null > $HOME/.config/slitaz/subox.conf 1.23 fi 1.24 # Try to login & execute. If password is wrong execute error dialog 1.25 - SU_CMD_QUOTED="$(echo "dbus-launch $SU_CMD" | sed 's|&|\\&|g')" 1.26 + SU_CMD_QUOTED="$(echo "dbus-launch $SU_CMD" --exit-with-session | sed 's|&|\\&|g')" 1.27 echo $main | cut -f 1 -d "|" | su -c "$SU_CMD_QUOTED &" || su_error ;; 1.28 logout) 1.29 # Logout window with actions 1.30 @@ -635,28 +624,20 @@ 1.31 # is /etc/slitaz/applications.conf and each user can have personal 1.32 # settings. System wide for root and personal config for user. 1.33 export CONFIG="$HOME/.config/slitaz/applications.conf" 1.34 - if [ ! -f $CONFIG ]; then 1.35 - mkdir -p $HOME/.config/slitaz 1.36 - cp /etc/slitaz/applications.conf $CONFIG 1.37 + if [ "$(id -u)" = 0 ]; then 1.38 + [ ! -f $CONFIG ] || mv -f $CONFIG /etc/slitaz/applications.conf 1.39 + export CONFIG="/etc/slitaz/applications.conf" 1.40 fi 1.41 + 1.42 + for a in FILE_MANAGERS BROWSERS EDITORS TERMINALS WINDOW_MANAGERS; 1.43 + do 1.44 + eval $(expr $a=$(echo $(/usr/bin/tazx get-applist ${a%%S} \ 1.45 + only-installed yad) | sed 's/ /!/g ; s/!!//g; s/ //g')) 1.46 + done 1.47 + 1.48 + # Missing file was created by slitaz_apps_conf function from tazx 1.49 . $CONFIG 1.50 1.51 - FILE_MANAGERS=$(gen_alt $FILE_MANAGER \ 1.52 - clex caja emelfm2 mc pathfinder pcmanfm pcmanfm-qt ranger spacefm \ 1.53 - thunar xfe ytree) 1.54 - BROWSERS=$(gen_alt $BROWSER \ 1.55 - arora chrome cream dillo elinks firefox iron links lynx midori \ 1.56 - netsurf opera QtWeb qupzilla retawq seamonkey surf tazweb) 1.57 - EDITORS=$(gen_alt $EDITOR \ 1.58 - adie beaver emacs geany jed joe juffed ht le leafpad mcedit \ 1.59 - mousepad mp-5 nano qedit SciTE vi vim xedit xfw zile) 1.60 - TERMINALS=$(gen_alt $TERMINAL \ 1.61 - aterm evilvte lxterminal mrxvt qterminal sakura stjerm tilda urxvt vte \ 1.62 - xterm yeahconsole) 1.63 - WINDOW_MANAGERS=$(gen_alt $WINDOW_MANAGER \ 1.64 - awesome blackbox dwm echinus enlightenment fluxbox icewm icewm-session jwm \ 1.65 - karmen lxqt matchbox openbox-session pekwm ratpoison xfwm4) 1.66 - 1.67 icon=preferences-desktop-default-applications 1.68 eval $(yad --title="$(_n 'SliTaz default applications')" \ 1.69 --window-icon=$icon --image=$icon --image-on-top \
2.1 --- a/tinyutils/browser Sat Nov 01 19:04:27 2014 +0200 2.2 +++ b/tinyutils/browser Wed Nov 05 19:01:28 2014 +0200 2.3 @@ -19,6 +19,7 @@ 2.4 *links*|retawq|lynx) 2.5 $EXECT $@ ;; 2.6 w3m) $EXECT -N $@ ;; 2.7 + qupzil*)$EXEC -pb -ow $@ ;; 2.8 *) $EXEC $@ ;; 2.9 esac 2.10
3.1 --- a/tinyutils/tazx Sat Nov 01 19:04:27 2014 +0200 3.2 +++ b/tinyutils/tazx Wed Nov 05 19:01:28 2014 +0200 3.3 @@ -133,6 +133,16 @@ 3.4 gen_xorg_conf_file 3.5 } 3.6 3.7 +dialog_end() { 3.8 + retval=$? 3.9 + exec 3>&- 3.10 + # Continue or exit. 3.11 + case $retval in 3.12 + 0) continue ;; 3.13 + 1|255) exit 0 ;; 3.14 + esac 3.15 +} 3.16 + 3.17 # Install xorg server. 3.18 install_xorg() { 3.19 [ -f "/var/lib/tazpkg/packages.list" ] || tazpkg recharge 3.20 @@ -145,33 +155,97 @@ 3.21 while read x; do echo $x; _ 'driver'; done) \ 3.22 "quit" "$(_n 'Quit')" \ 3.23 2>&1 1>&3) 3.24 - retval=$? 3.25 - exec 3>&- 3.26 - 3.27 - # Continue or exit. 3.28 - case $retval in 3.29 - 0) continue ;; 3.30 - 1|255) exit 0 ;; 3.31 - esac 3.32 + dialog_end 3.33 3.34 # Set selected value. 3.35 case $value in 3.36 quit) exit 0 ;; 3.37 *) 3.38 - [ -d "$installed/xorg-server" ] || tazpkg -gi xorg-server 3.39 - [ -d "$installed/xorg-xf86-video-$value" ] || \ 3.40 - tazpkg -gi xorg-xf86-video-$value 3.41 + inst_pkg xorg-server 3.42 + inst_pkg xorg-xf86-video-$value 3.43 xorg_conf_d ;; 3.44 esac 3.45 } 3.46 3.47 -install_slim() { 3.48 - [ -d "$installed/slim" ] || tazpkg -gi slim 3.49 - [ -d "$installed/dbus" ] || tazpkg -gi dbus 3.50 +inst_pkg() { 3.51 + CMD="sudo tazpkg -gi $@" 3.52 + test $(id -u) = 0 && CMD="tazpkg -gi $@" 3.53 + [ -d "$installed/$@" ] || $CMD 3.54 } 3.55 3.56 -# Screen configuration dialog. TODO: menus items to enable/disable X on boot 3.57 -# and sed /etc/rcS.conf to remove slim from RUN_DAEMONS. 3.58 +apps_dialog() { 3.59 + . ${user_conf} 3.60 + exec 3>&1 3.61 + app=$($DIALOG --clear --colors \ 3.62 + --extra-label "$(_n 'Edit')" \ 3.63 + --backtitle "{ $(_n '\Z3SliTaz applications config\Zn') }" \ 3.64 + --inputmenu " " 22 52 18 WINDOW_MANAGER $WINDOW_MANAGER \ 3.65 + $(for a in EDITOR BROWSER TERMINAL FILE_MANAGER; do 3.66 + eval n=$"$a" ; echo "$a $n"; 3.67 + done) 2>&1 1>&3) 3.68 + dialog_end 3.69 + case $app in 3.70 + RENAMED*) 3.71 + appname=$(echo $app | cut -d " " -f3) 3.72 + app=$(echo $app | cut -d " " -f2) ;; 3.73 + *) 3.74 + app_name_dialog only-installed d a-item ;; 3.75 + esac 3.76 + if [ ! $appname = " " ]; then 3.77 + [ ! $appname = show_ALL ] || app_name_dialog full-list d 3.78 + if [ ! $(busybox which ${appname} 2>/dev/null) ]; then 3.79 + inst_pkg $appname 3.80 + if [ ! -d "$installed/$appname" ]; then 3.81 + pknm=$(tazpkg search-pkgname /bin/$appname \ 3.82 + | grep -Ev '=|:| |/bin/') 3.83 + inst_pkg $pknm 3.84 + fi 3.85 + else 3.86 + sed '/'${app}'/s|=.*$|="'${appname}'"|' -i ${user_conf} 3.87 + fi 3.88 + fi 3.89 + apps_dialog 3.90 +} 3.91 + 3.92 +app_name_dialog() { 3.93 + bt="" sz=28 ; [ $1 = full-list ] || sz=20 \ 3.94 + bt=$(_n 'select "Show_ALL" to install additional programs') 3.95 + exec 3>&1 3.96 + appname=$($DIALOG --clear --colors \ 3.97 + --backtitle "\Z1${bt}\Zn" --title "${app}" \ 3.98 + --menu "" $sz 50 24 $(gen_applist $app $@) 2>&1 1>&3) \ 3.99 + dialog_end 3.100 +} 3.101 + 3.102 +gen_applist() { 3.103 +. ${user_conf} 3.104 +FILE_MANAGERS=" clex caja emelfm2 mc pathfinder pcmanfm pcmanfm-qt ranger spacefm thunar xfe ytree" 3.105 +BROWSERS=" arora chrome cream dillo elinks firefox iron links lynx midori netsurf \ 3.106 + opera QtWeb qupzilla retawq seamonkey surf tazweb" 3.107 +EDITORS=" adie beaver emacs geany jed joe juffed ht le leafpad mcedit mousepad mp-5 \ 3.108 + nano qedit SciTE vi vim xedit xfw zile" 3.109 +TERMINALS=" aterm evilvte lxterminal mrxvt qterminal sakura stjerm tilda urxvt vte \ 3.110 + xterm yeahconsole" 3.111 +WINDOW_MANAGERS=" awesome blackbox dwm echinus enlightenment fluxbox icewm-session jwm \ 3.112 + lxde-session karmen matchbox openbox-session pekwm ratpoison startlxqt xfwm4" 3.113 + 3.114 + eval list='$'"$1"S 3.115 + eval current='$'"$1" 3.116 +for i in $current $(echo $list" " | sed "s| "$current" | |g") $4 ; do 3.117 + t="<--" ; [ $(busybox which $i 2>/dev/null) ] || t=--- 3.118 + if [ $2 = only-installed ] && [ $t = --- ]; then 3.119 + case $i in 3.120 + a-item) i=show_ALL t=$(_n 'Get more apps') ;; 3.121 + *) i=" " t=" " ;; esac 3.122 + fi 3.123 + instmsg=$(_n 'install') 3.124 + t=$(echo $t | sed "s|---|$instmsg|g ; s| |_|g") 3.125 + echo "$i" 3.126 + [ $3 = yad ] || echo -e "$t" 3.127 +done 3.128 +} 3.129 + 3.130 +# Screen configuration dialog. 3.131 config_dialog() { 3.132 . /etc/rcS.conf ; LM="ON" 3.133 [ $LOGIN_MANAGER = "slim" ] || LM="OFF" 3.134 @@ -185,43 +259,34 @@ 3.135 "xorg-light" "$(_n 'Install Xorg server (light version)')" \ 3.136 "onboot" "$(_n 'AutoStart Xorg by SLiM on boot') ...| $LM" \ 3.137 "slim" "$(_n '(Re)Start Simple Login Manager now')" \ 3.138 + "wm_apps" "$(_n 'Select & install WM|DE + applications')" \ 3.139 "quit" "$(_n 'Quit Tazx utility')" \ 3.140 2>&1 1>&3) 3.141 - retval=$? 3.142 - exec 3>&- 3.143 - 3.144 - # Continue or exit. 3.145 - case $retval in 3.146 - 0) continue ;; 3.147 - 1|255) exit 0 ;; 3.148 - esac 3.149 - 3.150 + dialog_end 3.151 # Set selected value. 3.152 case "$value" in 3.153 - xorg) 3.154 + xorg) 3.155 install_xorg ;; 3.156 xorg-light) 3.157 - [ -d "$installed/xorg-server-light" ] || \ 3.158 - tazpkg -gi xorg-server-light 3.159 - [ -d "$installed/xorg-xf86-video-fbdev" ] || \ 3.160 - tazpkg -gi xorg-xf86-video-fbdev 3.161 + inst_pkg xorg-server-light 3.162 + inst_pkg xorg-xf86-video-fbdev 3.163 xorg_conf_d ;; 3.164 onboot) 3.165 - install_slim 3.166 + inst_pkg slim ; inst_pkg dbus 3.167 if [ $LM = "OFF" ] ; then 3.168 LM=slim 3.169 - else 3.170 - LM="" 3.171 + else LM="" 3.172 fi 3.173 - sed '/LOGIN_MANAGER=/s|"\([^"]*\)"|"'$LM'"|' \ 3.174 - -i /etc/rcS.conf 3.175 - 3.176 + sed '/LOGIN_MANAGER/s|=.*$|="'$LM'"|' -i /etc/rcS.conf 3.177 [ $LM = "slim" ] || LM=disabled 3.178 echo "start X on boot:" $(boldify $LM) ;; 3.179 slim) 3.180 - install_slim 3.181 - [ ! -z $XAUTHORITY ] || \ 3.182 - stopd slim ; sleep 1 ; startd slim ;; 3.183 + inst_pkg slim ; inst_pkg dbus 3.184 + [ ! -z $XAUTHORITY ] || stopd slim ;sleep 2; startd slim ;; 3.185 + wm_apps) 3.186 + slitaz_apps_conf 3.187 + . ${user_conf} 3.188 + apps_dialog ;; 3.189 *) 3.190 exit 0 ;; 3.191 esac 3.192 @@ -235,8 +300,9 @@ 3.193 apps_conf=/etc/slitaz/applications.conf 3.194 3.195 if [ "$(id -u)" = 0 ]; then 3.196 - user_conf="/etc/skel/.config/slitaz/applications.conf" 3.197 - mkdir -p $(dirname $user_conf); cp -f ${apps_conf} ${user_conf} 3.198 + user_conf=${apps_conf} 3.199 + new_user_conf="/etc/skel/.config/slitaz/applications.conf" 3.200 + mkdir -p $(dirname $user_conf); cp -f ${apps_conf} ${new_user_conf} 3.201 else 3.202 # If started by: startx and with boot opts screen=text 3.203 user_conf="$HOME/.config/slitaz/applications.conf" 3.204 @@ -279,12 +345,18 @@ 3.205 3.206 *help) 3.207 echo "Usage: $(basename $0) [install-xorg|config-xorg|init|keyboard]" ;; 3.208 + 3.209 3.210 + get-applist) 3.211 + slitaz_apps_conf 3.212 + gen_applist $2 $3 $4 ;; 3.213 *) 3.214 # User can get a new .xinitrc with tazx from cmdline. 3.215 - [ $(id -u) == 0 ] && config_dialog 3.216 - slitaz_apps_conf 3.217 - gen_xsession ;; 3.218 + if [ $(id -u) == 0 ]; then config_dialog 3.219 + else slitaz_apps_conf ; apps_dialog 3.220 + fi 3.221 + # gen_xsession 3.222 + ;; 3.223 esac 3.224 3.225 exit 0