Add documentation for themes.
This commit is contained in:
parent
7e8ea8e47f
commit
bb572219d1
2 changed files with 89 additions and 0 deletions
89
doc/en/themes.txt
Normal file
89
doc/en/themes.txt
Normal file
|
@ -0,0 +1,89 @@
|
|||
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 doesn’t work, that’s 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 doesn’t 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, that’s 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 it’s _~/.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 it’s 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 poezio’s 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 poezio’s source code.
|
BIN
doc/images/theme_256_colors.png
Normal file
BIN
doc/images/theme_256_colors.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 44 KiB |
Loading…
Reference in a new issue