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.
find . -name '*.c' -type f -exec sed \ '/^[ \t]*format_add("/!d;s///;s/"[^"]*"\(.*\)".*/ \1/' \ {} + > 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
.
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 |
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.
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.