# UI assets ## vendor_icons/ Generated placeholder icons (64×64 PNG) used to identify each authenticator vendor in the entry list. They are intentionally generic — a coloured rounded square with a single white initial — so they carry no third-party trademark. To use real vendor logos, replace any individual file in place. The filename is the lookup key (matches `authenticator.Authenticator.Name()`): - `google.png` - `microsoft.png` - `okta.png` - `hotp.png` - `battlenet.png` - `steam.png` - `qr.png` — fallback for entries with an unknown vendor The recommended size is 64×64 PNG with transparent corners. Files are embedded at build time via `//go:embed` in `internal/ui/vendor_icons.go`. ## app_icon.png A 256×256 placeholder for the application window/tray icon. Gio v0.7 has no runtime API to set the window icon — for Windows you need to embed a `.ico` resource via `rsrc` or `goversioninfo` at build time. The workflow is: ``` # 1. Regenerate app_icon.png (optional — only if you change the source) go run ./tools/gen_icons # 2. Bake a multi-resolution app_icon.ico from the PNG go run ./tools/gen_ico # 3. Compile the .ico into a COFF .syso that Go auto-links GOPROXY=https://goproxy.cn,direct go run github.com/akavel/rsrc@latest \ -ico internal/ui/assets/app_icon.ico \ -o internal/ui/assets/rsrc_windows.syso ``` `rsrc_windows.syso` lives next to other assets so `go build` picks it up without any extra build-tag wiring. The tray runtime loads the icon by resource id 1 (the first (and only) icon rsrc emits); if loading fails it falls back to `IDI_APPLICATION`. To regenerate the placeholders, run: ``` go run ./tools/gen_icons ```