[ Pobierz całość w formacie PDF ]
Å‚Ä…cznik -s 2:
$ echo "Cześć, tu program osd_cat." | osd_cat -c green -s 2 \
-f -adobe-helvetica-bold-r-normal-*-*-240-*-*-p-*-*-*
Pozycję wyświetlanego tekstu można ustalić przełącznikiem -p. Przełącznik -p middle
ustawia tekst na środku ekranu (można wybrać top i bottom odpowiednio na górze
i na dole ekranu). Można zauważyć, że przy ustawieniu middle tekst na moment poja-
wia się na górze ekranu, dopiero potem na środku. Ta wada programu osd_cat będzie
prawdopodobnie naprawiona w jego następnych wersjach. Można ustawić też czas wy-
świetlania wiadomości na okres dłuższy niż domyślne 5 sekund. Aby napis pozostał na
ekranie przez 60 sekund, należy dodać przełącznik -d 60:
$ echo "Cześć, tu program osd_cat." | osd_cat -c green -s 2 -p middle -d 60 \
-f -adobe-helvetica-bold-r-normal-*-*-240-*-*-p-*-*-*
Sposoby zwiÄ…zane z systemem graficznym X | 99
SPOSÓB
Jak nie przeoczyć przypomnienia
26.
Dostępne są też inne przełączniki służące na przykład do robienia wcięć w tekście. Wię-
cej informacji o przełącznikach można znalezć na stronie man polecenia osd_cat.
Skrypt wyświetlający przypomnienia
Kiedy wiadomo już, co potrafi XOSD, można napisać skrypt wyświetlający przypo-
mnienia o określonej godzinie. Aby skrypt działał, oprócz programu osd_cat, potrzebny
będzie program at. Musi być również uruchomiony demon atd. Wiele dystrybucji Linuksa
instaluje at i atd oraz uruchamia demona domyślnie. Jeśli programy te nie są zainstalo-
wane, należy je zainstalować, postępując zgodnie z procedurą dla konkretnej dystrybucji
i upewnić się, że program atd uruchamia się podczas startu komputera.
Aby stworzyć skrypt, należy zalogować się jako użytkownik root lub użyć polecenia sudo,
uruchomić ulubiony edytor tekstu i utworzyć plik /usr/local/bin/remindme. Do niego należy
wpisać skrypt z przykładu 4.1.
Przykład 4.1. Skrypt bash do pliku remindme
#!/bin/bash
# sprawdzenie, który ekran jest obecnie używany
HOST="$(xrdb -symbols | grep SERVERHOST | cut -d= -f2)"
DISPLAYNUM="$(xrdb -symbols | grep DISPLAY_NUM | cut -d= -f2)"
THISDISPLAY=$HOST:$DISPLAYNUM.0
# sprawdzenie, czy katalog (reminders) skryptu przypominajÄ…cego jest w katalogu domowym
# jeśli nie ma, tworzenie katalogu
if [ ! -e ~/reminders ] ; then
mkdir ~/reminders
fi
unique=`date +%F-%H-%M-%S`
reminder="reminders/reminder-"$unique
# tworzenie wynikowego skryptu reminder
echo '#!/bin/bash' > ~/$reminder
echo $THISDISPLAY >> ~/$reminder
echo "echo \"$2 dzisiaj\" | osd_cat -s 2 -c green -p middle \
-f -adobe-helvetica-bold-r-normal-*-*-240-*-*-p-*-*-* -d 60" >> ~/$reminder
# nadanie mu atrybutu wykonywania
chmod +x ~/$reminder
# powiadomienie demona atd o konieczności uruchomienia skryptu o zadanej porze
at $1 -f ~/$reminder
Należy zapisać plik i nadać mu atrybut wykonywania:
$ sudo chmod +x /usr/local/bin/remindme
Aby ustawić przypomnienie o telefonie do szefa o godzinie 14:00, należy wydać polecenie:
$ remindme 14:00 "Zadzwoń teraz do szefa."
100 | Sposoby zwiÄ…zane z systemem graficznym X
SPOSÓB
Jak nie przeoczyć przypomnienia
26.
Powyższy skrypt przekształca to polecenie na osobny skrypt reminder i ustawia czas jego
uruchomienia na 14.00. Nowy skrypt, korzystając z XOSD, umieści wiadomość na ekra-
nie. Oznacza to, że nie będzie można jej przeoczyć, ponieważ będzie umieszczona na
wszystkich pulpitach.
Działanie skryptu przebiega w kilku etapach. Pierwsza część sprawdza, który ekran X
Window jest aktualnie używany. Potem do pliku reminder zostaje dodany wiersz usta-
wiający numer ekranu, na którym ma pracować roboczy skrypt. Program osd_cat nie po-
biera tej informacji od środowiska, więc musi być ona umieszczona w skrypcie. Nie można
zakładać, że użytkownik będzie zawsze używał domyślnego ekranu: 0.0. Skrypt musi więc
określić aktualny ekran, wykonując polecenie xrdb.
Niektóre wersje programu osd_cat zwracają szczególną uwagę na sposób
zapisu zmiennej DISPLAY. Nie działają, gdy przed wyrażeniem
podana zostanie nazwa komputera. Należy o tym pamiętać podczas
uruchamiania programu.
Następna część skryptu tworzy unikalną nazwę pliku bazująca na aktualnym czasie. Potem
tworzy pierwszy wiersz skryptu basha (#!/bin/bash) i zapisuje go do pliku reminder,
[ Pobierz całość w formacie PDF ]