riffaells2k downloadsLoad custom SVG icons from icons folder and restart plugins automatically.
A plugin for Obsidian that loads custom SVG icons from the icons folder and automatically restarts selected plugins. The icons folder can be located either in .obsidian or in the plugin root.
├── main.ts # Main plugin file
├── manifest.json # Plugin manifest
├── icons/ # SVG icons folder
│ └── example-icon.svg # Example icon
├── src/
│ ├── lang/ # Built-in translations
│ │ ├── en.ts # English translations
│ │ ├── ru.ts # Russian translations
│ │ └── index.ts # Translation exports
│ ├── types/
│ │ └── index.ts # TypeScript types and interfaces
│ ├── utils/
│ │ ├── constants.ts # Constants and default settings
│ │ └── helpers.ts # Helper functions
│ ├── services/
│ │ ├── IconLoader.ts # Icon loading service
│ │ ├── PluginManager.ts # Plugin management service
│ │ └── I18nService.ts # Localization service
│ └── ui/
│ ├── SettingsTab.ts # Settings interface (1.13 API + legacy display())
│ └── settings/ # Declarative setting definitions (Obsidian 1.13+)
└── autobuild.py # Development sync script
icons folder and loads all SVG filesicons folder in the plugin root or in the .obsidian folderSome plugins read Obsidian's icon list once, at the moment they are loaded. Iconic is one of them: an icon missing from that list does not show up in its icon picker and is not drawn at all.
So whether Iconic sees your icons depends on which of the two plugins Obsidian loads first, and that follows the order they were enabled in:
iconic in the list. Iconic is then reloaded once after startup, and again whenever the icons change..obsidian/icons) or a custom pathcurrentColor so icons follow the themeOn Obsidian 1.13+ the tab is built declaratively (getSettingDefinitions()), so the plugin's
settings show up in Obsidian's global settings search; older versions get the previous
display() interface unchanged.
# Install dependencies
npm install
# Build for development
npm run dev
# Build for production
npm run build
For convenient development, a Python auto-build script is included:
# Install Python dependencies
pip install watchdog rich
# Run auto-build
python autobuild.py --vault "path/to/obsidian/vault"
The script automatically monitors changes in main.js, styles.css, and manifest.json, copying them to the plugin folder in Obsidian.
The plugin is divided into logical modules:
The plugin uses a built-in translation system:
MIT License - see LICENSE file for details.