LINUX.ORG.RU

Что за извращение?

Кстати, можно даже feh использовать для этого (у меня дома так меняются "обои" каждую минуту).

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

Feh не интересно будет переделывать просто. Хочется действительно чего-то что известно только автору, а еще забыто и убого.

Stuffed_toy
() автор топика
Ответ на: комментарий от Stuffed_toy
SetBackgroundToBitmap(bitmap, ww, hh);

// кстати, в xsetroot всего-то полтысячи строк, из которых добрая половина — комментарии или проверка параметров.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от piyavking

Локальное. Просто накачал сотню-другую картинок, и меняю раз в минуту. А онлайн — нафиг, будет всякая порнуха просачиваться еще...

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

А я заморочился по серьёзу, запилил банную кнопку, и имею неплохое онлайн-шоу, глянь, если интересно - http://forum.ubuntu.ru/index.php?topic=238704

А даже если RSS обои не устраивают, то не изячней разве вместо пачки картинок иметь текстовый файлик с адресами обоин, и тасовать его? feh же можно натравливать прямо на адрес картинки, без закачки.

piyavking ★★★★
()

Будь оригинален, поставь картинку по размеру экрана коньками:3 Если коньки чересчур популярны, можешь idesk попробовать.

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

чего-то что известно только автору

Ожидаешь, что автор чего-нибудь забытого и убогого тут отпишется?

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

Тема или раздел, которую Вы ищете, отсутствует или недоступна для входа.
Пожалуйста, войдите или зарегистрируйтесь на форуме «Форум русскоязычного сообщества Ubuntu».

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

Да не за что.

А вообще, раз тебе так хочется выпендриться, пропатч иксы: пусть случайные картинки с порносайтов тягают и на фон втыкают ☺

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

А потом эту фичу забульбенить в "самую передовую" федорку ☺

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от piyavking

Тема или раздел, которую Вы ищете, отсутствует или недоступна для входа.

Пожалуйста, войдите или зарегистрируйтесь на форуме «Форум русскоязычного сообщества Ubuntu».

ты б ещё предложил говнеца поесть

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

Продублировал

Канонiчный feh очень пригодился тем, что его можно натравливать прямо на url картинки, без закачивания её на винт.

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

Спасибо за внимание.

#!/bin/bash

# Парсер обоев с девиантарта, bingimages, goodfons, фликра, и обойного ВКонтактного паблика Paperchan. При запуске выбирает случайные обои из последних опубликованных на источниках. Есть возможность использования своего списка ссылок на обои.
# Предназначен для запуска по cron, в связи с чем имя пользователя прописывал "в лоб", поэтому для использования "piyavking" следует заменить на своё имя юзера. Различные ключи запуска позволяют формировать "чёрный список", "избранное", и включать-выключать источники обоев. Есть достаточно подробные, как я считаю, комментарии.
# Писался для использования на двух мониторах, лёгким движением приспосабливается под любое их количество. Используется curl и xmlstarlet. Для отрисовки обоев используется feh (при наличии другого менеджера обоев достаточно заменить соответствующую строку на свою обойную команду).

# если пользователь в иксах
if [ "$(who | grep 'piyavking pts')" != '' ];then
	# задаём директории для локальных обоев и конфигурационных файлов (в конфигурационной директории создаём список по умолчанию wallurl.default), количество обоев из каждого источника
	# конфиг walllist.conf имеет вид:
	###############
	# bindimage 1
	# deviantart 1
	# favorities 1
	# flickr 1
	# goodfon 1
	# local 0
	# paperchan 1
	###############
	local_dir='/home/piyavking/Pictures/wallpapers/'
	conf_dir='/home/piyavking/Pictures/wallpapers/'
	vol=5
	# функции отсеивания забаненных изображений и и записи 5 случайных адресов из локального списка в глобальный
	function check1 {
		banned="n"
		while read lineban;do
			if [ "$1" == "$lineban" ];then
				banned="y"
			fi
		done < $3
		if [ "$banned" != "y" ];then
			echo $1 >> $2
		fi
	}
	function check2 {
		checked=$1
		while read linecheck;do
			checked=$(grep -v $linecheck <<< "$checked")
		done < $conf_dir'banned.txt'
		wallurl="$wallurl"$'\n'"$(echo "$checked" | shuf | head -n $vol)"
	}
	# если скрипт запущен с аргументом
	if [ "$1" != "" ];then
		# определяем монитор, на котором находится мышь, оперируем с обоиной на этом мониторе
		if [ $((`xdotool getmouselocation | awk -F' ' '{print $1}' |  awk -F':' '{print $2}'`)) -lt 1280 ]; then 
			wname=`cat $conf_dir'wallname' | head -n 1 | awk -F' ' '{print $1}'`
		else
			wname=`cat $conf_dir'wallname' | head -n 1 | awk -F' ' '{print $2}'`
		fi
		# разбор по случаям аргументов
		case "$1" in
			"-f"   ) 
			# отправить в избранное
				check1 $wname $conf_dir'favorities.txt' $conf_dir'favorities.txt'
			;;
			"-b"   ) 
			# не загружать больше
				check1 $wname $conf_dir'banned.txt' $conf_dir'banned.txt'
			;;
			"-e"   ) 
			# показать в браузере
				x-www-browser $wname
			;;
		esac
		# если запустить скрипт с тегом в качестве аргумента, то он поменяет соответствующее тегу число в walllist.conf с 0 на 1, и наоборот
		if [ "$(cat $conf_dir'walllist.conf' | grep $1)" != "" ];then
			conftemp=$(cat $conf_dir'walllist.conf')
			case $(echo "$conftemp" | grep $1" " | awk -F' ' '{print $2}') in
				"1"   ) 
					echo "$conftemp" | sed "s/${1}\ 1/${1} 0/g" > $conf_dir'walllist.conf'
				;;
				"0"   ) 
					echo "$conftemp" | sed "s/${1}\ 0/${1} 1/g" > $conf_dir'walllist.conf'
				;;
			esac
		fi
	# без аргумента
	else
		# загружаем список, из которого будет выбираться обоина, и начинаем его формировать, в файле walllist.conf содержатся ключи использования источников, если напротив источника стоит 0, то он не используется
		wallurl=''
		# проверяем сеть
		if ( ping -c 1 "ya.ru" > /dev/null 2>&1 );then
			# парсим deviantart rss
			if [ "$(cat $conf_dir'walllist.conf' | grep deviantart | awk -F' ' '{print $2}')" != "0" ]; then
				check2 "$(curl 'http://backend.deviantart.com/rss.xml?q=in%3Acustomization%2Fwallpaper+sort%3Atime' | xmlstarlet sel -t -v '//media:content/@url')"
			fi
			# парсим bindimage rss
			if [ "$(cat $conf_dir'walllist.conf' | grep bindimage | awk -F' ' '{print $2}')" != "0" ]; then
				check2 "$(curl 'http://feeds.feedburner.com/bingimages' | xmlstarlet sel -t -v '//enclosure/@url')"
			fi
			# парсим flickr rss
			if [ "$(cat $conf_dir'walllist.conf' | grep flickr | awk -F' ' '{print $2}')" != "0" ]; then
				check2 "$(curl 'http://api.flickr.com/services/feeds/photos_public.gne?tags=wallpaper,wallpapers&tagmode=any' | grep 'link rel="enclosure" type="image/jpeg" href=' | awk -F'"'  '{print $6}')"
			fi
			# парсим goodfon rss
			goodfon=''
			if [ "$(cat $conf_dir'walllist.conf' | grep goodfon | awk -F' ' '{print $2}')" != "0" ]; then
				while read GF_item;do
					goodfon="$goodfon"$'\n'$(curl $(curl $GF_item | grep 'Скачать оригинал:' | sed -e "s/<\|>/\n/g" | grep 'a href'  | awk -F'"' '{print $2}' | sed 's/^/http:\/\/www.goodfon.ru/') | grep 'top.location.href' | awk -F"\x27" '{print $2}' | awk -F"?" '{print $1}')
				done <<< "$(curl 'http://www.goodfon.ru/goodfon.rss' | xmlstarlet sel -t -v '//link' | sed '1,1d')"
				check2 "$(sed '1,1d' <<< "$goodfon")"
			fi
			# парсим стенку Paperchan'а (подобным образом можно парсить любой паблик)
			paperchan=''
			if [ "$(cat $conf_dir'walllist.conf' | grep paperchan | awk -F' ' '{print $2}')" != "0" ]; then
				while read SD_item;do
					while read SD_photo;do
						src=$(curl --user-agent "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" $SD_photo | sed -e 's/\"id\"/\n/g' | grep $(echo $SD_photo | awk -F'_' '{print $2}') | grep 'w_src' | awk -F'"w_src"' '{print $2}' | awk -F'"' '{print $2}' | sed -e 's/\\//g')
						if [ "$src" == '' ];then
							src=$(curl --user-agent "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" $SD_photo | sed -e 's/\"id\"/\n/g' | grep $(echo $SD_photo | awk -F'_' '{print $2}') | grep 'z_src' | awk -F'"z_src"' '{print $2}' | awk -F'"' '{print $2}' | sed -e 's/\\//g')
						fi
						paperchan="$paperchan"$'\n'$src
						sleep 1
					done <<< "$(curl --user-agent "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" $SD_item | sed -e "s/<\|>/\n/g" | grep 'return showPhoto' | awk -F"\x27" '{print $2}'  | sed 's/^/http:\/\/vk.com\/photo/')"
				done <<< "$(curl --user-agent "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" 'http://vk.com/wall-55438333?own=1' | sed -e "s/<\|>/\n/g" | grep 'href="/wall-55438333_' | awk -F'"' '{print $2}' | awk -F'?' '{print $1}' | sed 's/^/http:\/\/vk.com/' | sort | uniq)"
				check2 "$(sed '1,1d' <<< "$paperchan")"
			fi
			# добавляем случайных обоин из избранного (в файле 'favorities' допускаются комментарии с '#')
			if [ "$(cat $conf_dir'walllist.conf' | grep favorities | awk -F' ' '{print $2}')" != "0" ]; then
				wallurl="$wallurl"$'\n'"$(cat $conf_dir'favorities.txt' | grep -v '#' | shuf | head -n $vol)"
			fi
		fi
		# добавляем локальных обоин
		if [ "$(cat $conf_dir'walllist.conf' | grep local | awk -F' ' '{print $2}')" != "0" ]; then
			wallurl="$wallurl"$'\n'"$(find $local_dir -type f -name '*.jpg' -o -name '*.png' | shuf | head -n $vol)"
		fi
		# если список не сформирован, используем дефолтный
		if [ "$wallurl" == '' ]; then
			wallurl=$(cat $conf_dir'wallurl.default')
		fi
		# убираем в списке верхнюю пустую строку, вешаем на столы случайные обоины из списка, записываем их адреса в wallname
		wallurl=$(sed '/./,$!d' <<< "$wallurl")
		wallname=$(shuf <<< "$wallurl" | head -n 2 | sed "{:q;N;s/\n/ /g;t q}")
		feh --bg-fill $wallname
		echo $wallname > $conf_dir'wallname'
	fi
fi

бонус во вложении - мой скромный favorities.txt (13031 наименование)

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

Не рычи, я не специально. Кто ж знал, что там Talks для нечленов прикрыт.

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

фильмы это некошерно, а вот правильно закольцованные и адекватно замощённые гифки выглядят красиво.

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

Ну, поищи. feh не умеет анимацию.

Вот что гугол сказал по первой ссылке:

gifview --animate -new--window root  animated.gif
Eddy_Em ☆☆☆☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.