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;
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?