Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Změna tapety v určitý čas  (Přečteno 4184 krát)

Krehy

  • Návštěvník
  • Příspěvků: 39
Změna tapety v určitý čas
« kdy: 13 Listopadu 2007, 21:11:04 »
Neporadil by mi někdo se skriptem, který by umožnil změnu tapety ve vybraný čas? Jako antiprogramátor vůbec netuším jak na to.

nodrive

  • Aktivní člen
  • *
  • Příspěvků: 415

Krehy

  • Návštěvník
  • Příspěvků: 39
Re: Změna tapety v určitý čas
« Odpověď #2 kdy: 14 Listopadu 2007, 06:10:20 »
Omlouvám se, nenapsal jsem, že jedu na Kubuntu 7.04. Bude tento postup fungovat i pod KDE? Jinak mým cílem je podle denní doby nastavovat jeden ze 4 definovaných wallpaperů. Takže bych nejspíš potřeboval vytvořit skript, který by po spuštění zkontroloval kolik je hodin a podle toho by vybral tapetu, která je přiřazena k danému časovému intervalu (nechci měnit pozadí náhodně). Skript by se potom spouštěl pravidelně dejme tomu jednou za 5 minut. Existuje nějaký příkaz pro terminál na změnu tapety?

kkaarreell

  • Stálý člen
  • **
  • Příspěvků: 1072
Re: Změna tapety v určitý čas
« Odpověď #3 kdy: 14 Listopadu 2007, 10:23:24 »
Takovy skript zrejme neni, ale napiste si ho. :-)
Btw, je zbytecne jej poustet co pet minut. Napiste jej tak, aby podle casu nastavil pozadovane pozadi. Pak jej poustejte jen pri startu pocitace a dale pres crontab v ty hodiny (resp. minutu po), kdy se se ma pozadi zmenit (tedy 3xdenne). Proc jej spoustet co pet minut.
S prikazem na zmenu pozadi v KDE vam bohuzel neporadim, ja si vytvarel skript pro GNOME na nahodny vyber z dane mnoziny tapet.

Krehy

  • Návštěvník
  • Příspěvků: 39
Re: Změna tapety v určitý čas
« Odpověď #4 kdy: 14 Listopadu 2007, 11:17:18 »
No právě v tom je ten problém. Věděl bych teoreticky jak na to, jak má skript pracovat, ale nemám ani páru o tom, jaké příkazy použít. Pokud bych pro spouštění skriptu použil crontab, pak by jednoduše stačilo vytvořit skript, který by obsahoval příkaz "nastavit jako pozadí soubor xy" a v příslušný čas by se spustil příslušný skript. Bohužel takový příkaz neznám (což zdaleka neznamená, že neexistuje).

kkaarreell

  • Stálý člen
  • **
  • Příspěvků: 1072
Re: Změna tapety v určitý čas
« Odpověď #5 kdy: 14 Listopadu 2007, 12:12:40 »
no tak to pak uz nezbyva nez pouzit pritele googla (kde change wallpaper command). Odpoved je hned v prvnim odkazu a kdo by to byl rekl, dokonce jsem nasel vcelku primitivni skript umoznujici nastavit tapetu pro kazdou hodinu.
Kód: [Vybrat]
#!/bin/bash

if [ "$(date +%k)" = " 0" ];
then
dcop kdesktop KBackgroundIface setWallpaper /usr/share/wallpapers/BIGLINUX2.jpg 6
fi

if [ "$(date +%k)" = " 1" ];
then
dcop kdesktop KBackgroundIface setWallpaper /usr/share/wallpapers/BIGLINUX2.jpg 6
fi

if [ "$(date +%k)" = " 2" ];
then
dcop kdesktop KBackgroundIface setWallpaper /usr/share/wallpapers/BIGLINUX2.jpg 6
fi

if [ "$(date +%k)" = " 3" ];
then
dcop kdesktop KBackgroundIface setWallpaper /usr/share/wallpapers/BIGLINUX3.jpg 6
fi

if [ "$(date +%k)" = " 4" ];
then
dcop kdesktop KBackgroundIface setWallpaper /usr/share/wallpapers/BIGLINUX3.jpg 6
fi

if [ "$(date +%k)" = " 5" ];
then
dcop kdesktop KBackgroundIface setWallpaper /usr/share/wallpapers/BIGLINUX3.jpg 6
fi

if [ "$(date +%k)" = " 6" ];
then
dcop kdesktop KBackgroundIface setWallpaper /usr/share/wallpapers/BIGLINUX4.jpg 6
fi

if [ "$(date +%k)" = " 7" ];
then
dcop kdesktop KBackgroundIface setWallpaper /usr/share/wallpapers/BIGLINUX4.jpg 6
fi

if [ "$(date +%k)" = " 8" ];
then
dcop kdesktop KBackgroundIface setWallpaper /usr/share/wallpapers/BIGLINUX4.jpg 6
fi


if [ "$(date +%k)" = " 9" ];
then
dcop kdesktop KBackgroundIface setWallpaper /usr/share/wallpapers/BIGLINUX5.jpg 6
fi

if [ "$(date +%k)" = " 10" ];
then
dcop kdesktop KBackgroundIface setWallpaper /usr/share/wallpapers/BIGLINUX5.jpg 6
fi

if [ "$(date +%k)" = " 11" ];
then
dcop kdesktop KBackgroundIface setWallpaper /usr/share/wallpapers/BIGLINUX5.jpg 6
fi

if [ "$(date +%k)" = " 12" ];
then
dcop kdesktop KBackgroundIface setWallpaper /usr/share/wallpapers/BIGLINUX6.jpg 6
fi

if [ "$(date +%k)" = " 13" ];
then
dcop kdesktop KBackgroundIface setWallpaper /usr/share/wallpapers/BIGLINUX6.jpg 6
fi

if [ "$(date +%k)" = " 14" ];
then
dcop kdesktop KBackgroundIface setWallpaper /usr/share/wallpapers/BIGLINUX6.jpg 6
fi

if [ "$(date +%k)" = " 15" ];
then
dcop kdesktop KBackgroundIface setWallpaper /usr/share/wallpapers/BIGLINUX7.jpg 6
fi

if [ "$(date +%k)" = " 16" ];
then
dcop kdesktop KBackgroundIface setWallpaper /usr/share/wallpapers/BIGLINUX6.jpg 6
fi

if [ "$(date +%k)" = " 17" ];
then
dcop kdesktop KBackgroundIface setWallpaper /usr/share/wallpapers/BIGLINUX6.jpg 6
fi

if [ "$(date +%k)" = " 18" ];
then
dcop kdesktop KBackgroundIface setWallpaper /usr/share/wallpapers/BIGLINUX9.jpg 6
fi

if [ "$(date +%k)" = " 19" ];
then
dcop kdesktop KBackgroundIface setWallpaper /usr/share/wallpapers/BIGLINUX9.jpg 6
fi

if [ "$(date +%k)" = " 20" ];
then
dcop kdesktop KBackgroundIface setWallpaper /usr/share/wallpapers/BIGLINUX9.jpg 6
fi

if [ "$(date +%k)" = " 21" ];
then
dcop kdesktop KBackgroundIface setWallpaper /usr/share/wallpapers/BIGLINUX10.jpg 6
fi

if [ "$(date +%k)" = " 22" ];
then
dcop kdesktop KBackgroundIface setWallpaper /usr/share/wallpapers/BIGLINUX10.jpg 6
fi

if [ "$(date +%k)" = " 23" ];
then
dcop kdesktop KBackgroundIface setWallpaper /usr/share/wallpapers/BIGLINUX10.jpg 6
fi

Krehy

  • Návštěvník
  • Příspěvků: 39
Re: Změna tapety v určitý čas
« Odpověď #6 kdy: 14 Listopadu 2007, 12:24:38 »
Děkuju moc. Strejdu googla jsem zkoušel, ale asi jsem se ho pat špatně  ??? . Hned jak budu moct tak vyzkouším. Ještě jednou díky.

Krehy

  • Návštěvník
  • Příspěvků: 39
Re: Změna tapety v určitý čas
« Odpověď #7 kdy: 14 Listopadu 2007, 20:17:12 »
Tak s přidáním příkazů do crontab by nebyl problém. Teď jenom vytvořit skript, který by po spuštění zjistil, který časový interval zrovna je a podle toho by nastavil odpovídající tapetu. Zkoušel jsem modifikovat příkazy ze skriptu výše, ale vyhořel jsem na tom, že potřebuju zadat podmínku stylem "6" <= "$(date +%k)" <= "12" (časový interval mezi 6 a 12 dopoledne...např.) Bohužel jsem nikde nenašel, jakým způsobem takovou podmínku nadefinovat, resp. žádný z nalezených způsobů nefungoval. 

Beetljuice

  • Stálý člen
  • **
  • Příspěvků: 838
Re: Změna tapety v určitý čas
« Odpověď #8 kdy: 14 Listopadu 2007, 20:40:16 »
A nestačilo by jen vynechat ty nepotřebné?
Aj dont spíík ííngliš :)

Krehy

  • Návštěvník
  • Příspěvků: 39
Re: Změna tapety v určitý čas
« Odpověď #9 kdy: 14 Listopadu 2007, 21:00:19 »
Pokud bych vynechal nepotřebné a nechal jenom např. 6 a pak 12, potom by se mi tapeta změnila pouze přesně v 6 a ve 12. Jenže když počítač zapnu třeba v 9 tak se nezmění. Potřebuju otestovat pomocí IF jaký je časový úsek (např. mezi 6-12) a dle toho nastavit tapetu. Teoreticky by to šlo udělat tak, že bych využil všech 24 možností a k nim bych přidal 4 tapety. Ve vysledku bych pro hodinu 0,1,2,3,4,5,6 nastavoval jednu tapetu, pro 7,8,9... druhou atd. Je to sice neohrabané řešení, ale pokud se skript spouští jen jednou po startu tak by to mělo fungovat.

Beetljuice

  • Stálý člen
  • **
  • Příspěvků: 838
Re: Změna tapety v určitý čas
« Odpověď #10 kdy: 14 Listopadu 2007, 21:18:17 »
Tak nějak sem to myslel ;)
Nevim moc neprogramuju ale nešlo by zkusit tohle? :
Kód: [Vybrat]
if [ "$(date +%k)" > " 0"  & < "6"]
« Poslední změna: 14 Listopadu 2007, 21:25:00 od Beetljuice »
Aj dont spíík ííngliš :)

Krehy

  • Návštěvník
  • Příspěvků: 39
Re: Změna tapety v určitý čas
« Odpověď #11 kdy: 14 Listopadu 2007, 21:29:40 »
Tak tohle mi nefunguje. Předchozí postup ale pracuje dobře. Jenom jsem ještě zaměnil +%k za +%H.

Beetljuice

  • Stálý člen
  • **
  • Příspěvků: 838
Re: Změna tapety v určitý čas
« Odpověď #12 kdy: 14 Listopadu 2007, 21:32:28 »
A co ? :
Kód: [Vybrat]
if [ "$(date +%k)" > " 0"  And < "6"]PS: +%k je to samé jako +%H ;)
« Poslední změna: 14 Listopadu 2007, 21:34:45 od Beetljuice »
Aj dont spíík ííngliš :)

kkaarreell

  • Stálý člen
  • **
  • Příspěvků: 1072
Re: Změna tapety v určitý čas
« Odpověď #13 kdy: 14 Listopadu 2007, 21:43:15 »
nebylo by lepsi si to najit, nez sem vkladat nefungujici dohady?

Kód: [Vybrat]
HODINA=$( date +%H )
if [ $HODINA -ge 0 ]  && [ $HODINA -le 5 ]; then     # cili $HODINA >= 0  AND $HODINA <= 5
...
fi;
« Poslední změna: 15 Listopadu 2007, 13:17:24 od kkaarreell »

Beetljuice

  • Stálý člen
  • **
  • Příspěvků: 838
Re: Změna tapety v určitý čas
« Odpověď #14 kdy: 14 Listopadu 2007, 21:46:09 »
nebylo by lepsi si to najit, nez sem vkladat nefungujici dohady?

Kód: [Vybrat]
HODINA=$( date +%k )
if [ $HODINA -ge 0 ]  && [ $HODINA -le 5 ]; then     # cili $HODINA >= 0  AND $HODINA <= 5
...
fi;
No ale že to byla doba, než se ozval nějaký programátor :D
Aj dont spíík ííngliš :)

Krehy

  • Návštěvník
  • Příspěvků: 39
Re: Změna tapety v určitý čas
« Odpověď #15 kdy: 15 Listopadu 2007, 11:51:55 »
A co ? :
Kód: [Vybrat]
if [ "$(date +%k)" > " 0"  And < "6"]PS: +%k je to samé jako +%H ;)

Je to to samo, ale při použití %k se mi tapeta nezměnila (tipuju, že tento parametr bych použil, kdybych chtěl měnit tapetu např. přesně v 1:00). Při použití %H se mi tapeta změnila i když bylo např. 1:23. Možná, že mojě doměnka není správná, každopádně %H mi funguje lépe.

kkaarreell: Díky, přesně tak nějak jsem to zamýšlel, ale špatně jsem to zapisoval. Vyzkouším a dám vědět.

kkaarreell

  • Stálý člen
  • **
  • Příspěvků: 1072
Re: Změna tapety v určitý čas
« Odpověď #16 kdy: 15 Listopadu 2007, 13:16:50 »
Při použití %H se mi tapeta změnila i když bylo např. 1:23. Možná, že mojě doměnka není správná, každopádně %H mi funguje lépe.
Oboje vraci celou hodinu, takze v 1:23 to vrati 1. Rozdil je v tom, ze %k da pred hodinu mezeru (" 1"), %H ne (jen "1"). Takze asi je pri porovnavani lepsi pouzivat %H.

Krehy

  • Návštěvník
  • Příspěvků: 39
Re: Změna tapety v určitý čas
« Odpověď #17 kdy: 15 Listopadu 2007, 20:27:37 »
Díky moc za řešení. Skript funguje na 100%.

 

Provoz zaštiťuje spolek OpenAlt.