Relm4 icons - Icons for your gtk-rs and Relm4 applications!
More than 3000 icons, ready for use in your app!
Usage
1. Find your icons 🔍
You can either use the of the over 3000 shipped icons or your own icons. You can browse the shipped icons using one of the following methods:
For icons from the GNOME icon-development-kit:
- Install Icon library
- Browse the GNOME icon resource
For icons from Fluent UI System Icons:
- Browse the fluent icon library catalog
For browsing all shipped icons:
Sometimes, icons-development-kit and Fluent UI System Icons have overlapping icon names, so the postfix "-alt" is added.
2. Specify your icons 🖼️
Create a file called icons.toml
next to the Cargo.toml
file of your app:
# Recommended: Specify your app ID *OR* your base resource path for more robust icon loading
= "com.my.app"
= "/com/my/app/"
# List of icon names you found (shipped with this crate)
# Note: the file ending `-symbolic.svg` isn't part of the icon name.
= ["plus", "minus"]
# Optional: Specify a folder containing your own SVG icons
= "my_svg_icons"
3. Add Relm4 icons ✍
= "0.8.0"
4. Load the icons 🛫
Add this to your initialization code:
;
initialize_icons
5. Use the icons 🎉
Use set_icon_name
and similar methods to use your icons, for example with
ButtonExt
,
StackPage
,
MenuButton
or
Image
.
Example
let button = default;
button.set_icon_name;
You can also use the icon_names
module for extra compile-time generated icon names.
use icon_names;
let button = default;
button.set_icon_name;
How it works
Crate
- Collect all icons specified in the config file
- Build a gresource bundle containing only the selected icons
- Include the gresource file in the compiled binary
- On initialization load the gresource file
Add new icons
To add new icons, move them into the icons
folder and make sure their file name ends with -symbolic.svg
.
Then run the following commands:
Credit
- GNOME contributors for providing so many outstanding icons
- gvdb-rs for providing a great crate for interacting with gresources in pure Rust
- gtk-rs for outstanding Rust bindings for GTK4
Legal
The source code of Relm4 icons is licensed under the terms of both the MIT license and the Apache License (Version 2.0).
Icons
- The icons in the
icons/icon-development-kit
folder are licensed under the terms of the CC0 license and therefore public domain. - The icons in the
icons/fluentui-system-icons
folder are licensed under the terms of the MIT license.
Both licenses should work for both open source and proprietary applications (without warranty).