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

SkinLook
SilverThe default. Light brushed aluminium, an ice blue display and a navy playlist.
GraphiteDark metal with an amber display.
PorcelainMatte white, a black glass display with vermilion lights and an ink black playlist.
NebulaDark 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.

SystemFolder
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:

SectionContent
[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.

my-skin.toml (shortened)
[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.

Found a mistake? Edit this page on GitHub or open an issue.

↑↓to move ↵to open /or Ctrl Kto search from any page