OpenRiot Notification Icons
Generation Command
# Font: FiraCode Nerd Font (required)
FONT="$HOME/.local/share/fonts/FiraCode/FiraCodeNerdFont-Regular.ttf"
# Generate white icon (transparent background)
convert -background none -fill white -font "$FONT" -pointsize 32 label:"ICON" -resize 48x48 output.png
# Copy to icons folder and deploy
cp output.png config/icons/
cp output.png ~/.local/share/openriot/config/icons/
Icon Specification
| Icon | Title | Content | Source File |
|---|---|---|---|
| | Memory | Usage: x% | main.go (–mem-notify) |
| | CPU | Usage: x% | main.go (–cpu-notify) |
| | Settings | Brightness: x% | display/display.go |
| | Settings | Speaker: x% | audio/volume.go |
| | Settings | Speaker: Muted | audio/volume.go |
| | Settings | Mic: x% | audio/volume.go |
| | Settings | Mic: Muted | audio/volume.go |
| | VPN | Starting WireGuard… | wireguard/wireguard.go |
| | VPN | Stopping WireGuard… | wireguard/wireguard.go |
| | VPN | Not configured | wireguard/wireguard.go |
| | Display | Night Light: On | night-light.sh |
| | Display | Night Light: Off | night-light.sh |
| | Applications | Launching [name]… | launcher.sh |
| | Applications | [Firefox title] | firefox-wrapper.sh |
| | WiFi | Connected to [SSID] | wifi-info.sh |
| | WiFi | Not connected | wifi-info.sh |
| | WiFi | No interface found | wifi-info.sh |
| | Crypto | Loading… | crypto-notify.sh |
| | Crypto | [prices] | crypto-notify.sh |
| | Desktop | Workspace [N] | keybindings.conf |
| | Desktop | Current Version v[X.X] | openriot-update.sh |
| | Desktop | Upgrade available | openriot-update.sh |
Icon List (Unique)
- - memory.png
- - cpu.png
- - settings.png (Brightness)
- - speaker.png
- - speaker-muted.png
- - mic.png
- - mic-muted.png
- - vpn.png
- - vpn-error.png
- - nightlight-on.png
- - nightlight-off.png
- - applications.png
- - firefox.png
- - wifi.png
- - wifi-off.png
- - crypto.png
- - workspace.png
- - no-upgrade.png
- - upgrade.png
- - proton-drive.png
- - transmission-on.png
- - transmission-off.png
Status
- Step 1: Find all notifications
- Step 2: Enumerate notifications
- Step 3: Ensure consistent style
- Step 4: Find nerd font symbols
- Step 5: List symbols
- Step 6: Generate .png files
- Step 7: Create icons folder
- Step 8: Add icons to notifications
Deployment
Icons are deployed to: ~/.local/share/openriot/config/icons/
To regenerate all icons, run:
FONT="$HOME/.local/share/fonts/FiraCode/FiraCodeNerdFont-Regular.ttf"
ICON_DIR="config/icons"
for icon in memory cpu settings speaker speaker-muted mic mic-muted vpn vpn-error nightlight-on nightlight-off applications firefox wifi wifi-off crypto workspace no-upgrade upgrade proton-drive transmission-on transmission-off; do
convert -background none -fill white -font "$FONT" -pointsize 32 label:"SYMBOL" -resize 48x48 "$ICON_DIR/$icon.png"
done
Future Enhancements
- Notification Icon Lookup - Create a
.jsonor.tomlfile mapping titles to icons:[notifications] "Memory" = "memory.png" "CPU" = "cpu.png"Then
openriot --notify "title" "body"looks up icon automatically. -
Replace Shell Scripts - Consolidate
.shfiles intoopenriot --{command}options to reduce brittleness and simplify maintenance. - Deploy Icons via packages.yaml - Add
config/icons/*to install configuration.