THEMING.md 2.2 KB

Theming

A default theme from this repository can be copied to use as a base and edit, for example:

    cp moment/src/themes/Foliage.qpl \
       "${XDG_DATA_HOME:-$HOME/.local/share}/moment/themes/MyTheme.qpl"

Or for Flatpak users:

    cp moment/src/themes/Foliage.qpl \
       ~/.var/app/xyz.mx_moment.moment/data/moment/themes/MyTheme.qpl

The theme property in settings.py would need to be set to MyTheme.qpl in this case.

Theme files are nested-by-indentations sections of properties and values.
Properties are declared as <type> <name>: <value>.
Values can be any JavaScript (ECMAScript 7) expressions.

Most of the properties are of type color. Their values, if not just refering to another property, can be expressed with a:

  • SVG/CSS color name string, e.g. "blue"
  • Hexadecimal code string, e.g. "#fff" or "#cc0000"
  • RGBA value, using the Qt.rgba(0-1, 0-1, 0-1, 0-1) function
  • HSLA value, using the Qt.hsla(0-1, 0-1, 0-1, 0-1) function
  • HSVA value, using the Qt.hsva(0-1, 0-1, 0-1, 0-1) function
  • HSLUV value, using the hsluv(0-360, 0-100, 0-100, 0-1) function. This is the prefered method used throughout the default theme files (why? see this and that)

If you just want to change the background picture, or use a gradient/simple color instead, search for the ui: section in your text editor.

When an in-use theme file is saved while the application is running, it will automatically be reloaded and changes will be seen immediatly.

You can manually trigger a reload by updating the file's last change timestamp, e.g. with the touch command:

touch ~/.config/moment/settings.py

Warnings:

  • The current file format forces themes to have all properties defined, instead of being able to only specify the ones to override from the default theme. Keep this in mind when updating Moment.

  • Themes will soon be moved to the PCN format, that was introduced in 0.7.0 for user config files.