76 lines
3.1 KiB
Markdown
76 lines
3.1 KiB
Markdown
# icon-color-tool
|
|
|
|
A small GTK4 desktop app for editing the `ColorScheme-*` CSS colors
|
|
embedded in [Breeze icon](https://github.com/KDE/breeze-icons) SVGs.
|
|
|
|
## Usage
|
|
|
|
```sh
|
|
icon-color-tool # opens a searchable icon picker
|
|
icon-color-tool -h # print colorful help output
|
|
icon-color-tool -d path/to/icons # use a custom icon directory
|
|
icon-color-tool path/to/icon.svg # opens directly in the color editor
|
|
```
|
|
|
|
The picker's search box does a fuzzy (subsequence) match against each
|
|
icon's path, automatically prioritizing the highest-resolution version of each icon.
|
|
When the app first starts, the icon picker search bar is pre-filled with "folder.svg" (and the emblem picker is pre-filled with "symbolic") to direct users to the most common combinations this tool is used for.
|
|
|
|
Selecting an icon (or passing one directly) opens the color editor:
|
|
|
|
- **Color Editing**: Click a swatch to pick a new color for that `ColorScheme-*` class.
|
|
- **Emblem Support**: Click "Add Emblem" to overlay another SVG on top of your background icon. You can drag to position it visually, or use sliders to adjust its X, Y, and Size. The tool automatically namespaces the emblem's CSS so you can color its layers independently from the background.
|
|
- **Saving**: Source files are preserved. Modifications are kept in memory until you use the "Save As..." button to export a new SVG. Unsaved changes are protected by a confirmation prompt if you try to exit. Undo/Redo are available from the toolbar.
|
|
|
|
## Requirements
|
|
|
|
- **GTK4 Backend**: Required for the graphical interface to function (most Linux desktop users will already have this installed).
|
|
- **Git**: Required on the system `PATH` if the tool needs to automatically clone the Breeze icon repository on its first run.
|
|
|
|
## Installation
|
|
|
|
The easiest way to install is using the provided install script, which will download the latest binary and place it in your path:
|
|
|
|
```sh
|
|
curl -sL https://git.rootiest.dev/rootiest/icon-color-tool/raw/branch/main/install.sh | bash
|
|
```
|
|
|
|
*(If you want to build from source instead, you can append ` -s -- --build` to the command above).*
|
|
|
|
Alternatively, you can manually download the pre-built `amd64` binary from the [latest release](https://git.rootiest.dev/rootiest/icon-color-tool/releases/latest).
|
|
|
|
> [!NOTE]
|
|
|
|
> Currently this tool is only available for `amd64` Linux systems.
|
|
|
|
## Configuration
|
|
|
|
On first run, a config file is created at
|
|
`~/.config/icon-color-tool/config.toml`:
|
|
|
|
```toml
|
|
[settings]
|
|
breeze_path = "~/.local/share/breeze-icons"
|
|
```
|
|
|
|
If the configured `breeze_path` doesn't exist (or is empty), the
|
|
[breeze-icons](https://github.com/KDE/breeze-icons) repository is cloned
|
|
there automatically (shallow clone via `git`, which must be installed and
|
|
on `PATH`).
|
|
|
|
Set the `BREEZE_ICONS_PATH` environment variable to override the
|
|
configured path entirely (also auto-clones if missing).
|
|
|
|
## Building
|
|
|
|
Requires Rust (stable) and the GTK4 + librsvg development libraries
|
|
installed system-wide (e.g. `gtk4-devel`/`libgtk-4-dev` and
|
|
`librsvg2-devel`/`librsvg2-dev`, depending on your distro).
|
|
|
|
```sh
|
|
cargo build --release
|
|
./target/release/icon-color-tool
|
|
```
|
|
|
|
#
|