lightdm - automatyczna zmiana t

Tematy związane z oprogramowaniem, instalacją, konfiguracją
torrmen
Posty: 67
Rejestracja: 04 lutego 2013, 16:42
Lokalizacja: Wrocław (głównie)

lightdm - automatyczna zmiana tła podczas różnych zdarzeń

Post autor: torrmen »

Witam.
Napisałem sobie mały skrypcik który automatycznie podmienia ścieżkę do pliku tła dla lightdm i chciałbym go wykonywać w debianie podczas:

- wyłączania komputera
- restartu komputera (ponowne uruchomienie)
- wylogowania komputera
- hibernacji sesji
- wstrzymania sesji

może się komuś przyda - ale wymaga jeszcze kilka poprawek - głównie obsługi błędów

Błędy które na razie wykryłem:
- W nazwach plików graficznych nie mogą być zamieszzona spacje - tu chyba skuszę się o napisanie funkcji kttóra zmieni nazwy plików kasując niedozwolona znaki.


Skrypt: lightdm_background_changer.sh oczywiście musi mieć +x

Kod: Zaznacz cały

#!/bin/bash
# LCF (Lightdm config file) - ścieżka do pliku konfiguracyjnego
LCF="/etc/lightdm/lightdm-gtk-greeter.conf";
# BF (Background Folder) - katalog gdzie trzymamy pliki graficzne które chcemy wykorzystywać
BF='/usr/share/xfce4/backdrops';
# RANDOM_FILE - losowe wybieranie plików z katalogu
RANDOM_FILE=`/bin/ls -1 "$BF" | sort --random-sort | head -1`;
# PF (Previous file) - ostatnio używany plik
PF=`sed -n 12p $LCF`;
# zamiana znaków "/" w pliku konfiguracyjnym na ciąg ";#|#|#;"
cat $LCF | sed -i 's/\//;#|#|#;/g' $LCF;
# LBF (Last background file) - ostatnio używany plik ze zmienionymi znakami "/" na ciąg ";#|#|#;"
LBF=`sed -n 12p $LCF`;
# NBF (New background file) - nowa ścieżka do pliku
NBF=`echo "background="$BF"/"$RANDOM_FILE | sed -e 's/\//;#|#|#;/g'`;
# Podmiana ścieżki do pliku
sed -i "s/"$LBF"/"$NBF"/g" $LCF;
# zamiana ciągu znaków ";#|#|#;" w pliku konfiguracyjnym na "/"
cat $LCF | sed -i 's/;#|#|#;/\//g' $LCF;
# Info o zamianie ścieżek : 
echo -e "Zmieniono \n1) "$PF;
echo -e "2) "`sed -n 12p $LCF`;
# czystka zmiennych
unset LCF; unset BF; unset RANDOM_FILE; unset PF; unset LBF; unset NBF;
I teraz tak:

Aby uruchomić skrypt podczas wyłączenia komputera należy umieścić go (lub dowiązanie) w katalogu /etc/rc0.d/

Aby uruchomić skrypt podczas restartu komputera należy umieścić go (lub dowiązanie) w katalogu /etc/rc6.d/

Natomiast brakuje mi pozostałych stanów aby je wyłapać. Czy ktoś z Was wie jak je wykryć i uruchomić skrypt?


Co planuję dodać:
- automatyczna zmiana nazwy motywu
- obsługa błędów (w tym naprawa ich - np. kasowanie spacji z nazw plików).

Ewentualne sugestie do skryptu mile widziane.

Dodane:

Nowa wersja (bezpieczniejsza, lepsza): entries/257-LightDM-Automatyczna-zmiana ... u-(losowo)


Niestety obecnie nie udaje mi się przy wyłączeniu czy ponownym uruchomieniu włączyć skryptu...

skrypty wylądowały w:
/etc/rc0.d/K02LightDM_AutoChanger.sh
/etc/rc6.d/K02LightDM_AutoChanger.sh

oba mają ustawione prawa 777 dla root:root więc teoretycznie powinno zadziałać... ktoś orientuje się dlaczego to nie działa?
ODPOWIEDZ