Linux - это интересно!
Вы не вошли.
Страницы 1
Достаточно продолжительное время использую рандомную смену обоев, которые показываются при помощи feh и нехитрого скрипта:
#!/bin/sh
while true; do
find ~/.walp -type f \( -name '*.jpg' -o -name '*.png' \) -print0 |
shuf -n1 -z | xargs -0 feh --bg-fill
sleep 15m
done
Когда картинок в папке было не так много, то можно было просто её открыть (~/.walp) и удалить/отредактировать.
Однако, искать картинку в распухающей папке с большим количеством файлов вручную занимает очень много времени.
Проще открыть в редакторе текущие обои и что-то с ними сделать.
Недавно обнаружил, что когда происходит смена обоев, то в домашней директории создаётся файл '.fehbg':
#!/bin/sh
'feh' '--bg-fill' '/home/ЮЗЕР/.walp/e28a8e6ba861b8cacfaf44df60e.jpg'
В нём (файле) содержится путь до актуального на текущей момент изображения, которое представлено в виде обоев.
Пришла идея, что эту информацию можно использовать.
Вот скрипт, который позволяет открыть текущие обои в viewnior:
#!/usr/bin/env python
import subprocess, getpass
# # составить команду
comand='viewnior ' + open('/home/ /.fehbg'.replace(' ', getpass.getuser())).readlines()[1][18:]
#print(comand)
# # выполнить и выйти
subprocess.call(comand, shell=True)
raise SystemExit
У меня не получилось сделать такое на "баш", но получилось на питоне3,
если кто подскажет как такое на баше зае*ашить, или оптимизировать пинонячий код,
буду очень признателен.
Долой DE! Даёшь WM!
Вне форума
версия 0.0.2 (понятная и простая)
#!/usr/bin/env python
import os
# путь до ~/.fehbg
path=os.environ['PWD']+'/.fehbg'
# текущее изображение
image=open(path).readlines()[1][18:]
# редактор изображений
editor='viewnior'
# составить команду
comand=editor+' '+image
#print(comand)
# выполнить и выйти
os.popen(comand)
raise SystemExit
Долой DE! Даёшь WM!
Вне форума
У меня не получилось сделать такое на "баш", но получилось на питоне3,
На bash -e, я бы написал вот так:
viewnior "$(cat ~/.fehbg | awk -F"'" '/feh/{print $6}')" & disown
Вне форума
Привет, ZEN!
воооот, то что нужно.
Спасибо большое!
на питоне хорошо, а на баше лучше
Отредактировано BigOrange (06-04-2018 06:47:08)
Долой DE! Даёшь WM!
Вне форума
Не за что) Я бы мог написать вариант на Python, но так коротко, как на bash -е, не получится.
Да, кстати, если файл ~/.fehbg по какой-то причине отсутствует, то viewnior откроет картинки из домашней директории, если они там есть. Можно доработать однострочник, что бы открывал заранее подготовленную картинку вместо этого. Но не уверен, что оно того стоит.
Вне форума
но так коротко, как на bash
на питоне пробовал сократить, короче твоего варианта не получалось всё равно.
для читаемости просто разложил по полочкам, на скорости особо не сказывается и импорта не избежать как ни крути.
если файл ~/.fehbg по какой-то причине отсутствует...
это в параметрах feh задаётся. (--no-fehbg)
по дефолту создаётся, если права есть.
Добавлено спустя 32 мин 09 с:
есть момент ещё один мелкий не досадный, но всё же есть.
когда закрываю viewnior, консоль "занята", надо что-то дописать, чтобы приглашение опять появлялось.
Долой DE! Даёшь WM!
Вне форума
это в параметрах feh задаётся. (--no-fehbg)
по дефолту создаётся, если права есть.
Я про другую ситуацию) Например, свежая установка системы. feh еще ни разу не запускался и файла нет.
есть момент ещё один мелкий не досадный, но всё же есть.
когда закрываю viewnior, консоль "занята", надо что-то дописать, чтобы приглашение опять появлялось.
Если я правильно понимаю, то это скорее всего поведение команды disown. Тут уж ничего не поделать.
Вне форума
подскажЫте,а как запилить?
я поудалял 200 скриптов XScreenSaver = "ни о чём/каменный век"
оставил слайдшоу и ещё,какй то,для образца из mate-screensaver ,
у меня стоит заставка http://www.dreamaquarium.com/ ,под Wine,
но иногда и картинки,скопленые тяжким трудом,тоже хочется посмотреть,
кинул рядом в ..... /usr/lib/mate-screensaver/ файл для запуска feh (слайдшоу+рекурс+ещё пару директорий+фулскрин+рандом).
feh -dZzFr -D 3 '/home/svm/Pictures/Wallpaper' '/home/svm/Pictures/aku-aku' '/home/svm/Pictures/animals'
feh делает полный листинг ,а как бы увидеть последние ,показаные,когда тормознул screensaver.
я его ,скрипт , выбрал в скринсейверах через гуй (в /usr/share/applications/screensavers/ сделал ярлык , .desktop ) ,
демон,mate-screensaver его стартует ,но он не убивает feh ,его могу только как /через ПКМ>exit, а как убить , а-ля = при клике/дрочке мышкой? (ну как обычную заставку).
в этой теме/вопросе , меня заинтересовало,как узнать , какая картинка показывалась последней?,
не вседа найдёшь,то что увидел ,5-15 сек назад (хотелось БЫ видеть лог, последних 5-10,
чтоб знать ,что удалит/подправить и.т.д ,особенно когда они отображаются рандомно
ЗЫ
исправлено 100500 раз
Умный поймёт , а дураку и так всё равно.
Вне форума
@ZEN, ваша команда перестала работать, видимо дообновляли disown ((
Долой DE! Даёшь WM!
Вне форума
@ZEN, ваша команда перестала работать, видимо дообновляли disown ((
Сложно сказать в чем причина. Разве что команда запускается не в bash, а скажем в dash (можно проверить командой ls -la /bin/sh)... В dash, к слову, вообще нет команды disown.
Попробуй вот так запустить:
bash -c "viewnior \"\$(cat ~/.fehbg | awk -F\"'\" '/feh/{print \$6}')\" & disown"
В теории должно помочь
Вне форума
Вне форума
первоначальный вариант скрипта слегка переделал и заработало
почему-то смещение из-за каких-то левых символов
#!/usr/bin/env python
import subprocess, getpass
# # составить команду
comand='viewnior ' + open('/home/ /.fehbg'.replace(' ', getpass.getuser())).readlines()[1][15:-3]
#print(comand)
# # выполнить и выйти
subprocess.call(comand, shell=True)
raise SystemExit
то есть было readlines()[1][18:]
теперь стало readlines()[1][15:-3]
Долой DE! Даёшь WM!
Вне форума
Интересно почему изменился формат файла ~/.fehbg... Покажи содержимое, посмотрим что можно поправить в однострочнике, что бы все учесть
Вне форума
@ZEN, там в строке добавились "лишние" символы.
питон видит по 3 с каждой стороны.
Долой DE! Даёшь WM!
Вне форума
а linuxhub.ru всё?
Долой DE! Даёшь WM!
Вне форума
@ZEN, там в строке добавились "лишние" символы.
питон видит по 3 с каждой стороны.
Нужно их как-то распарсить. Потому что вот эти изменения
то есть было readlines()[1][18:]
теперь стало readlines()[1][15:-3]
решают проблему лишь на время. Ты же не хочешь каждую неделю исправлять скрипт?
а linuxhub.ru всё?
Да, более пяти лет прошло, а цель свою форум не оправдал. Разве что был полезной строчкой в резюме.
Кстати, если нужны статьи с форума, то есть возможность поднять его локально с помощью docker.
https://github.com/LinuxHubRu/dockerized-linuxhub_ru
Вне форума
@BigOrange, ты же feh юзаешь, подскажи, как его запускать без рамки окна?
UPD. Разобрался сам, надо запускать с ключом -x. Это я в тунар добавил особое действие - слайдшоу, а в нем рамка - как у коровы седло:
Выделил изображения, открыл и оно само их переключает, можно и колесиком, если интересно:
Name : View as Slideshow
Description : Shows images in a nice view
Command : feh -. -g800x600 -Z -d -x -Bblack -D2.5 %F
Appearence Conditions:
File Pattern: *
Appears if : Images
Отредактировано redix (22-07-2018 16:41:11)
In Tux We Trust
Вне форума
@redix, ЭЭЭЭЭЭЭЭЭЭ....
я ещё юзаю опенбокс там всё можно без рамки окна запускать
~/.config/openbox/rc.xml
<keybind key="W-0x24">
<action name="ToggleMaximizeFull"/>
<action name="ToggleDecorations"/>
</keybind>
<keybind key="W-h">
<action name="ToggleDecorations"/>
</keybind>
Долой DE! Даёшь WM!
Вне форума
юзаю опенбокс там всё можно без рамки окна запускать
Если поставить компиз, то все и так будет без рамки. ))))
Вот что получилось:
ЗЫ. В следующий раз нужно будет установить частоту 60hz в vokoscreen, а то моргает.
Отредактировано redix (24-07-2018 15:06:55)
In Tux We Trust
Вне форума
Страницы 1
[ Сгенерировано за 0.016 сек, 7 запросов выполнено - Использовано памяти: 1.7 Мбайт (Пик: 1.78 Мбайт) ]