Author: Markus Uhlin

# Writing themes

This manual page is the ultimate reference to consult when writing themes for Swirc.

## TEXT DECORATION

What | Hex | Octal | Appearance
--- | --- | --- | ---
Blink | 1d | 035 | ^]
Bold | 02 | 002 | ^B
Color | 03 | 003 | ^C
Normal | 0f | 017 | ^O
Reverse | 16 | 026 | ^V
Underline | 1f | 037 | ^_

Example usage:

    	blabla ^Bbold text^B blabla
    	blabla ^Vreversed text^V blabla
    	blabla ^_underlined text^_ blabla

Always use the literal control characters because else it won't work!

Blink is a no operation because it's annoying.

## COLORS

Number | Name |
--- | --- | ---
00 | white |
01 | black |
02 | blue | (navy)
03 | green |
04 | red |
05 | brown | (maroon)
06 | purple |
07 | orange | (olive)
08 | yellow |
09 | lt.green | (lime)
10 | teal | (a kinda green/blue cyan)
11 | lt.cyan | (cyan ?) (aqua)
12 | lt.blue | (royal)
13 | pink | (light purple) (fuchsia)
14 | grey |
15 | lt.grey | (silver)

For the colors 16-99 see the output of the command `/colormap`. Enough color pairs must've been initialized. (193 color pairs are too few for the colors 16-99 to be used as backgrounds.)

The syntax of the color attribute in text has the format `^CN[,M]`. N will be the text (foreground) color and M the background color. A background color (M) is optional and is not always included.

N and M can maximally be two digits long. Although the colors {0,1,2,...,9} are supported you are highly encouraged to use {00,01,02,...,09}.

A plain `^C` can be used to turn the color effect off. While typing `^O` will make sure ALL the text effects gets reset. For example:

    	blabla ^C05,02red text on blue background^C blabla
    	blabla ^C09green text^O blabla

Of course settings can start with colored text and a closing `^C` is not essential.

## SETTINGS

term_background (int)
Which background color (0-15) is this theme written for?
    	0 = white
    	1 = black
term_enable_colors (bool)
Enable colors (yes/no)?
term_use_default_colors (bool)
Use terminal's default colors? I.e. call use_default_colors(3).
color3, color4 (string)
Colors used in uncategorized contexts. Must begin with `^C`.
gfx_failure, gfx_success, gfx_warning (string)
Used in contexts where to flag failures, successes and warnings respectively.
left_bracket, right_bracket (string)
Left and right bracket. Frequently used.
logo_color (string)
Swirc ASCII logo color displayed at startup. (Must begin with `^C`.)
nick_s1, nick_s2 (string)
When you or another user types something the nickname will be enclosed by s1 and s2.
nicklist_my_nick_color, nicklist_nick_color, nicklist_privilege_color, nicklist_vline_color (int)
Nicklist decoration. All of these settings are of type int (0-99) thus `^C` is not needed and should not be used.
notice_color1, notice_color2 (string)
Notice colors. `^C` should be used.
notice_lb, notice_rb, notice_sep (string)
Notice left/right bracket and separator.
notice_inner_b1, notice_inner_b2 (string)
Notice inner bracket 1 and 2. (I.e. left and right.)
primary_color, secondary_color (string)
Primary and secondary color for the theme. Frequently used. (Begin with `^C`.)
slogan (string)
Swirc slogan displayed in the statusbar.
specifier1, specifier2, specifier3 (string)
Specifiers used in various contexts. Number 1 is frequently used.
statusbar_bg, statusbar_fg (string)
Statusbar background and foreground. Valid values are black, red, green, yellow, blue, magenta, cyan, white.
statusbar_leftBracket, statusbar_rightBracket, statusbar_spec (string)
Statusbar left/right bracket and specifier.
time_format (string)
Time format passed to strftime(3).
titlebar_bg, titlebar_fg (string)
Titlebar background and foreground. Valid values are black, red, green, yellow, blue, magenta, cyan, white.
whois_acc (string)
whois_away (string)
whois_bot (string)
whois_cert (string)
whois_channels (string)
whois_conn (string)
whois_host (string)
whois_idle (string)
whois_ircName (string)
whois_ircOp (string)
whois_modes (string)
whois_server (string)
whois_service (string)
whois_ssl (string)

## CAVEATS

If you want to give color to numbers be sure to use two digits for N nor M!