Ah, beleza, manda ai o script
Versão Imprimível
Ah, beleza, manda ai o script
caro psy...
é que só quero os atalhos para os aplicativos,
que estão no menu do kde....
não quero que o kde fique rodando junto com o blackbox...
é uma tremenda perda de processamento! <IMG SRC="images/forum/icons/icon_biggrin.gif"> ...
como disse voce um crime!
por isso vo utiliza o proprio menu do blackbox ......
mas adicionando os outros atalhos .....
vlw.... <IMG SRC="images/forum/icons/icon_biggrin.gif">
-----------
#! /bin/bash
# startdir = path dos atalhos do menu do kde ...
startdir=/var/lib/menu/kde/
[ $# -eq 1 ]&&startdir=$1
startlevel=`echo $startdir|awk -F´/´ ´{print NF;}´`
#a small function to indent, before printing a row
function indentnow()
{
myindent=`expr $currlevel \* 2`
echo|awk ´{printf("%´$myindent´s"," "<IMG SRC="images/forum/icons/icon_wink.gif">;}´
}
#fetch all the application links in the current directory
#process these. recursively for subdirectories
function processdir()
{
currsubmenu=`pwd|awk -F´/´ ´{print $NF;}´`
currlevel=`pwd|awk -F´/´ ´{print NF;}´`
if [ $currlevel -ge $startlevel ]
then
indentnow
echo "[submenu] ($currsubmenu) {$currsubmenu}"
currlevel=`expr $currlevel + 1`
fi
for MENUENTRY in *
do
# get the name (Name=) and the Executable(Exec=)
if [ -s $MENUENTRY -a ! -d $MENUENTRY ]
then
NAME=`grep "^Name=" $MENUENTRY|cut -f2 -d´=´`
EXEC=`grep "^Exec=" $MENUENTRY|cut -f2 -d´=´|\
sed ´s/"//g´|sed "s/-caption//g"|sed "s/%/g"`
#captions and KDE´s % variables screw up in
#bb (atleast mine)
indentnow
echo "[exec] (${NAME}) {${EXEC}}"
elif [ -d $MENUENTRY ]
then
cd $MENUENTRY
processdir
cd ..
fi
done
if [ $currlevel -ge $startlevel ]
then
currlevel=`expr $currlevel - 1`
indentnow
echo "[end]"
fi
}
####
# MAIN - entry point
##
cd $startdir && processdir
-----------
[ Esta mensagem foi editada por: PiTsA em 17-02-2003 00:57 ]
quando rodo assim:
./script.sh > menu
aparece ele bunitinhu os atalhos no arquivo menu! mas sem os nomes dos executáveis!
mas aparecem erros na tela!
acho que o erro ta nessa linha: sed ´s/"//g´|sed "s/-caption//g"|sed "s/%/g"`
veja ae.....
<IMG SRC="images/forum/icons/icon_wink.gif">
dei uma mexida acho que consegui ....
mexi mesmo naquela linha que citei acima.....
------------------------------------------------------------------
#!/bin/bash
#kbbmenu_v2.sh
startdir=/var/lib/menu/kde/
[ $# -eq 1 ]&&startdir=$1
startlevel=`echo $startdir|awk -F´/´ ´{print NF;}´`
#a small function to indent, before printing a row
function indentnow()
{
myindent=`expr $currlevel \* 2`
echo|awk ´{printf("%´$myindent´s"," "<IMG SRC="images/forum/icons/icon_wink.gif">;}´
}
#fetch all the application links in the current directory
#process these. recursively for subdirectories
function processdir()
{
currsubmenu=`pwd|awk -F´/´ ´{print $NF;}´`
currlevel=`pwd|awk -F´/´ ´{print NF;}´`
if [ $currlevel -ge $startlevel ]
then
indentnow
echo "[submenu] ($currsubmenu) {$currsubmenu}"
currlevel=`expr $currlevel + 1`
fi
for MENUENTRY in *
do
# get the name (Name=) and the Executable(Exec=)
if [ -s $MENUENTRY -a ! -d $MENUENTRY ]
then
NAME=`grep "^Name=" $MENUENTRY|cut -f2 -d´=´`
EXEC=`grep "^Exec=" $MENUENTRY| cut -f2 -d´=´`
#captions and KDE´s % variables screw up in
#bb (atleast mine)
indentnow
echo "[exec] (${NAME}) {${EXEC}}"
elif [ -d $MENUENTRY ]
then
cd $MENUENTRY
processdir
cd ..
fi
done
if [ $currlevel -ge $startlevel ]
then
currlevel=`expr $currlevel - 1`
indentnow
echo "[end]"
fi
}
####
# MAIN - entry point
##
cd $startdir && processdir
------------------------------------------------------------------
veja o resultado disso com:
./kbbmenu_v2.sh > menukde
valeu! <IMG SRC="images/forum/icons/icon_razz.gif">
ao psy...
fico massa!
só adicionei no arquivo menu do blackbox um submenu kde, e dentro dele
os menus criados com o script .....
funfo certinho! e sem rodar nada do KDE!