---
title: Themes
description: A console-based XMPP client for power users.
sidebar:
  order: 12
---

## Loading a theme

To list available themes:

```bash
/theme list
```

You can see a preview of each theme in the [theme gallery](/about/theme-gallery).

To load a theme:

```bash
/theme load <theme-file>
```

## Creating a Theme

Themes packaged with CProof are installed to the system wide package data directory, for example:

```plaintext
/usr/local/share/profanity/themes
```

User defined themes may be added to your user's [themes directory](/guides/files#user-defined-themes-directory). If you'd like your theme to be added as a pre-packaged theme, feel free to submit a Pull Request at <a href="https://git.jabber.space/devs/profanity/" target="_blank" rel="noopener noreferrer">Github</a>.

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:

```plaintext
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:

```bash
/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](/command-reference#beep)                                           | true, false                                                                                                                                             |
| flash            | Terminal flash, see [/flash](/command-reference#flash)                                        | true, false                                                                                                                                             |
| splash           | Splash logo, see [/splash](/command-reference#splash)                                         | true, false                                                                                                                                             |
| wrap             | Word wrap main window, see [/wrap](/command-reference#wrap)                                   | true, false                                                                                                                                             |
| time             | Time format in main window, see [/time](/command-reference#time)                              | <a href="https://docs.gtk.org/glib/method.DateTime.format.html" target="_blank" rel="noopener noreferrer">GDateTime format</a> |
| time.statusbar   | Time format in status bar, see [/time](/command-reference#time)                               | <a href="https://docs.gtk.org/glib/method.DateTime.format.html" target="_blank" rel="noopener noreferrer">GDateTime format</a> |
| resource.title   | Show contacts resource in title bar, see [/resource](/command-reference#resource)             | true, false                                                                                                                                             |
| resource.message | Show contacts resource on incoming messages, see [/resource](/command-reference#resource)     | true, false                                                                                                                                             |
| statuses.console | Presence messages in console, see [/presence](/command-reference#presence)                    | all, online, none                                                                                                                                       |
| statuses.chat    | Presence messages in chat windows, see [/presence](/command-reference#presence)               | all, online, none                                                                                                                                       |
| statuses.muc     | Presence messages in chat room windows, see [/presence](/command-reference#presence)          | all, online, none                                                                                                                                       |
| occupants        | Occupants panel in chat rooms, see [/occupants](/command-reference#occupants)                 | true, false                                                                                                                                             |
| occupants.size   | Screen percentage taken by occupants panel, see [/occupants](/command-reference#occupants)    | 1-99                                                                                                                                                    |
| occupants.jid    | Show JIDs if available in occupants panel, see [/occupants](/command-reference#occupants)     | true, false                                                                                                                                             |
| roster           | Roster panel in console window, see [/roster](/command-reference#roster)                      | true, false                                                                                                                                             |
| roster.offline   | Offline contacts in roster panel, see [/roster](/command-reference#roster)                    | true, false                                                                                                                                             |
| roster.resource  | Resources in roster panel, see [/roster](/command-reference#roster)                           | true, false                                                                                                                                             |
| roster.by        | Roster panel grouping, see [/roster](/command-reference#roster)                               | group, presence, none                                                                                                                                   |
| roster.size      | Screen percentage taken by roster panel, see [/roster](/command-reference#roster)             | 1-99                                                                                                                                                    |
| roster.empty     | Show empty groups in roster panel, see [/roster](/command-reference#roster)                   | true, false                                                                                                                                             |
| privileges       | Privilege details in chat rooms, see [/privileges](/command-reference#privileges)             | true, false                                                                                                                                             |
| presence         | Contacts presence in title bar, see [/presence](/command-reference#presence)                  | true, false                                                                                                                                             |
| intype           | Contact typing messages in console and chat windows, see [/intype](/command-reference#intype) | true, false                                                                                                                                             |
| enc.warn         | Title bar unencrypted indicator, see [/encwarn](/command-reference#encwarn)                   | true, false                                                                                                                                             |
| wins.autotidy    | Automatically remove gaps when closing windows, see [/winstidy](/command-reference#winstidy)  | true, false                                                                                                                                             |
| pgp.char         | Character to show for PGP encrypted messages, see [/pgp](/command-reference#pgp)              | true, false                                                                                                                                             |
| otr.char         | Character to show for OTR encrypted messages, see [/otr](/command-reference#otr)              | true, false                                                                                                                                             |
| omemo.char       | Character to show for OMEMO encrypted messages, see [/omemo](/command-reference#omemo)        | true, false                                                                                                                                             |

Example themes can be found in the <a href="https://git.jabber.space/devs/profanity/src/branch/master/themes" target="_blank" rel="noopener noreferrer">themes folder</a> of the source code.
