SkillAgentSearch skills...

Tinty

A base16 and base24 color scheme manager

Install / Use

/learn @tinted-theming/Tinty
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Tinty - A Tinted Theming CLI tool written in Rust 🦀

Matrix Chat Crates.io Tests LICENSE

<p align="center"> <img src="https://raw.githubusercontent.com/tinted-theming/tinty/main/mascot.png" alt="Tinty mascot" height="200" width="200" /> </p>

Change the theme of your terminal, text editor and anything else with one command. Immediately switch between over 250 themes!

Tinty is a [Base16] and [Base24] theming manager for all [Tinted Theming] projects including any third-party template repository that follows the [Base16 builder specification].

To learn more about [Tinted Theming] and the base16 specification, have a look at our [home repository] and preview the themes supported by Tinty have a look at our [Tinted Gallery].

Table of contents

How it Works

At its core, Tinty is designed to simplify the theming process across different tools and environments by leveraging the power of [Base16] and [Base24] template themes. Here's a closer look at how Tinty operates:

Theme Application Process

When you setup Tinty and apply a theme, Tinty performs several steps to ensure that your selected theme is seamlessly integrated across your specified applications:

  1. Configuration Loading: Tinty starts by reading your config.toml file to understand your settings and the specific theming components ([[items]]) you've defined. This configuration dictates everything from which shell to use for executing hooks to what themes and templates are applied.

  2. Theme Repository Management: For each item in your configuration, Tinty checks if the necessary theme template repository is already cloned to your local machine. If not, it clones the repository to ~/.local/share/tinted-theming/tinty, ensuring that the latest themes are always at your fingertips.

  3. Theme Copying: Once the repositories are set up, Tinty copies the relevant theme files from each template repository based on the scheme you've chosen to apply. This step gathers all necessary template theme files in one place.

  4. Executed Hooks: With all theme files ready, Tinty then executes the optional shell hooks specified in your config.toml. These hooks might apply the theme directly (e.g., by sourcing a shell script) or perform additional actions like copying theme files to specific locations. This is where the actual theme application occurs, affecting your terminal, text editor, and any other tools you've configured.

Beyond Basic Theming

Tinty's functionality extends beyond applying themes:

  • Scheme Listing and Information: Tinty can list all available schemes and provide detailed information about them. This feature helps you explore and choose from over 250 themes supported by Tinty, including those from third-party repositories following the [Base16 builder specification].

  • Dynamic Updates: The tinty update executes a git pull command on your local copy of theme template repositories. This ensures that you have access to the latest themes and updates from the community.

  • Initialization and Persistence: Using tinty init, the tool can reapply the last used theme or a default scheme at startup, making your theming preferences persistent across sessions.

Designed for Flexibility

Tinty is built with flexibility in mind, accommodating a wide range of theming needs and preferences. Whether you're looking to quickly switch themes across multiple tools, explore new color schemes, or ensure a consistent look and feel in your development environment, Tinty provides the necessary mechanisms to make it happen.

By understanding the sequence of actions Tinty performs and the options available to you, you can tailor the theming process to suit your workflow, making your experience more enjoyable and productive.

Installation

Cargo

cargo install tinty

Homebrew

brew tap tinted-theming/tinted
brew install tinty

Arch Linux

paru -S tinty-git

Nix

nix run github:tinted-theming/tinty

Or add to your flake inputs and use inputs.tinty.packages.${system}.default.

Binaries

Download the relevant binary from the [repository releases] page.

Manual

git clone https://github.com/tinted-theming/tinty path/to/tinty
cd path/to/tinty
make install
make build
cp target/release/tinty /path/to/bin/dir

Basic usage

For the most basic usage without configuration, install Tinty and run the following to apply base16-mocha:

tinty sync # Required initially for setup and when your `tinty/config.toml` is updated
tinty apply base16-mocha

To get a list of [schemes] and more information about the colors:

tinty list
tinty info base16-oceanicnext

Without any config.toml file, tinty will apply your shell theme using [tinted-shell] using sh shell.

Usage

For advanced usage and setup, have a look at the [USAGE.md] document.

CLI

The following is a table of the available subcommands for the CLI tool (Tinty), including the descriptions and any notable arguments.

| Subcommand | Description | Arguments | Example Usage | |------------|-----------------------------------------------------|----------------------|--------------------------------------------| | sync | Installs and updates schemes and templates defined in tinty/config.toml | - | tinty sync | | list | Lists all available themes. | Optional argument --custom-schemes to list saved custom theme files using tinty generate-scheme.<br>Optional argument --json to output more info about each scheme in JSON form | tinty list | | apply | Applies a specific theme. | <scheme_system>-<scheme_name>: Name of the system and scheme to apply. | tinty apply base16-mocha | | cycle | Applies the next theme among your preferred ones. See Configuration. | | tinty cycle | | init | Initializes the tool with the last applied theme otherwise default-scheme from config.toml. | - | tinty init | | current | Displays the currently applied theme or current theme values. | <scheme_property_name> (Optional argument with the following supported values: author | description | name | slug | system | variant) | tinty current | | config | Displays config related information currently in use by Tinty. Without flags it returns config.yml content. | - | tinty config | | info | Provides information about themes. | [<scheme_system>-<scheme_name>]: Optional argument --custom-schemes to provide information on any custom schemes | tinty info base16-mocha | | build | Builds the provided base16 or base24 template using [tinted-builder-rust]. | <DIR>: Path to the base16 or base24 template directory. | tinty build path/to/tinted-tmux | | generate-completion | Generates a shell completion file to source in your shell startup file (*rc). | <shell_name>: Name of the shell to generate a completion script for. Supports bash, elvish, fish, powershell, zsh | tinty generate-completion bash | | generate-scheme | Generates a yaml scheme file with colors inferred from provided image. | <image_path>: Path to image. Prints to stdout unless --save is provided which saves to ~/.local/share/tinted-theming/tinty/custom-schemes for use within Tinty | tinty generate-scheme --system=base16 --save /path/to/image.png | | install | Installs requirements for the configuration. (Use tinty sync) | - | tinty install | | update | Updates the templates and schemes. (Use tinty sync) | - | tinty update |

Some subcommands support additional flags and options to modify their behavior:

| Flag/Option | Description | Applicable Subcommands | Default Value | Example Usage | |--------------------|-----------------------------------------|------------------------|---------------|-------------------------------------------| | --config -c | Specifies a custom configuration file path. | All | If not provided tinty looks for config.toml at $XDG_CONFIG_HOME/tinted-theming/tinty/config.toml otherwise ~/.config/tinted-theming/tinty/config.toml | tinty apply base16-ayu-dark --config /path/to/custom/config.toml | | --data-dir | Specifies a custom path for the data directory. | All | If not provided tinty looks for the data directory at $XDG_DATA_HOME/tinted-theming/tinty otherwise ~/.local/share/tinted-theming/tinty | tinty install --data-dir /path/to/custom/data-dir | | --help -h | Displays help information for the subcommand. | All | - | tinty --help, tinty apply --help, etc. | | --version -V | Shows the version of tinty. | All | - | tinty --version | | --config-path | Shows the config.yml path. | config | - | tinty config --config-path | | --data-dir-path | Shows the data directory path. | config | - | tinty config --data-dir-path | | --custom-schemes | Lists saved custom theme files manually created or generated by tinty generate-scheme | list | - | tinty list --custom-schemes | | --quiet | Boolea

View on GitHub
GitHub Stars171
CategoryDevelopment
Updated8d ago
Forks11

Languages

Rust

Security Score

100/100

Audited on Mar 25, 2026

No findings