kosmass_zt 17.11.2010 14:30
Tips & tricks — Автоматическая смена обоев в Openbox
Недавно решил опробовать Openbox. Пару часов гугления и правки конфигов - и на меня смотрит мой новый рабочий стол.Отличная скорость работы, ничего лишнего. Казалось бы, что еще нужно для счастья?
Эврика! Если обоина держится на столе больше 15 минут - меня начинает одолевать невыносимая скука.
Исправить ситуацию мне помогла программа feh и начальные познания в python.
Приступим)
У меня установлена Ubuntu 10.04, а openbox - вторым WM.
Для начала сделаем так:
1 |
|
Потом в папку ~/.config/openbox/ закидываем наш скрипт, который можно назвать например setwallpaper.py
В скрипт автозагрузки ~/.config/openbox/autostart.sh добавляем строку
1 |
|
Не забываем сделать оба скрипта исполняемыми.
Теперь самое интересное.
В принципе, такой вариант меня вполне устраивает.
Единственный минус - если в имени папки с картинками есть пробел - ничего не заработает. Придумаю, как побороть - поправлю.
Замечания и критика приветствуется :)
UPD: Забыл совсем. Нужно сделать еще так:
1 |
|
Побуду немножко занудой и скажу, что всё то же самое можно было сделать на bash, намного короче и проще, плюс, без проблем с пробелами. :)
Ну надо же было помучаться)
За альтернативный вариант - огромное спасибо)
За альтернативный вариант - огромное спасибо)
while true; do feh --bg-scale "$(find ~/.wallpaper -name *.jpg | shuf -n 1)"; sleep 15m; done &
тут вот, как раз, имена с пробелами - будут проблемой. но в целом - примерно то, что я и имел в виду :) Имхо этот вариант даже лучше, а проблему пробелов решить заменой этих пробелов в именах на _
А где ты там кавычки поставишь? :)
По-моему, нормально, без геммора с пробелами только while read dir; do bla-bla "$dir"; .... работает.. а этими find и прочими вечно проблемы.
По-моему, нормально, без геммора с пробелами только while read dir; do bla-bla "$dir"; .... работает.. а этими find и прочими вечно проблемы.
fd@workstation:~$ find /home/fd/Documents/ -name *.jpg
/home/fd/Documents/iptv/sxema_dib.jpg
/home/fd/Documents/iptv/iptv.jpg
/home/fd/Documents/iptv/amino125.jpg
/home/fd/Documents/wallpaper2.jpg
/home/fd/Documents/Raining.jpg
/home/fd/Documents/osi.jpg
/home/fd/Documents/Fifty_Percent_Grey.jpg
/home/fd/Documents/wallpaper1.jpg
/home/fd/Documents/iptv/sxema_dib.jpg
/home/fd/Documents/iptv/iptv.jpg
/home/fd/Documents/iptv/amino125.jpg
/home/fd/Documents/wallpaper2.jpg
/home/fd/Documents/Raining.jpg
/home/fd/Documents/osi.jpg
/home/fd/Documents/Fifty_Percent_Grey.jpg
/home/fd/Documents/wallpaper1.jpg
Что я делаю не так? :)
fd@workstation:~$ find ~/Documents -name F*.jpg
/home/fd/Documents/Fifty Percent Grey.jpg
/home/fd/Documents/Fifty Percent Grey.jpg
feh --bg-scale "$(find ~/Documents -name F*.jpg | shuf -n 1)"/quote>
Всё великолепно отработало.
если F*.jpg не квотить, то бэш заменит это регулярное выражение ещё до того, как скормит его find.
попробуй создать файл Fail.jpg в той же директории, откуда ты выполняешь скрипт, а потом запустить find ~/Documents -name F*.jpg
попробуй создать файл Fail.jpg в той же директории, откуда ты выполняешь скрипт, а потом запустить find ~/Documents -name F*.jpg
Леди, мне мерещится, мы всё же проверяем пробелы в именах файлов или знание регулярных выражений?
Я показал на примере с файлом, имеющем пробелы в имени. F* - специально чтобы поймать именно файл с пробеламы в имени.
Я показал на примере с файлом, имеющем пробелы в имени. F* - специально чтобы поймать именно файл с пробеламы в имени.
пробелы пробелами, а регулярное выражение стоит заквотить в одинарные кавычки, чтоб можно было обернуть двойными кавычками подстановку команд, чтобы можно было не боятся пробелов в результате оной.
и вообще, я королева бензоколонки.
и вообще, я королева бензоколонки.
1)
2)
root@comp2:~/Документы$ find ./ -name *.doc
find: paths must precede expression: #11.doc
Usage: find <-H> <-L> <-P> <-Olevel> <-D help|tree|search|stat|rates|opt|exec>
2)
root@comp:~/Документы$ find ./ -name "*.doc"
./рефераты/Быт древних словян.doc
./рефераты/Численность населения Украины.doc
./рефераты/титульный лист (реферат экология).doc
...
Эх...