Profanity Illustration

User Guide

User Interface Themes

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.