Skins
A skin decides how the player, the equalizer and the playlist look: the metal, the display, the buttons and the playlist colors. Nastro never hardcodes these, it reads them from the active skin.
Built-in skins
| Skin | Look |
|---|---|
| Silver | The default. Light brushed aluminium, an ice blue display and a navy playlist. |
| Graphite | Dark metal with an amber display. |
| Porcelain | Matte white, a black glass display with vermilion lights and an ink black playlist. |
| Nebula | Dark violet metal, a mint display and a magenta accent. |
The built-in skins are themselves skin.toml files, compiled into the program.
Install a skin
User skins live in the skins folder inside Nastro's configuration folder. Create it if it does not exist.
| System | Folder |
|---|---|
| Linux | ~/.config/nastro/skins/ ($XDG_CONFIG_HOME/nastro/skins/) |
| macOS | ~/Library/Application Support/nastro/skins/ |
| Windows | %APPDATA%\nastro\skins\ |
A skin is one of:
- a single file,
skins/<id>.toml, or - a folder,
skins/<id>/skin.toml, for skins that will carry extra files later.
The file or folder name is the skin id. It must not be silver, graphite, porcelain or nebula, and two skins cannot share an id.
Choosing a skin
Pick a skin in Options, Skin, or in the Skin section of Preferences. It applies at once and is remembered. The same submenu has Open skins folder, which creates the folder if needed and opens it in your file manager, and Reload skins, which reads the folder again, so a skin you copied or edited while Nastro runs shows up without restarting.
Options, Skin size draws any skin at 1x, 1.5x or 2x, independently of your system's display scale.
A skin does not show up
Check the log: a skin with an error is skipped and the message names the file and the key. Keys that are missing only produce a warning, and their colors come from Silver.
The skin.toml format
A skin file has four sections:
| Section | Content |
|---|---|
[skin] | name, the display name (required), and format, which must be 1. |
[font] | Font family names for ui, mono and lcd (the display's clock and badges; the scrolling title uses mono). Nastro bundles Geist, Geist Mono and Share Tech Mono; any other family must be installed on the system, or the system's default font is used. |
[color] | All the colors of the frame, controls, display, visualizer, accent and LEDs, plus frame_brush, the opacity of the brushed texture (0 to 0.2). |
[playlist] | The playlist colors: bg, fg, current, selected_bg and index. |
A color is "#rgb", "#rrggbb" or "#rrggbbaa", where the last pair is the opacity. A missing key takes its value from Silver and produces a warning. An invalid color, a wrong type or a format other than 1 is an error and the skin is not loaded.
[skin] name = "My skin" format = 1 [font] lcd = "Share Tech Mono" [color] accent = "#36b4ff" accent_ink = "#0f6fae" lcd_fg = "#a6e6ff" [playlist] bg = "#163a62" fg = "#cfe0f2" current = "#ffffff" selected_bg = "#2f6aa5" index = "#8fb0d2"
The complete list of keys, the contrast rule that readable skins follow and the full Silver example are in the skin format reference on GitHub.
Classic skins
Importing classic skins (the .wsz archives) is planned. It is not available yet.