LINUX.ORG.RU

SnapFly 0.5.4

 ,


0

3

Состоялся релиз проекта SnapFly — лёгкого GTK+-меню, написанного на Python, форка проекта adeskmenu. Данное меню может использоваться в лёгких GTK+-окружениях, например, вместе с Openbox/Fluxbox. Авторами SnapFly являются разработчики AgiliaLinux Nomer_Uno и drakmail. Данное меню войдёт в состав Openbox-окружения AgiliaLinux, начиная с Beta 2.

Основные возможности SnapFly:

  • Возможность работать как меню в режимах «демона» (запускается из любого свободного пространства рабочего стола щелчком правой кнопки мыши), так и в режиме простого меню (запускаемого из иконки в трее)

Отличия от adeskmenu:

  • автоматическое обновление меню (через pyinotify)
  • алгоритм вызова меню изменился с посыла сигнала SIGUSR1 на dbus-вызов, что позволило значительно ускорить запуск меню
  • поддержка мультиязычности для категорий (используется gettext) и для .desktop-файлов (основываясь на локали системы)
  • значительно исправлен парсер конфигурационного файла. Добавлена возможность создавать пользовательские категории и пункты меню
  • реализована поддержка конфигурационного файла — теперь параметры приложения можно менять без редактирования исходного кода. Реализован парсер и защита от ошибок конфигурации: если параметр в конфигурационном файла содержит неправильное значение, используется значение по умолчанию
  • реализован функционал OnlyShowIn — вы можете спрятать значки программ из KDE или GNOME
  • для показа меню в режиме демона был добавлен скрипт snapfly-show, дублирующий функционал был убран из основного приложения

>>> Проект на гуглокоде

★★★★★

Проверено: mono ()

>удалось значительно увеличить быстродействие и предотвратить 100% загрузку ЦП
так это теперь и ЦП не покачаешь, педобир не одобряет.

Novell-ch ★★★★★ ()

на данный момент еще не реализован установочный скрипт, так что чтобы установить/запаковать в пакет придется вручную раскидать файлы по директориям и создать симлинки.
Для примера - кусок из скрипта сборки пакета для AgiliaLinux:

build()
{
go_src_dir
burn_patches

mkdir -p ${pkgdir}/usr/{bin,share/{$pkgname,locale/ru/LC_MESSAGES}}

cp -a ${srcdir}/trunk/src/images ${pkgdir}/usr/share/${pkgname}
cp -a ${srcdir}/trunk/src/snapfly_core ${pkgdir}/usr/share/${pkgname}
cat ${srcdir}/trunk/src/${pkgname} > ${pkgdir}/usr/share/${pkgname}/${pkgname}
cat ${srcdir}/trunk/src/${pkgname}-show > ${pkgdir}/usr/share/${pkgname}/${pkgname}-show

cd ${srcdir}/trunk/lang
msgfmt ru_RU.po

mv ${srcdir}/trunk/lang/messages.mo ${pkgdir}/usr/share/locale/ru/LC_MESSAGES/${pkgname}.mo

chmod 755 ${pkgdir}/usr/share/${pkgname}/${pkgname}
chmod 755 ${pkgdir}/usr/share/${pkgname}/${pkgname}-show

ln -s /usr/share/$pkgname/${pkgname} ${pkgdir}/usr/bin
ln -s /usr/share/$pkgname/${pkgname}-show ${pkgdir}/usr/bin
}
В ближайшее время постараемся исправить этот небольшой недостаток :)

Nomer_Uno ()

пора переходить на openbox окончательно

derlafff ★★★★★ ()

>написанного на Python

Закапывайте

anonymous ()

чем оно лучше стандартного меню? (кроме излишнего eye-candy)

annulen ★★★★★ ()

Вообще новость доставляет. Два перца осилили минорный релиз свей поделки длиной в 500 строк. Непременно на главную!

anonymous ()

почему нигде нет кнопки донейт?

tazhate ★★★★★ ()

для показа меню в режиме 'демона' добавлен скрипт snapfly-show, дублирующий функционал убран из основного приложения.

Скрипт доставляет своей нетривиальностью:

#!/bin/sh
dbus-send --session --type=method_call --dest=ru.agilialinux.openbox /SnapFly ru.agilialinux.openbox.toggle
anonymous ()

> лёгкого GTK+-меню, написанного на Python

Это как?

И вообще... зачем велосипеды строить? Чем им LXDE не нравится? Лучше бы включились в его разработку... допиливали бы lxmenu.

BattleCoder ★★★★★ ()

Много шума из ничего. Тащить gtk в легковесные окружения - отличная идея, угу.

yoghurt ★★★★★ ()
Ответ на: комментарий от annulen

> чем оно лучше стандартного меню? (кроме излишнего eye-candy)

хотя-бы автогенерацией и тем что удовлетворяет спекам freedesktop по части реализации меню.

Nomer_Uno ()
Ответ на: комментарий от anonymous

что ты этим хотел сказать?

Да, он прост, зато избавляет от необходимости вызывать меню через питон, как было у adeskmenu, что приводило к достаточно серьезным тормозам с отображением.

Nomer_Uno ()
Ответ на: комментарий от yoghurt

>gtk с питоном, ради какого то меню, охщ

Можно подумать, что у большинства оно уже не стоит…

fat_angel ★★★★★ ()

>лёгкого

на Python


Мне конечно Питон симпатичен но понятно становится почему гном такой тормозной - даже альтернатива на интерпретируемом языке легче натива

DNA_Seq ★★☆☆☆ ()
Ответ на: комментарий от yoghurt

А что туда ещё можно? Голый X?
На данный момент все легкие окружения, обретшие популярность (XFCE, LXDE) построены на GTK.

Okitain ()
Ответ на: комментарий от tazhate

про донейты где-то на форуме ищи, мы просто не стремимся их получать особо ;)

DoctorSinus ★★★★★ ()
Ответ на: комментарий от fat_angel

у меня в голой netbsd не стояло, например :) Зато можно было полноценно работать - достаточно пары-тройки терминалов и emacs

yoghurt ★★★★★ ()
Ответ на: комментарий от anonymous

> >написанного на Python

Закапывайте

Поддерживаю.

anonymous ()
Ответ на: комментарий от DoctorSinus

ну можно же кнопочку то повесить или тупо пейпал/я.$ :)

tazhate ★★★★★ ()

Из написанного на Python лучше MintMenu не было, нет, и боюсь, что не будет.

Jayrome ★★★★★ ()
Ответ на: комментарий от BattleCoder

> зачем велосипеды строить?

ЧСВ. И приятнее писать что-нибудь с нуля, а не разбираться в чьем-нибудь маразме.

допиливали бы lxmenu.

Все кругом знают, что кому надо делать.

anonymous ()
Ответ на: комментарий от DNA_Seq

> >Чем им LXDE не нравится?

он уже не gtk

С каких пор?

anonymous ()

>лёгкого GTK+-меню,

написанного на Python

лёгкого
написанного на Python

...

anonymous ()
Ответ на: комментарий от Okitain

Это попсовые _готовые_ лёгкие окружения.

Могу поведать про свой конфиг: fvwm, urxvt, emacs, finch, elinks. Всё. Музыку слушаю и в джаббере сижу из емакса, книги стараюсь покупать бумажные, поэтому всякие смотрелки не нужны

yoghurt ★★★★★ ()

Бегло просмотрел код…

Мдааа, это п…ц!

Начнем с того что в 2011 году новый проект использует svn. Ну да ладно это еще цветочки.

Потом установка дефолтных иконок в /usr/share/${appname} — вы про /usr/share/icons/hicolor слышали хоть что-нибудь. Или themed-icon (лень переводить это) не нужны?

Установка питоновского приложения при помощи sh-скрипта — так сложно было осилить distutils/setuptools? Бредовее было бы только использование autohell'а… И устанавливаете то куда? Не в site-packages, а черте куда, мимо PYTHONPATH в /usr/share/${appname}.

Затем добираемся до велосипеднейшего метода find_icon в __init__.py (sic!). Вы gtk-doc вообще открывали? Все уже давно придумано! Смотреть класс gtk.IconTheme с его замечательно функцией gtk.icon_theme_get_default() и прекрасным методом load_icon (хотя полагаю есть и более красивые решения).

fat_angel ★★★★★ ()

A анонимусы у нас прям питонофобы.

rumly111 ()
Ответ на: комментарий от rumly111

> A анонимусы у нас прям питонофобы.

Не любители.

anonymous ()

теперь параметры приложения можно менять без редактирования исходного кода.

Обалдеть! Все остальные разработчики нервно курят в сторонке...

nio-kun ()
Ответ на: комментарий от BattleCoder

> Чем им LXDE не нравится? Лучше бы включились в его разработку... допиливали бы lxmenu

+1

doctorx ★★★ ()
Ответ на: комментарий от nio-kun

скажи это разработчику adeskmenu, который держал параметры внутре исходника

DoctorSinus ★★★★★ ()
Ответ на: Бегло просмотрел код… от fat_angel

в следующем выпуске мы учтем все ваши замечания и приведем код в более подобающее состояние :)

кстати, спасибо за конструктивную критику!

Nomer_Uno ()
Ответ на: комментарий от rumly111

Я не против питона вообще. Например, пользуюсь portage и он мне нравится. Но считаю если и писать что-то «лёгковесное», то скорее на C. Тем более когда весь проект укладвыается в курсач студента...

anonymous ()
Ответ на: Бегло просмотрел код… от fat_angel

Вот еще перл:

cfg_file = home = os.getenv('HOME') + '/.config/snapfly/usermenu'

XDG Basedir Specification прочитайте на досуге как нибудь и примите во внимание то, что юзверь или сопровождающий пакета может переопределить переменную XDG_CONFIG_HOME. Правильнее писать что-то вроде такого:

cfg_file = home = os.getenv('XDG_CONFIG_HOME', os.getenv('HOME')+'/.config') + '/snapfly/usermenu'

fat_angel ★★★★★ ()
Ответ на: комментарий от nio-kun

>>теперь параметры приложения можно менять без редактирования исходного кода.

Обалдеть! Все остальные разработчики нервно курят в сторонке...


Есть такие любители задро-минимализма, которые предпочитают менять настройки только в сурсах. Не помню название был какой-то оконный менеджер, где разрабы ограничили себя по числу строк до 2к и места для парсера конфигов видать не хватило.

anonymous ()
Ответ на: комментарий от yoghurt

>книги стараюсь покупать бумажные, поэтому всякие смотрелки не нужны

Квартира от складирования не треснет?)

Napilnik ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.