poezio/doc/en/themes.txt
2011-11-05 03:08:15 +01:00

89 lines
3 KiB
Text
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Themes
======
This page describes how themes work in poezio and how to create or
modify one.
A theme contains color attributes and character definitions. Poezio can display
up to _256_ colors if your terminal supports it. Most of the time,
if it doesnt work, thats because the _$TERM_ environnment variable is
wrong. For example with tmux or screen, set it to _screen-256color_, in
_xterm_, set it to _xterm-256color_, etc. If your terminal doesnt have 256,
only 8 color will be available, and poezio will replace the colors by one
of the 8 values available. Thus, some theme file may not work properly
if you only have 8 colors for example light gray on dark gray may
be converted to black on black if only 8 colors are available, making
the text impossible to read). The default theme should work properly in any
case. If not, thats a bug.
A theme file is a python file (with the .py extension) containing a
class, inheriting the *themimg.Theme* class defined into the *theming*
poezio module.
Create a theme
--------------
To create a theme named foo, create a file named foo.py into the theme
directory (by default its _~/.local/share/poezio/themes/_) and insert
into it:
[source,python]
----
import theming
class FooTheme(theming.Theme):
# Define here colors for that theme
theme = FooTheme()
----
To define a _color pair_ and assign it to the COLOR_NAME option, just do
[source,python]
----
class FooTheme(theming.Theme):
COLOR_NAME = (fg_color, bg_color, opt_attr)
----
You do not have to define all the <<available-options,available options>>,
you can decide that your theme will only change some options, the other
one will just have the default value (from the default theme).
Colors and attributes
~~~~~~~~~~~~~~~~~~~~~
A color pair defines how the text will be displayed on the screen. It
has a _foreground color_ (fg_color), a _background color_ (bg_color)
and an *_optional_* _attribute_ (opt_attr).
Colors
^^^^^^
A color is a number between -1 and 255. If it -1, this is the default
color defined by your terminal (for example if your terminal displays
text white on black by default, a fg_color of -1 is white, and a bg_color
of -1 is black). If its between 0 and 256 it represents one of the colors
on the image:
image::../images/theme_256_colors.png["The list of all 256 colors", title="The list of all 256 colors"]
Attributes
^^^^^^^^^^
An attribute is a python string (so, it has to be surrounded by
*" "* or *' '*). It can be one of the following
* *'b'*: bold text
* *'u'*: underlined text
Use a theme
-----------
To use a theme, just define the _theme_ option into the
link:configure.html[configuration file] to the name of the theme you want
to use. If that theme is not found, the default theme will be used instead.
Note that the default theme is defined directly into poezios source code,
and note in a theme file.
[[available-options]]
Available options
-----------------
CAUTION: This section is not complete.
All available options can be found into the default theme, which is into the
_theming.py_ file from the poezios source code.