2.2 KiB
Theming
A default theme from this repository can be copied to use as a base and edit,
for example:
cp mirage/src/themes/Midnight.qpl \
"${XDG_DATA_HOME:-$HOME/.local/share}/mirage/themes/MyTheme.qpl"
Or for Flatpak users:
cp mirage/src/themes/Midnight.qpl \
~/.var/app/io.github.mirukana.mirage/data/mirage/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/mirage/settings.py
Warnings:
- API currently unstable: theme properties are often renamed, added or deleted.
- The file format for themes will soon change
- The current file format forces all theme to have all properties
defined, instead of being able to only specify the ones to override from the
default theme.