Сайт | Скачать | Видео | Wiki

Автор Тема: Поиск и запуск приложения. Легкие аналоги whiskermenu (xfce)  (Прочитано 3119 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sfs

  • Администратор
  • Ветеран
  • ****
  • Сообщений: 34005
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
mukstart
На pra версия 4.2 работает, но надо править Categories (с пупи на стандартные)
Выше - не запускаются (вероятно по этой же причине)
По функционалу - то что хотел, но нужно доработать - кто в теме gtkdialog - помогайте
Сам подобное смог написать - ymenu. Там менее удобен поиск
« Последнее редактирование: 28 Январь 2016, 10:42:29 от sfs »

Оффлайн sfs

  • Администратор
  • Ветеран
  • ****
  • Сообщений: 34005
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8636
  • Репутация: +187/-2
  • Старый чайник
Find'N'Run
Буржуйская графомания. И не лень было столько писать  :D

Может быть сделать проще: XFCE сразу показывает на рабочем столе ярлыки, положенные в ~/Desktop/
Играем джаз, даю тему  :)
Код
find ~/Desktop/ -type l -delete #При перезапуске очищаем
CATEGORIES=Network #Здесь надо сделать менюшку выбора
ls /usr/share/applications/*.desktop | while read F
do grep $CATEGORIES $F || continue
 ln -s $F ~/Desktop/
done
Остаётся кликнуть по нужному ярлыку. Поиск можно производить и по названию
Код
grep Name=$SEQ $F 
или по исполняемой команде
Код
grep Exec=$SEQ $F 
Если после ввода каждого знака в переменную SEQ сделать перезапуск, получится тот же самый поиск.
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн sfs

  • Администратор
  • Ветеран
  • ****
  • Сообщений: 34005
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Я свой "джаз" уже давно награфоманил - ymenu   :)
Главный недостаток - при поиске в меню набором с клавы - скачет по списку, а не убирает несовпадения
То что Вы предлагаете, навскидку еще менее функционально и удобно... Хотя может быть я не до конца понял Ваш замысел
Вы видели ymenu? Может его с yad на gtkdialog перепереть (вдохновясь буржуйскими скриптами) и убрать недостаток...
« Последнее редактирование: 28 Январь 2016, 17:21:11 от sfs »

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8636
  • Репутация: +187/-2
  • Старый чайник
 Импровизация
Код
#!/bin/ash
#DdShurick 28.01.16 GPL v2
fnd () {
SEQ=$(Xdialog --no-cancel --inputbox "$MSG" 0 0 2>&1) || exit
L=$(grep Exec=$SEQ /usr/share/applications/*.desktop /usr/local/share/applications/*.desktop 2>/dev/null)
if [ $(echo "$L" | wc -l) -gt 1 ]; then
 MSG=$(echo "$L" | cut -f2 -d\=)
 fnd
else
 CMD=$(echo $L | cut -f2 -d\=)
if Xdialog --title RUN --yesno $CMD 0 0 ;then
exec $CMD &
else
fnd
fi
fi
}
fnd
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн sfs

  • Администратор
  • Ветеран
  • ****
  • Сообщений: 34005
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Импровизация
xdialog - совсем плохая идея. Запустил - некрасиво и не удобно
тогда уж взять парсер от ymenu и гуй от prun

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8636
  • Репутация: +187/-2
  • Старый чайник
Xdialog - совсем плохая идея. Запустил - некрасиво и не удобно
Это я и сам вижу, зато очень коротко. А вот как сделать удобно? Бросать ссылку на ярлык на рабочий стол когда остаётся один вариант?
тогда уж взять парсер от ymenu
Парсер хорош, только зачем избыточная информация на выходе?
и гуй от prun
Не знаю такого.
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн sfs

  • Администратор
  • Ветеран
  • ****
  • Сообщений: 34005
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
как сделать удобно?
В теме же написано - как в whiskermenu  ;)
Парсер хорош, только зачем избыточная информация на выходе?
Насколько я помню - yad методом набора ищет только по одному полю. Поэтому пришлось все мелким почерком засадить в одно поле - что не здорово, но по другому поиск не организовать
prun - скрипт из пупи, включен в пра. Но он ищет среди бинарников

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8636
  • Репутация: +187/-2
  • Старый чайник
В теме же написано - как в whiskermenu  ;)
Не знаю такого буржуя  ;D
Ещё одна импровизация:
Код
#!/bin/ash
#DdShurick 29.01.16 GPL v2
#Окно ввода
entry () {
INP="<entry>
    <input>echo $SEQ</input>
    <variable>SEQ</variable>
  </entry>"
}
entry

fnd () {
[ "$MSG" ] || MSG="Введите имя программы"
export ENTRY="
 <vbox>
  <frame $MSG>
   $LIST
   $INP
  </frame>
  <hbox>
   <button ok></button>
   <button no></button>
  </hbox>
 </vbox>
"
eval $(gtkdialog -c --program=ENTRY)
[ "$EXIT" = "abort" ] && exit
#Сброс переменных
if [ "$EXIT" = "No" ]; then
 LIST=""
 CMD=""
 SEQ=""
 MSG=""
 entry
 fnd
fi
[ "$SEQ" = "" ] && SEQ=0

L=$(grep Exec=$SEQ /usr/share/applications/*.desktop /usr/local/share/applications/*.desktop 2>/dev/null)
if [ $(echo "$L" | wc -l) -gt 1 -a "$CMD" = "" ]; then
#Окно выбора
 MSG="Выберите из списка"
 LIST="<list>
  <variable>CMD</variable>
  $(echo "$L" | cut -f2 -d\= | sed 's/^/<item>/;s/$/<\/item>/')
 </list>"
 INP=""
 fnd
elif [ "$L" = "" -o "$SEQ" = "0" ]; then
 MSG="Ошибка! Новый выбор"
 LIST=""
 SEQ=""
 entry
 fnd
else
 [ "$CMD" ] || CMD=$(echo "$L" | cut -f2 -d\=)
if Xdialog --title "Запустить?" --yesno $CMD 0 0 ;then
exec $CMD &
else
exit
fi
fi
}
fnd
Кто ещё желает сделать лучше?  ;)
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн sfs

  • Администратор
  • Ветеран
  • ****
  • Сообщений: 34005
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
whiskermenu - плагин для xfce-panel. В пра есть. Посмотрите - поймете о чем я
Хочется - вбиваешь буквы - список вариантов уменьшается . Список - с иконкой и полной инфой ярлыка