Losowe zdjęcie w Conky

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
wujekk13
Piegowaty Guziec
Piegowaty Guziec
Posty: 10
Rejestracja: 20 kwie 2010, 18:00
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Openbox
Architektura: x86

[solved] Losowe zdjęcie w Conky

Post autor: wujekk13 »

Chciałbym w Conky utworzyć małą galerię, w której zdjęcia zmieniałyby się co jakiś czas.
Wykorzystałem do tego celu skrypt w bash'u o nazwie "nowe":

Kod: Zaznacz cały

#!/bin/bash

RANGE=13
number=$RANDOM
let "number %= $RANGE"
echo "\${image /home/ogr/scripts/foto/$number.jpg -p 25,530 -s 250x190}"
a do Conky dodałem go poprzez komendę:

Kod: Zaznacz cały

${execpi 200 ~/scripts/nowe}
i zdjęcia są wyświetlane. Niestety problemy zaczynają się, gdy chcę wyświetlić zdjęcia, których wysokość jest większa niż długość, wtedy grafika się "rozjeżdża". Dlatego chciałbym dla każdego zdjęcia przypisać inne parametry. W trakcie przeszukiwania sieci natrafiłem na ten temat: viewtopic.php?t=76561. Na jego postawie stworzyłem skrypt o treści:

Kod: Zaznacz cały

#!/bin/bash

RANGE=10
number=$RANDOM
let "number %= $RANGE"
zmienna=`sed -n "$number"p zdjecie`

echo "$zmienna"
natomiast w pliku tekstowym "zdjecie" znajduje się 10 wierszy w formie:

Kod: Zaznacz cały

${image /home/ogr/scripts/foto/nazwa_zdjęcia.jpg -p 25,530 -s SZEROKOŚĆxWYSOKOŚĆ}
${image /home/ogr/scripts/foto/nazwa_zdjęcia.jpg -p 25,530 -s SZEROKOŚĆxWYSOKOŚĆ}
...
mam więc pytanie do powyższego kodu co robię nie tak, że ta zmienna nie działa?
dawidgarus
Wytworny Kaczor
Wytworny Kaczor
Posty: 418
Rejestracja: 09 lut 2007, 23:17
Płeć: Mężczyzna
Wersja Ubuntu: 9.10
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: Losowe zdjęcie w Conky

Post autor: dawidgarus »

Kod: Zaznacz cały

sed -n $(( $RANDOM % $(wc -l < zdjecie) + 1 ))"p" zdjecie
to powinno działać. cały skrypt jest w jednej linijce.

zwróć uwagę na dodanie +1. $RANDOM % 10 może mieć wartości 0-9. plik nie ma 0 linijki, a nas interesują 1-10. w tym przypadku skrypt sam sprawdza ile jest linijek w pliku zdjęcie i nie trzeba tego podawać w kodzie.
wujekk13
Piegowaty Guziec
Piegowaty Guziec
Posty: 10
Rejestracja: 20 kwie 2010, 18:00
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Openbox
Architektura: x86

Odp: Losowe zdjęcie w Conky

Post autor: wujekk13 »

a jak zmusić Conky, żeby pobrał ten wynik?
polecenie:

Kod: Zaznacz cały

${execpi 200 ~/scripts/nowe}
w tym przypadku niczego nie wyświetla. Czy nie należałoby tego

Kod: Zaznacz cały

sed -n $(( $RANDOM % $(wc -l < zdjecie) + 1 ))"p" zdjecie
poprzedzić komendą

Kod: Zaznacz cały

echo
?
dawidgarus
Wytworny Kaczor
Wytworny Kaczor
Posty: 418
Rejestracja: 09 lut 2007, 23:17
Płeć: Mężczyzna
Wersja Ubuntu: 9.10
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: Losowe zdjęcie w Conky

Post autor: dawidgarus »

a po co echo? przecież sed od razu wyświetla wynik. nie w tym problem.
sprawdź, czy są ścieżki prawidłowe do pliku zdjęcie (w skrypcie jest 2 razy). najlepiej ustaw ścieżkę bezwzględną, żeby nie było wątpliwości.
wujekk13
Piegowaty Guziec
Piegowaty Guziec
Posty: 10
Rejestracja: 20 kwie 2010, 18:00
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Openbox
Architektura: x86

Odp: Losowe zdjęcie w Conky

Post autor: wujekk13 »

w terminalu ładnie wszystko działa, ale jak chcę ten skrypt dołączyć do Conky to otrzymuję tylko dodatkowy pusty wiersz, a zdjęcie się nie wyświetla. Myślałem o echo ponieważ wydaje mi się, że to polecenie zapamięta wynik, który można wykorzystać w Conky, ale skrypt po modyfikacji:

Kod: Zaznacz cały

#!/bin/bash

zmienna= `sed -n $(( $RANDOM % $(wc -l < zdjecie) + 1 ))"p" zdjecie`
echo "$zmienna"
powoduje nadal wyświetlanie tylko pustego wiersza.
Nie wiem czy źle zmodyfikowałem ten skrypt, czy coś robię nie tak w Conky (dopiero zaczynam przygodę z linuksem i bash'em)?
Chciałem dopisać, że wywołanie zmodyfikowanego skryptu powoduje wyświetlenie błędu:

Kod: Zaznacz cały

nowe: line 3: "${image: nie znaleziono polecenia
dawidgarus
Wytworny Kaczor
Wytworny Kaczor
Posty: 418
Rejestracja: 09 lut 2007, 23:17
Płeć: Mężczyzna
Wersja Ubuntu: 9.10
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: Losowe zdjęcie w Conky

Post autor: dawidgarus »

jeszcze raz się pytam po jaką cholerę ci ta zmienna?
zapis: jest równoważny z:

Kod: Zaznacz cały

echo `foo`
albo:

Kod: Zaznacz cały

bar=`foo`
echo $bar
obstawiam, że to wina błędnej ścieżki do pliku.
dodaj do skryptu:

Kod: Zaznacz cały

sed -n $(( $RANDOM % $(wc -l < zdjecie) + 1 ))"p" zdjecie 2> ~/blad
i sprawdź po uruchomieniu conky, czy w pliku ~/blad nie pokazują się jakieś komunikaty z błędem.
wujekk13
Piegowaty Guziec
Piegowaty Guziec
Posty: 10
Rejestracja: 20 kwie 2010, 18:00
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Openbox
Architektura: x86

Odp: Losowe zdjęcie w Conky

Post autor: wujekk13 »

faktycznie błąd spowodowała błędna ścieżka. Plik mam w folderze "scripts" i po dodaniu prawidłowej ścieżki:

Kod: Zaznacz cały

#!/bin/bash

sed -n $(($RANDOM% $(wc -l < ~/scripts/zdjecie) + 1 ))p ~/scripts/zdjecie
wszystko pięknie działa.

dawidgarus bardzo Ci dziękuję za pomoc i przepraszam, że od razu nie posłuchałem.
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 11 gości