Tworzenie tematów graficznych

Stworzenie nowego tematu

Tworzenie własnego tematu graficznego do ekg2 najlepiej rozpocząc od wygenerowania "czystego" pliku z tematem, zawierającego ustawienia domyślne. Do wygenerowania takiego pliku można użyć prostego skryptu powłoki, na przykład takiego jak poniższy, który należy uruchomić w katalogu ze źródłami ekg2.


grep -R -I 'format_add("' * | cut -d: -f2- | \
   perl -ne '/format_add\("(.*?)".+"(.*)".*/; print $1." ".$2."\n"' \
   > my.theme
   
         

Mając wygenerowany taki plik można przystąpić do modyfikacji. Wszystkie zmienione formatki należy zapisać, niezmienione można usunąć lub pozostawić. Następnie należy plik z tematem umieścić we właściwym katalogu - podkatalogu themes katalogu z danymi ekg2 (zazwyczaj /usr/share/ekg2 lub /usr/local/share/ekg2) lub w katalogu z konfiguracją ekg2 (~/.ekg2 lub ~/etc/ekg2). Stworzony temat można przetestować ustawiając zmienną theme, nadając jej wartość taką jak nazwa pliku z tematem bez końcówki .theme.

Formatki

Tabela 3.1. Kolory w tematach graficznych

Kolor Zwykły Jasny Tło
czarny/szary %k %K %l
niebieski %b %B %e
czerwony %r %R %s
fioletowy %m/%p %M/%P %q
turkusowy %c %C %d
brązowy/żółty %y %Y %z
zielony %g %G %h
biały %w %W %x
mrugający %i - -
tłusty %T - -
bez koloru %n

Dopełnianie do szerokości

Przy parametrach %1-%9 można kazać dopełniać do konkretnej szerokości. przydaje się do wszelkiego rodzaju tabelek.

Tabela 3.2. Dopełnianie do szerokości

%[10]1 dopełnia spacjami z prawej pierwszy parametr do 10 pól
%[-10]1 j.w. tylko że do lewej
%[.5]1 dopełnia zerami
%[,9]2 dopełnia kropkami
%[_4]1 dopełnia znakami podkreślenia
%(10)1 jeśli rozmiar parametru przekroczy 10 znaków nie obcina

UWAGA! kolorkowe sekwencje ansi traktuje jak znaki, więc nie powinno się ich używać przy dopełnianiu parametrów.

Końcówki zależne od płci

Jeśli chce się rozróżniać przymiotniki dla różnych płci, można użyć %@n, gdzie ,,n'' to numer formatu, który bierzemy pod uwagę. jeśli ostatnią literą będzie ,,a'', %@n zostanie zastąpione przez ,,a'', w innym przypadku przez ,,y''. przykład: %> %1 jest dostępn%@1

Należy wziąć uwagę, że w wielu wypadkach pseudonimy są najpierw formatowane przez known_user i unknown_user, więc trzeba podać osobny parametr z samym pseudonimem.

Znaki zachęty

Tabela 3.3. Znaki zachęty

%> prompt (domyślnie zielony)
%! error (domyślnie czerwony)
%) prompt2 (domyślnie turkusowy)
%# timestamp (domyślnie GG:MM)

%| oznacza koniec promptu. Jeśli ten format występuje, to przy przenoszeniu do następnej linii, tekst przed tym formatem zostanie wyświetlony ponownie.

Przykład 3.1. Użycie formatu %|


%> Długa linia, która zostanie podzielona na kilka linii

            

Na małym terminalu powyższy przykład wyświetli:


	.-------------------------.
        | ::: Długa linia, która  |
        | zostanie podzielona na  |
        | kilka linii             |
	`-------------------------'

            

Po dodaniu %|, to znaczy:


%> %|Długa linia, która zostanie podzielona na kilka linii

            

zostanie wyświetlone jako:


        .-------------------------.
        | ::: Długa linia, która  |
	| ::: zostanie podzielona |
	| ::: na kilka linii      |
	`-------------------------'

            

Użytkownicy spoza listy kontaktów

Dwa specjalne formaty ,,known_user'' i ,,unknown_user'' określają, jak będą pokazywani userzy z listy i spoza listy kontaktów. Pierwszy za parametry przyjmuje %1 opis, %2 numerek, a drugi %1 numerek.

Prompty readline

Wpisy readline_*, oprócz readline_prompt_query nie mogą zawierać żadnych ,,procentowych'' kodów sterujących. Podobnie jest z promptem config_changed.

Marginesy

(ncurses) W ekg2 można ustawiać tzw. marginesy poprzez zmienną ncurses:margin_size. Aby z nich korzystać należy w formatce użyć znaków /| do oddzielenia tekstu znajdującego się po prawej i po lewej stronie.

Przykład 3.2. Przykład użycia marginesów


tekst/|tekst2

            

Powyższa formatka zostanie wyświetlona jako:


tekst        tekst2

            

Odstęp reguluje się poprzez zmienną ncurses:margin_size.