Contents
Loading a theme
To list available themes:
/theme list
To load a theme:
/theme load <theme-file>
Creating a Theme
Themes packaged with Profanity are installed to the system wide package data directory, for example:
/usr/local/share/profanity/themes
User defined themes may be added to your user's themes directory. If you'd like your theme to be added as a pre-packaged theme, feel free to submit a pull request at Github.
A theme file contains two sections, [colours]
and [ui]
.
The following properties are available in the [colours]
section:
Property | Description |
bkgnd |
Main window and input window background. |
titlebar |
Title bar background. |
statusbar |
Status bar background. |
titlebar.text |
Title bar text. |
titlebar.brackets |
Title bar brackets. |
titlebar.unencrypted |
Title bar OTR unencrypted indicator. |
titlebar.encrypted |
Title bar OTR encrypted indicator. |
titlebar.untrusted |
Title bar OTR untrusted indicator. |
titlebar.trusted |
Title bar OTR trusted indicator. |
titlebar.online |
Online presence indicators in title bar. |
titlebar.offline |
Offline presence indicators in title bar. |
titlebar.away |
Away presence indicators in title bar. |
titlebar.chat |
Available for chat presence indicators in title bar. |
titlebar.dnd |
Do not disturb presence indicators in title bar. |
titlebar.xa |
Extended away presence indicators in title bar. |
statusbar.text |
Status bar text. |
statusbar.time |
Time displayed in the status bar. |
statusbar.brackets |
Status bar brackets. |
statusbar.active |
Active window indicator in status bar. |
statusbar.current |
Current window indicator in status bar. |
statusbar.new |
New messages window indicator in status bar. |
main.text |
Main window text. |
main.text.history |
All history text. |
main.text.me |
Messages you have sent. |
main.text.them |
Messages you have received. |
main.splash |
Splash logo. |
input.text |
Input window text. |
main.time |
Main window time. |
subscribed |
Subscribed (to, both) in roster. |
unsubscribed |
Unsubscribed (from, none) in roster. |
otr.started.trusted |
OTR trusted message for new OTR sessions. |
otr.started.untrusted |
OTR untrusted message for new OTR sessions. |
otr.ended |
OTR ended message. |
otr.trusted |
OTR trusted message. |
otr.untrusted |
OTR untrusted message. |
online |
Online presence text in main window. |
away |
Away presence text for main window. |
chat |
Available for chat presence text for main window. |
dnd |
Do not disturb presence text for main window. |
xa |
Extended away presence text for main window. |
offline |
Offline presence text for main window. |
typing |
Typing message for main window. |
gone |
Gone message for main window. |
error |
Error messages in main window. |
incoming |
Incoming message text in console. |
roominfo |
Room information text in chat room windows. |
roommention |
Chat room message text when nickname mentioned. |
me |
Colour to display who a message is from, for sent messages. |
them |
Colour to display who a message is from, for received messages. |
roster.header |
Group headers in roster panel. |
occupants.header |
Groups headers in chat room occupants panel. |
receipt.sent |
Message sent with receipt request, not yet received. |
untrusted |
Message received is encrypted with an untrusted key. |
The following colour values are available:
white
green
red
yellow
blue
cyan
magenta
black
bold_white
bold_green
bold_red
bold_yellow
bold_blue
bold_cyan
bold_magenta
bold_black
To see how the colours will appear in your terminal, run the following command:
/theme colours
The following properties are available in the [ui]
section, note that the values specified are what is stored in the theme file, see the help on individual commands for how to set the properties:
Property | Description | File values |
beep |
Terminal beep, see /beep |
true , false |
flash |
Terminal flash, see /flash |
true , false |
splash |
Splash logo, see /splash |
true , false |
wrap |
Word wrap main window, see /wrap |
true , false |
time |
Time format in main window, see /time |
GDateTime format |
time.statusbar |
Time format in status bar, see /time |
GDateTime format |
resource.title |
Show contacts resource in title bar, see /resource |
true , false |
resource.message |
Show contacts resource on incoming messages, see /resource |
true , false |
statuses.console |
Presence messages in console, see /presence |
all , online , none |
statuses.chat |
Presence messages in chat windows, see /presence |
all , online , none |
statuses.muc |
Presence messages in chat room windows, see /presence |
all , online , none |
occupants |
Occupants panel in chat rooms, see /occupants |
true , false |
occupants.size |
Screen percentage taken by occupants panel, see /occupants |
1-99 |
occupants.jid |
Show JIDs if available in occupants panel, see /occupants |
true , false |
roster |
Roster panel in console window, see /roster |
true , false |
roster.offline |
Offline contacts in roster panel, see /roster |
true , false |
roster.resource |
Resources in roster panel, see /roster |
true , false |
roster.by |
Roster panel grouping, see /roster |
group , presence , none |
roster.size |
Screen percentage taken by roster panel, see /roster |
1-99 |
roster.empty |
Show empty groups in roster panel, see /roster |
true , false |
privileges |
Privilege details in chat rooms, see /privileges |
true , false |
presence |
Contacts presence in title bar, see /presence |
true , false |
intype |
Contact typing messages in console and chat windows, see /intype |
true , false |
enc.warn |
Title bar unencrypted indicator, see /encwarn |
true , false |
wins.autotidy |
Automatically remove gaps when closing windows, see /winstidy |
true , false |
pgp.char |
Character to show for PGP encrypted messages, see /pgp |
true , false |
otr.char |
Character to show for OTR encrypted messages, see /otr |
true , false |
omemo.char |
Character to show for OMEMO encrypted messages, see /otr |
true , false |
Example themes can be found in the themes folder of the source code.