#!/bin/ash
#171207 sfs
#wt -s "sleep 9999998" "процесс" &
#for d in `ls -1 /usr/share/applications/*.desktop`  ;do
#for d in `ls -1 /usr/share/applications/*.desktop` `ls -1 /usr/local/share/applications/*.desktop` ;do
#z="$@" ;$0 "$z" &
if [ "$1" = "+" ];then
    m="$2";    m1="<big><b>$2

</b></big>" ;shift ;shift; dtp="/usr/local/share/applications+/*.desktop"
else dtp="/usr/share/applications/*.desktop /usr/local/share/applications/*.desktop"
fi
rzd="$1"

for d in $dtp ;do
#for d in `find /usr/share/applications/*.desktop /usr/local/share/applications/*.desktop -size +0 -type f ` ;do
        y1="`awk -F= '
    	    /^Comment=/ { cm1 = $2 }
    	    /^Comment\[ru\]=/ { cm2 = $2 }
    	    /^Categories=/ { c = $2 }
    	    /^NoDisplay=/ { t = $2 }
    	    /^Icon=/ { i = $2 }
            /^Exec=/ { e = $2 }
            /^Name=/ { n1 = $2 }
            /^Name\[ru\]=/ { n2 = $2 }
        	END {
            sub(/^.*\//,"", i);
            sub(/\.[^\.]+$/,"", i);
            if (n2!="") { n=n2 } else { n=n1 };
            if (cm2!="") { cm=cm2 } else { cm=cm1 };
            if (n!="" && t!="true" && c~"'$1'")  print ("="i"|<b>"n"</b> <i><small>"cm"</small></i> :"e"|'$d'")
            }' $d`"
#            d="'"$d"'"
#            sub(/^.*\//,"", d);
#            sub(/\.desktop$/,"", d);
#done
#exit
#    i="`awk -F= '/^Icon=/{print $2}' "$d"`"
#    e="`awk -F= '/^Exec=/{print $2}' "$d"`"
#    n="`awk -F= '/^Name\[ru\]=/{print $2}' "$d"`" ; [ "$n" ] || n="`awk -F= '/^Name=/{print $2}' "$d"`"
    #i="`basename "$i" .xpm`" ;  i="`basename "$i" .png`"
#    i="${i/\/*\//}" ;     i="${i/.*/}"
    #i="${i##*/}"
    #i="${i%.*}"
#    y="$y=$i|<b>`basename  "$d" .desktop`</b> : $e : <i><small>$n</small></i>|$d"
#echo $y
#    y="$y=$y1|$d"
    y="$y$y1"
done
#echo -----$y;exit
#wt -kill ; kill `pgrep -f "sleep 9999998"`

ntf3(){
sel="$(echo "$1"|sed 's/|/\n/g' |sed 's/=/\n/g' |yad   --title "$2 $3" --list \
    --text "<span size='small'>$m1     Для поиска начните набирать шаблон. Стрелка \"Вниз\" - следующее совпадение.</span>" \
	--regex-search \
	--search-column=2 \
	--separator= \
	--height=360 --width=540 \
	--no-headers \
	--window-icon=gtk-index \
	--hide-column=3 \
	--print-column=3 \
	--column=:IMG \
	--column="*" \
	--column="+" \
	--button "Запуск"!gtk-ok!"Запустить программу":0 \
	--button gtk-edit:2 \
	--button "Скрыть"!!"Скрыть выбранный пункт в меню без удаления ярлыка (в ярлык добавляется 'Hidden=true')":4 \
	--button "По темам"!gtk-dnd-multiple!"Рассортировать по темам":5 \
        --button gtk-cancel:1 \
	--mouse \
	)"
#	--center \
x="$?"
echo "$sel $x"
#    --text \
#    "<span size='large'><b>$2</b></span>
#<i>$3</i>"  \
#	--undecorated \
#	--image-on-top --image="x48" \
}

EXXX(){
r="`ntf -3 "\
gtk-edit
Редактировать
1
\
gtk-execute
Запустить
2
gtk-delete
Удалить
3" "Ярлык" "<b>$d1</b>

Из ярлыков строится меню.
Добавление \"NoDisplay=true\" скрывает в меню

 Выберите действие
"`"
}

M(){
#$echo $Y|sed ':a;N;$!ba;s/=/\n#/g' #|tr "=" "/n"
#echo $Y|sed 's/\=/\n/g' #|tr "=" "/n"
#echo $y;exit

if [ "$y" ] ;then
    d2="$(ntf3 "`echo $y |sed 's/^=//'`" "Меню" "$rzd")" 
    d1="${d2%% *}"
    r="${d2##* }"
    #echo "$d1===$r" ;exit
    [ "$r" = "252" ] && exit 1
else 
    ntf -e "В разделе меню" "'$rzd' пусто" & 
    #$0 &
    exit
fi

if [ "$d1" ] ;then
[ "$r" = "2" ] &&  sudo leafpad "$d1"
[ "$r" = "4" ] &&  echo "echo NoDisplay=true >> "$d1"" |sudo sh #sudo echo "NoDisplay=true" >> $d1 #&& exit
if [ "$r" = "0" ];then
    #[ "$tt" = "true" ] && t2="defaultterminal -e" || t2=
    [ "`awk -F= '/^Terminal=/{print $2}'  "$d1"`" = "true" ] && t2="defaultterminal -e" || t2=
    $t2 `awk -F= '/^Exec=/{print $2}' "$d1" |head -1 |sed 's/%[fFu]//'` && exit 0 #|| exit 1
    #ntf -w "=$tt=$t2= `awk -F= '/^Exec=/{print $2}' "$d1"`" #|| exit 1
fi
#M
[ "$m1" = "" ] && $0 $rzd || $0 + "$m"
#$0 $@ #&
else
[ "$r" = "5" ] && exec ymenu2 && exit 0
    [ "$r" != "1" ] && (ntf -e "В меню" "ничего не выбрано" &) && M || exit 0
fi
}
M
