Install
openclaw skills install @holdyounger/folder-icon为 Windows 目录下的子文件夹批量生成并应用彩色图标。支持两种方案:(A) Tabler Icons — 集中图标目录 + 相对路径引用(默认,可整体迁移);(B) MDI Icons — 图标直接放在每个子文件夹内部(folder.ico),无需独立图标目录。使用场景:"批量设置文件夹图标"、"设置文件夹 icon"、"为目录设置图标"、"文件夹图标配色"。输出:生成 .ico 文件 + 写入 desktop.ini(ANSI 编码、相对路径) + 设置属性。仅限 Windows。
openclaw skills install @holdyounger/folder-icon为目录下的子文件夹批量生成并应用彩色图标。
支持两种方案:
| 方案 | SVG来源 | 图标位置 | 文件夹属性 | 适用场景 |
|---|---|---|---|---|
| A. Tabler (默认) | Tabler Icons | 集中 .folder-icons/ 目录 | +S (System) | 便于整体迁移、批量管理 |
| B. MDI | Material Design Icons | 每个子文件夹内 folder.ico | +R (ReadOnly) | 结构扁平、独立不依赖外部路径 |
设计原则:方案A的图标目录放在目标目录内部(如
.folder-icons/),整个结构自包含、可整体迁移。 方案B无单独图标目录,适合一次性设置或不想在目录中增加隐藏文件夹的场景。
folder-icon/
├── SKILL.md # 本文件
├── scripts/
│ ├── folder_icon.py # 核心脚本——方案A(Tabler)
│ ├── folder_icon_mdi.py# 附加脚本——方案B(MDI)
│ └── icon_config.yaml # 图标映射配置示例
├── references/
│ └── icon-mappings.md # 内置图标映射表
└── examples/
└── source-mapping.md # 示例映射表
# 标准用法(图标目录默认 .folder-icons/,在目标目录内)
python skills/folder-icon/scripts/folder_icon.py "D:\目标目录"
# 仅预览
python skills/folder-icon/scripts/folder_icon.py "D:\目标目录" --dry-run
# 强制重新生成
python skills/folder-icon/scripts/folder_icon.py "D:\目标目录" --force
# 自定义图标目录名
python skills/folder-icon/scripts/folder_icon.py "D:\目标目录" --icon-dir "my-icons"
scripts/icon_config.yaml(SVG 来源、文件夹→图标映射)目标目录/.folder-icons/(可通过 --icon-dir 覆盖目录名)desktop.ini(ANSI 编码,IconResource 为相对路径,从子文件夹指向目标目录内的图标目录)+S 属性 + desktop.ini +S +H 属性explicit_mappings:
- folder: "文档"
icon: "book-outline.ico"
rgb: [33, 150, 243]
color: "蓝"
pip install svglib reportlab Pillow PyYAML requests
python skills/folder-icon/scripts/folder_icon_mdi.py "D:\目标目录"
folder.ico,desktop.ini 引用 folder.ico,0(同目录)+R (ReadOnly) 而非 +S (System),更符合资源管理器图标显示约定MDI SVG 源 URL:https://raw.githubusercontent.com/Templarian/MaterialDesign/master/svg/{name}.svg
查询图标:https://pictogrammers.com/library/mdi/
pip install Pillow cairosvg
encoding='ansi',否则 Windows Explorer 无法读取..\.folder-icons\book-outline.ico);方案B直接用 folder.ico,0attrib +R "D:\My Games")+S + desktop.ini +S +H+R + desktop.ini +H +SDim fso
Set fso = CreateObject("Scripting.FileSystemObject")
' 方案B:文件夹 +R,desktop.ini +H+S
Dim folder: Set folder = fso.GetFolder("D:\path\to\folder")
folder.Attributes = folder.Attributes Or 1 ' +R(ReadOnly)
Dim ini: Set ini = fso.GetFile(folder.Path & "\desktop.ini")
ini.Attributes = ini.Attributes Or 2 Or 4 ' +H +S(Hidden + System)
taskkill /f /im explorer.exe
del /a /q "%localappdata%\Microsoft\Windows\Explorer\iconcache*"
del /a /q "%localappdata%\IconCache.db"
start explorer.exe
或按 F5 刷新。
references/icon-mappings.md(40+ 个常用 Tabler 图标)examples/source-mapping.mdQ: desktop.ini 无效,图标不显示?
→ 确认:① desktop.ini 为 ANSI 编码;② IconResource 路径正确;③ 文件夹有 +S(方案A)或+R(方案B)属性;④ desktop.ini 有 +S +H 属性
Q: 图标颜色不对?
→ 方案A的 svg_colorize() 仅替换 currentColor、stroke、fill,渐变(stop-color)和 stroke="none" 保留原样
Q: WSL 设置属性不生效?
→ WSL 的 chmod/drvfs 无法设置 Windows 属性,必须用 Windows 本地的 attrib cmd.exe 或 VBScript 设置
Q: 图标显示模糊? → 确认 ICO 包含至少 4 种尺寸(16/32/48/256)。方案B内置 7 种尺寸。重启 Explorer 清除缓存后重试