LINUX.ORG.RU

[Набыдлокодил][Покритикуйте] PyBackdrop — программа для установки обоев


0

2

http://bitbucket.org/fat_angel/pybackdrop

Простенькая такая программа для установки обоев с PyGTK'шным GUI.

Хотелось чего-нибудь вроде Nitrogen'а но на PyGTK (так сложилось, что я почти не пользуюсь программами на gtkmm, а тащить такую большую либу ради такой мелочи не тянет) и с более интерактивным интерфейсом (в нитрогене для установки обоев надо обязательно нажать на apply, а у меня они они устанавливаются при выборе из списка).

Обои ставятся внутренними pygtk'шными функциями, поэтому никаких feh'ов, display'ев и прочих подобных утилит не нужно.

Ранее установленные обои можно восстановить (например при старте иксов) запустив `pybackdrop --restore`.

Целевая аудитория — пользователи всяких там *BOX'ов, PekWM'ов и прочего подобного красноглазия.

Скриншот можно посмотреть в вике на bitbucket.

Очень нужны бетатестеры, конструктивная критика быдлокода и заинтересованные люди с хорошим знанием английского для редактирования моего ужасного английского в комментариях к коду и вики-странице.

Имеется ебилд, но тот ебилд что идет под тегом 0.1 не работает, нужно брать вот этот.

P.S. Троллей просьба пройти в толксы ибо, как известно, пистон — тормоз, в gtk — гигантские виджеты, а обои на рабочем столе верный признак латентного виндузятничества.

★★★★★

Совсем забыл!

Устанавливать сию поделку вовсе не обязательно, достаточно перейти в директорию с исходниками и запустить `./pybackdrop`.

fat_angel ★★★★★
() автор топика

> Целевая аудитория — пользователи всяких там *BOX'ов, PekWM'ов и прочего подобного красноглазия.

...воспользуются всякими там feh, display и прочими подобными утилитами.

Хотя это не отменяет нужности утилиты для каких-нибудь других людей.

AITap ★★★★★
()

>установки обоев с PyGTK'шным GUI

Целевая аудитория — пользователи всяких там *BOX'ов, PekWM'ов и прочего подобного красноглазия.

Взаимоисключающие параграфы

А в целом неплохо, единственное что бросилось в глаза - есть методы по почти 100 строчек, всякие ифы часто встречаются, но это несущественно.

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

Ну знаешь… Степень красноглазия среди сего контингента сильно варьируется, кому то будет приятно иметь кликабельный список изображений с превьюшками.

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

>есть методы по почти 100 строчек

Это ты про init_gui() что ли? Ну так инициализация всего интерфейса, фигли…

всякие ифы часто встречаются


Ну так я же быдлокодер… Как иначе можно определить правила размещения изображений, а также достопность тех или иных файлов-переменных не знаю. Подскажи?

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

>Как иначе можно определить правила размещения изображений, а также достопность тех или иных файлов-переменных не знаю. Подскажи?

Сейчас нет времени пристальнее изучать код, но вообще есть движение против ифов: http://www.antiifcampaign.com/ :)

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

>image setter? А это, простите, как? Может лучше background changer, или еще что другое?

Спасибо, починено!

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

>А вообще вложенных-то не так уж и много, жить можно :)

Спасибо, старался!

fat_angel ★★★★★
() автор топика

Ну как-бы неплохо всегда показывать содержимое /usr/share/backgrounds в дополнение к выбранному пользователем каталогу

anonymous
()

В один столбик имхо непрактично эскизы выводить. Почему не сеткой?

Почему Fit width и Fit height, но нет просто Fit?

«„„Method sets up image…


„„„Set up image…

get_last_backdrop

get_placement


get_color



Выглядят почти одинаково, отличаются названием опции конфига и
значением по умолчанию, может быть, не нужно столько дублирования?

elif placement == 4:


elif placement == PLACEMENT_FILL:

Про ебилд:

dodoc LICENSE


Не надо именно так, потому что есть DOCS, и не надо вообще,
потому что все лицензии по-любому хранятся в /usr/portage/licenses

EAPI=3 зачем?

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

>Ну как-бы неплохо всегда показывать содержимое /usr/share/backgrounds

А на этот /usr/share/backgrounds есть какой-нибудь стандарт, желательно FDO'шный? Просто мне сдается, что это что-то дистро- или DE-специфичное, потому что у меня к примеру такой директории нет.

Хотя в принципе сделать такое можно и в настройки добавить.

fat_angel ★★★★★
() автор топика

Мелкие замечания по ебилду:

Убрать «PyBackdrop is » из DESCRIPTION, т.к. дублирует название.
SRC_URI="http://bitbucket.org/fat_angel/${PN}/get/${P}.tar.bz2"
KEYWORDS=«~amd64 ~x86» # тестировал на обоих архитектурах?
DEPEND=«${RDEPEND}» # dev-python/pygtk разве нужен для сборки?
src_install() # Убрать вообще (про лицензию выше написали)

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

>Почему Fit width и Fit height, но нет просто Fit?

Ну к примеру у тебя картинка выше/шире экрана, а ты ее хочешь без полей по бокам/сверху-снизу разместить. Имхо так удобнее.

Выглядят почти одинаково, отличаются названием опции конфига и

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

Я тоже об этом думал, но хотелось универсального интерфейса. Думал ввести «внутренний» метод который дергал бы каждый «публичный» метод со своими параметрами, но так и не решил как лучше. Что посоветуешь?

elif placement == PLACEMENT_FILL:


Ну там эти циферки дергаются из ListStore'а ComboBox'овского, ты имеешь ввиду, ввести дополнительную колонку в ListStore или в класс ввести переменные соответствующие этим цифрам?

dodoc LICENSE


Убедил

EAPI=3 зачем?


В шаблоне было… Я до этого из-за своей лени вообще ебилды не писал.

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

>В один столбик имхо непрактично эскизы выводить. Почему не сеткой?

Мне так больше нравится… К тому же во-первых там выводится некоторая служебная информация об изображении (изначально больше думал выводить), во-вторых чтоб разместить сеткой надо было разбираться с gtk.IconView (или не обязательно?), что было лениво.

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

По драфту положено в wallpapers, но у меня этот каталог пустой

http://freedesktop.org/wiki/DesktopThemeSpec

А вообще осталось сделать сетку, настройки в gconf и можно проситься на замену стандартной гномовской утилиты :)

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

>По драфту положено в wallpapers, но у меня этот каталог пустой

Ну вот и я о том же, пока все не начнут соблюдать стандарт, заморачиваться на эту тему нет желания… Хотя с другой стороны, почему бы не начать с себя?

А вообще осталось сделать сетку


Не, не нравится! Хотя может опционально сделаю… Для повышения скиллов так сказать…

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


А вот это уже точно NO WAY! Кстати идеи для интерфейса своей поделки я черпал, в том числе, и из ранних версий гномовской приблуды…

fat_angel ★★★★★
() автор топика

Не в обиду ТС, но всяческих feh и иже с ними хватает за глаза. Впрочем, постарался - написал, молодец.

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

Ну так вот именно, что консольного барахла дофига! А чтоб с приятным и удобным гуем, да на достаточно распространенном тулките (gtkmm imho к таким не относится) — такого нет. По крайней мере я не нашел.

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

Вместо благодарности лучше протестируй мою поделку.

fat_angel ★★★★★
() автор топика

несколько мониторов умеет? какие возможности кропа и растягивания? списки директорий есть? иначе можно в любом просмотровщике юзать set wallpaper.

PyGTK (так сложилось, что я почти не пользуюсь программами на gtkmm, а тащить такую большую либу ради такой мелочи не тянет)

Целевая аудитория — пользователи всяких там *BOX'ов, PekWM'ов и прочего подобного красноглазия.

и откуда у них возьмётся питон? например, у меня его тоже нет.

с более интерактивным интерфейсом (в нитрогене для установки обоев надо обязательно нажать на apply, а у меня они они устанавливаются при выборе из списка).

gnome hig? apply в нитрогене сохраняет изменения конфиг, по клику - временно, чтобы в случае чего заново не искать старые обои в коллекции и распределять их по мониторам.

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

но хотелось универсального интерфейса

Ну, в чём он у тебя сейчас заключается?

def get_option(self, section_name, option_name, default_value, to_type=str):
    if not self.config.has_option(section_name, option_name):
        return to_type(self.config.get(section_name, option_name))
    else:
        return default_value

ввести переменные соответствующие этим цифрам?

Не обязательно прямо в класс.

Sphinx ★★☆☆
()

interfacelift.com/wallpaper_beta/Db11283a/02273_magensbay_2560x1440.jpg
































Шикаааааааааааарно

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