Zenway

Linux - это интересно!

Вы не вошли.

#1 12-12-2017 23:11:05

BigOrange
Модератор
Откуда: Саратов
Здесь с 20-11-2010
Сообщений: 2,303
LinuxUnknown

python - редактор обоев

Достаточно продолжительное время использую рандомную смену обоев, которые показываются при помощи 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!

Вне форума

#2 15-12-2017 07:05:12

BigOrange
Модератор
Откуда: Саратов
Здесь с 20-11-2010
Сообщений: 2,303
LinuxUnknown

Re: python - редактор обоев

версия 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 06-04-2018 00:15:42

ZEN
Участник
Здесь с 21-03-2013
Сообщений: 37
LinuxFirefox 59.0

Re: python - редактор обоев

BigOrange пишет:

У меня не получилось сделать такое на "баш", но получилось на питоне3,

На bash -e, я бы написал вот так:

viewnior "$(cat ~/.fehbg | awk -F"'" '/feh/{print $6}')" & disown

Вне форума

#4 06-04-2018 06:39:21

BigOrange
Модератор
Откуда: Саратов
Здесь с 20-11-2010
Сообщений: 2,303
LinuxUnknown

Re: python - редактор обоев

Привет, ZEN!
воооот, то что нужно.
Спасибо большое!

на питоне хорошо, а на баше лучше

Отредактировано BigOrange (06-04-2018 06:47:08)


Долой DE! Даёшь WM!

Вне форума

#5 06-04-2018 12:34:32

ZEN
Участник
Здесь с 21-03-2013
Сообщений: 37
LinuxFirefox 59.0

Re: python - редактор обоев

Не за что) Я бы мог написать вариант на Python, но так коротко, как на bash -е, не получится. smile

Да, кстати, если файл ~/.fehbg по какой-то причине отсутствует, то viewnior откроет картинки из домашней директории, если они там есть. Можно доработать однострочник, что бы открывал заранее подготовленную картинку вместо этого. Но не уверен, что оно того стоит.

Вне форума

#6 06-04-2018 19:28:57

BigOrange
Модератор
Откуда: Саратов
Здесь с 20-11-2010
Сообщений: 2,303
LinuxUnknown

Re: python - редактор обоев

ZEN пишет:

но так коротко, как на bash

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

ZEN пишет:

если файл ~/.fehbg по какой-то причине отсутствует...

это в параметрах feh задаётся. (--no-fehbg)
по дефолту создаётся, если права есть.

Добавлено спустя 32 мин 09 с:
есть момент ещё один мелкий не досадный, но всё же есть.
когда закрываю viewnior, консоль "занята", надо что-то дописать, чтобы приглашение опять появлялось.


Долой DE! Даёшь WM!

Вне форума

#7 07-04-2018 10:52:05

ZEN
Участник
Здесь с 21-03-2013
Сообщений: 37
LinuxFirefox 59.0

Re: python - редактор обоев

BigOrange пишет:

это в параметрах feh задаётся. (--no-fehbg)
по дефолту создаётся, если права есть.

Я про другую ситуацию) Например, свежая установка системы. feh еще ни разу не запускался и файла нет.

BigOrange пишет:

есть момент ещё один мелкий не досадный, но всё же есть.
когда закрываю viewnior, консоль "занята", надо что-то дописать, чтобы приглашение опять появлялось.

Если я правильно понимаю, то это скорее всего поведение команды disown. Тут уж ничего не поделать.

Вне форума

#8 07-04-2018 22:31:58

svm
Модератор
Откуда: N-sk 54.93, 82.89
Здесь с 04-12-2017
Сообщений: 138
Сайт
UbuntuFirefox 59.0

Re: python - редактор обоев

подскажЫте,а как запилить?
я поудалял 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 раз


Умный поймёт , а дураку и так всё равно.

Вне форума

#9 18-05-2018 07:16:29

BigOrange
Модератор
Откуда: Саратов
Здесь с 20-11-2010
Сообщений: 2,303
LinuxFirefox 52.9

Re: python - редактор обоев

@ZEN, ваша команда перестала работать, видимо дообновляли disown ((


Долой DE! Даёшь WM!

Вне форума

#10 19-05-2018 19:30:17

ZEN
Участник
Здесь с 21-03-2013
Сообщений: 37
LinuxFirefox 60.0

Re: python - редактор обоев

BigOrange пишет:

@ZEN, ваша команда перестала работать, видимо дообновляли disown ((

Сложно сказать в чем причина. Разве что команда запускается не в bash, а скажем в dash (можно проверить командой ls -la /bin/sh)... В dash, к слову, вообще нет команды disown.

Попробуй вот так запустить:

bash -c "viewnior \"\$(cat ~/.fehbg | awk -F\"'\" '/feh/{print \$6}')\" & disown"

В теории должно помочь

Вне форума

#11 20-05-2018 08:09:16

BigOrange
Модератор
Откуда: Саратов
Здесь с 20-11-2010
Сообщений: 2,303
LinuxUnknown

Re: python - редактор обоев

@ZEN, Привет!
твоя не рабоать((
2018052015_4976163_30229815.jpg
да вообще лажа какая-то, мой питонячий скрипт тоже перестал работать, ругается на неверный путь:

~/programs/fehbg$ ./feh-bg-edit.py
  File "./feh-bg-edit.py", line 6
    path=/home/sveta/.fehbg
         ^
SyntaxError: invalid syntax

Долой DE! Даёшь WM!

Вне форума

#12 20-05-2018 08:40:08

BigOrange
Модератор
Откуда: Саратов
Здесь с 20-11-2010
Сообщений: 2,303
LinuxUnknown

Re: python - редактор обоев

первоначальный вариант скрипта слегка переделал и заработало
почему-то смещение из-за каких-то левых символов

#!/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!

Вне форума

#13 01-06-2018 20:33:06

ZEN
Участник
Здесь с 21-03-2013
Сообщений: 37
LinuxFirefox 60.0

Re: python - редактор обоев

Интересно почему изменился формат файла ~/.fehbg... Покажи содержимое, посмотрим что можно поправить в однострочнике, что бы все учесть

Вне форума

#14 02-06-2018 02:21:10

BigOrange
Модератор
Откуда: Саратов
Здесь с 20-11-2010
Сообщений: 2,303
LinuxUnknown

Re: python - редактор обоев

@ZEN, там в строке добавились "лишние" символы.
питон видит по 3 с каждой стороны.


Долой DE! Даёшь WM!

Вне форума

#15 02-06-2018 02:25:30

BigOrange
Модератор
Откуда: Саратов
Здесь с 20-11-2010
Сообщений: 2,303
LinuxUnknown

Re: python - редактор обоев

а linuxhub.ru всё?


Долой DE! Даёшь WM!

Вне форума

#16 02-06-2018 15:07:01

ZEN
Участник
Здесь с 21-03-2013
Сообщений: 37
LinuxFirefox 60.0

Re: python - редактор обоев

BigOrange пишет:

@ZEN, там в строке добавились "лишние" символы.
питон видит по 3 с каждой стороны.

Нужно их как-то распарсить. Потому что вот эти изменения

BigOrange пишет:

то есть было readlines()[1][18:]
теперь стало readlines()[1][15:-3]

решают проблему лишь на время. Ты же не хочешь каждую неделю исправлять скрипт? smile

BigOrange пишет:

а linuxhub.ru всё?

Да, более пяти лет прошло, а цель свою форум не оправдал. Разве что был полезной строчкой в резюме. smile

Кстати, если нужны статьи с форума, то есть возможность поднять его локально с помощью docker.
https://github.com/LinuxHubRu/dockerized-linuxhub_ru

Вне форума

#17 22-07-2018 16:27:35

redix
Участник
Откуда: Shangri-La
Здесь с 14-02-2013
Сообщений: 2,398
LinuxChrome 67.0

Re: python - редактор обоев

@BigOrange, ты же feh юзаешь, подскажи, как его запускать без рамки окна?

UPD. Разобрался сам, надо запускать с ключом -x. Это я в тунар добавил особое действие - слайдшоу, а в нем рамка - как у коровы седло:

jZ0Ity4l.png

Выделил изображения, открыл и оно само их переключает, можно и колесиком, если интересно:

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

Вне форума

#18 23-07-2018 00:28:53

BigOrange
Модератор
Откуда: Саратов
Здесь с 20-11-2010
Сообщений: 2,303
LinuxUnknown

Re: python - редактор обоев

@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!

Вне форума

#19 24-07-2018 15:05:15

redix
Участник
Откуда: Shangri-La
Здесь с 14-02-2013
Сообщений: 2,398
LinuxChrome 67.0

Re: python - редактор обоев

BigOrange пишет:

юзаю опенбокс там всё можно без рамки окна запускать

Если поставить компиз, то все и так будет без рамки. ))))

Вот что получилось:

SEk7T6K.gif

ЗЫ. В следующий раз нужно будет установить частоту 60hz в vokoscreen, а то моргает.

Отредактировано redix (24-07-2018 15:06:55)


In Tux We Trust

Вне форума

Сейчас в этой теме пользователей: 0, гостей: 1
[Bot] claudebot

Подвал форума

Под управлением FluxBB
Модифицировал Visman

[ Сгенерировано за 0.020 сек, 10 запросов выполнено - Использовано памяти: 1.69 Мбайт (Пик: 1.78 Мбайт) ]