App icons for the Kiwi Network: classic, flat and night styles, with fetch URLs.
DesignHTML · CSSGitHub @derlocke-ngOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗App icons for the Kiwi Network. Every icon is the same kiwi cross-section, and the core carries the app's glyph. Each one comes in three styles:
Preview: derlocke-ng.github.io/kiwi-icons
(it's index.html served by GitHub Pages). It has a style and
theme switcher, a palette for each app, and buttons that copy fetch URLs.
| classic | flat | night | app |
|---|---|---|---|
kiwi updaterkiwi-updaterTool updater, installer and app browser (also kiwi apps) | |||
ensconceensconcePost-install setup for Fedora Silverblue / Bluefin | |||
kiwi killswitchkiwi-killswitchDrops traffic when the VPN goes down | |||
kiwi serverkiwi-serverCreates and manages kiwi-network meshes | |||
kiwi cli toolskiwi-cli-tools-desktopDesktop helpers for the command line | |||
kiwi foxkiwi-foxAnonymization suite with integrated Firefox | |||
kiwi pentestingkiwi-pentestingPentesting module for kiwi fox | |||
kiwi networkkiwi-networkVPN mesh | |||
kiwiOSkiwi-osOperating system (planned) | |||
kiwi appkiwi-appAndroid / smartphone app | |||
kiwi cloudkiwi-cloudPlaceholder: cloud / sync | |||
kiwi backupkiwi-backupPlaceholder: backup / restore | |||
kiwi pluginkiwi-pluginPlaceholder: module / plugin. Used by the kiwi-proxy provider modules | |||
kiwi fileskiwi-filesPlaceholder: files / storage | |||
kiwi chatkiwi-chatPlaceholder: chat / messaging | |||
kiwi docskiwi-docsPlaceholder: documentation / notes | |||
kiwi monitorkiwi-monitorPlaceholder: status / monitoring | |||
kiwi vaultkiwi-vaultPlaceholder: passwords / keys | |||
kiwi dnskiwi-dnsPlaceholder: DNS / domains | |||
kiwi mailkiwi-mailMail service (main icon) | |||
kiwi mail privatekiwi-mail-privateMail: encrypted / privacy mailbox | |||
kiwi mail tempkiwi-mail-tempMail: throwaway / disposable address | |||
kiwi mail aliaskiwi-mail-aliasMail: aliases / forwarding | |||
kiwi mail sendkiwi-mail-sendMail: compose / outgoing | |||
kiwi mail inboxkiwi-mail-inboxMail: inbox / client | |||
kiwi proxykiwi-proxyProxy / traffic relay |
| Path | What |
|---|---|
svg/<style>/<icon>.svg | The source icons (128×128 viewBox). These are the masters. |
png/<style>/<size>/<icon>.png | Renders at 16, 32, 48, 64, 128, 256 and 512 px |
icons.json | Machine-readable index: icon ids, wordmarks, descriptions, colors, URL templates |
palette/kiwi-palette.{css,json} | Six colors per app: rim, flesh, core, ink, deep, text |
design/ | The original design sheet (kiwi-logo-sheet.png) and the standalone design page |
tools/render-png.sh | Rebuilds png/ from svg/ |
Every Kiwi app ships its own copy: the classic SVG, byte for byte, at a
repo-relative path named by ICON= in its kiwi.manifest:
cp svg/classic/kiwi-fox.svg ../kiwi-fox/data/kiwi-fox.svg
# and in kiwi-fox/kiwi.manifest:
ICON=data/kiwi-fox.svg
kiwi-updater (2.2 and later) draws that file in its list, cards and detail
view, read from the app's own clone — nothing is fetched at install time.
Keeping the copy byte-identical to the master makes drift a one-line cmp.
An app whose .desktop launcher names its own icon (Icon=kiwi-fox) also
installs that SVG into the hicolor theme and rebuilds the icon cache, so an
updated icon replaces the old one in the app grid:
dest="${KIWI_PREFIX:-$HOME/.local}/share/icons/hicolor" # system scope: /usr/share/icons/hicolor
install -Dm644 data/kiwi-fox.svg "$dest/scalable/apps/kiwi-fox.svg"
gtk-update-icon-cache -qtf "$dest" 2>/dev/null || true
The kiwi-proxy provider modules (kiwi-plugin-tor, -vpn, -9proxy, -myst)
share the kiwi-plugin icon and ship it as data/kiwi-plugin.svg.
For anything that does not ship its own copy, fetch the icon from here. The URL pattern is:
https://raw.githubusercontent.com/derlocke-ng/kiwi-icons/main/svg/<style>/<icon>.svg
https://raw.githubusercontent.com/derlocke-ng/kiwi-icons/main/png/<style>/<size>/<icon>.png
For example, an install.sh can install the icon into the hicolor theme
under the app's id:
ICON=kiwi-fox
ICONS_URL=https://raw.githubusercontent.com/derlocke-ng/kiwi-icons/main
dest="$HOME/.local/share/icons/hicolor" # system scope: /usr/share/icons/hicolor
mkdir -p "$dest/scalable/apps"
curl -fsSL "$ICONS_URL/svg/classic/$ICON.svg" -o "$dest/scalable/apps/$ICON.svg"
for size in 16 32 48 64 128 256 512; do # for desktops that want bitmaps
mkdir -p "$dest/${size}x${size}/apps"
curl -fsSL "$ICONS_URL/png/classic/$size/$ICON.png" -o "$dest/${size}x${size}/apps/$ICON.png"
done
gtk-update-icon-cache -q -t "$dest" 2>/dev/null || true
Then Icon=kiwi-fox in the app's .desktop file finds it.
An installer that must work offline should not depend on this fetch — ship a
copy as above, or fall back to a generic icon when curl fails. To protect
against future redesigns, swap main in the URL for a release tag.
svg/<style>/<icon>.svg, in all three styles.palette/kiwi-palette.json and .css, and an
entry to icons.json.tools/render-png.sh (needs rsvg-convert from librsvg2-tools)
and commit the regenerated png/.ICON= names; for kiwi-plugin, all four provider modules), so the apps
pick up the change.The SVGs were exported from Claude and carry C2PA content credentials in
their <metadata>, which account for most of each file's size. The PNG
renders do not include them.