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.
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.
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.
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 | `-------------------------'
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.
Wpisy readline_*, oprócz readline_prompt_query nie mogą zawierać żadnych ,,procentowych'' kodów sterujących. Podobnie jest z promptem config_changed.
(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.