Launcher: a grid of icons, with badges; the list stays as a Setting

The Launcher shows the Apps as a 4 x 3 grid of 32 x 32 icons, the
selected one's name under it (issue #9). The icons are the website's
own, doubled, and two drawn the same way for SSH and the Shell; they
are PNGs in assets/icons, turned into arrays by scripts/make_icons.py,
which CI checks. The selected tile is the website's: dark blue on cyan,
with notched corners.

- GridModel (lib/ui, host-tested) holds the selection and the scrolling.
- App::badge(): a dot on the tile for unread IRC messages, a Track
  recording, a Capture running, an SSH session open.
- Settings > Launcher: Grid or List.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0162FokPdvY2KsS4NBfwyWPk
This commit is contained in:
2026-10-09 23:14:37 +02:00
co-authored by Claude Opus 5.5
parent aadfd8cb37
commit e2326e113b
40 changed files with 907 additions and 24 deletions
+391
View File
@@ -0,0 +1,391 @@
// Made by scripts/make_icons.py from assets/icons/*.png: change the pictures, not this file.
#include "icons.h"
namespace roro::icons {
const uint8_t gemini[128] = {
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x3f, 0xff, 0xff, 0xfc, // ..############################..
0x3f, 0xff, 0xff, 0xfc, // ..############################..
0x33, 0x30, 0x00, 0x0c, // ..##..##..##................##..
0x33, 0x30, 0x00, 0x0c, // ..##..##..##................##..
0x30, 0x00, 0x00, 0x0c, // ..##........................##..
0x30, 0x00, 0x00, 0x0c, // ..##........................##..
0x3f, 0xff, 0xff, 0xfc, // ..############################..
0x3f, 0xff, 0xff, 0xfc, // ..############################..
0x30, 0x00, 0x00, 0x0c, // ..##........................##..
0x30, 0x00, 0x00, 0x0c, // ..##........................##..
0x30, 0xc0, 0xc0, 0x0c, // ..##....##......##..........##..
0x30, 0xc0, 0xc0, 0x0c, // ..##....##......##..........##..
0x30, 0x30, 0x30, 0x0c, // ..##......##......##........##..
0x30, 0x30, 0x30, 0x0c, // ..##......##......##........##..
0x30, 0x0c, 0x0c, 0x0c, // ..##........##......##......##..
0x30, 0x0c, 0x0c, 0x0c, // ..##........##......##......##..
0x30, 0x30, 0x30, 0x0c, // ..##......##......##........##..
0x30, 0x30, 0x30, 0x0c, // ..##......##......##........##..
0x30, 0xc0, 0xc0, 0x0c, // ..##....##......##..........##..
0x30, 0xc0, 0xc0, 0x0c, // ..##....##......##..........##..
0x30, 0x00, 0x00, 0x0c, // ..##........................##..
0x30, 0x00, 0x00, 0x0c, // ..##........................##..
0x3f, 0xff, 0xff, 0xfc, // ..############################..
0x3f, 0xff, 0xff, 0xfc, // ..############################..
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
};
const uint8_t gnss[128] = {
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x3f, 0xc0, 0x00, // ..........########..............
0x00, 0x3f, 0xc0, 0x00, // ..........########..............
0x03, 0xc0, 0x0f, 0x00, // ......####..........####........
0x03, 0xc0, 0x0f, 0x00, // ......####..........####........
0x0c, 0x00, 0x0f, 0x30, // ....##..............####..##....
0x0c, 0x00, 0x0f, 0x30, // ....##..............####..##....
0x30, 0x00, 0x00, 0x0c, // ..##........................##..
0x30, 0x00, 0x00, 0x0c, // ..##........................##..
0x30, 0x0f, 0xf0, 0x0c, // ..##........########........##..
0x30, 0x0f, 0xf0, 0x0c, // ..##........########........##..
0x00, 0x30, 0x0c, 0x0c, // ..........##........##......##..
0x00, 0x30, 0x0c, 0x0c, // ..........##........##......##..
0x3c, 0x30, 0x0c, 0x0c, // ..####....##........##......##..
0x3c, 0x30, 0x0c, 0x0c, // ..####....##........##......##..
0x3c, 0x30, 0x0c, 0x0c, // ..####....##........##......##..
0x3c, 0x30, 0x0c, 0x0c, // ..####....##........##......##..
0x00, 0x30, 0x0c, 0x0c, // ..........##........##......##..
0x00, 0x30, 0x0c, 0x0c, // ..........##........##......##..
0x30, 0x0f, 0xf0, 0x0c, // ..##........########........##..
0x30, 0x0f, 0xf0, 0x0c, // ..##........########........##..
0x30, 0x00, 0x00, 0x0c, // ..##........................##..
0x30, 0x00, 0x00, 0x0c, // ..##........................##..
0x0c, 0x00, 0x00, 0x30, // ....##....................##....
0x0c, 0x00, 0x00, 0x30, // ....##....................##....
0x03, 0xc0, 0x03, 0xc0, // ......####............####......
0x03, 0xc0, 0x03, 0xc0, // ......####............####......
0x00, 0x3f, 0xfc, 0x00, // ..........############..........
0x00, 0x3f, 0xfc, 0x00, // ..........############..........
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
};
const uint8_t irc[128] = {
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x30, 0x0c, 0x00, // ..........##........##..........
0x00, 0x30, 0x0c, 0x00, // ..........##........##..........
0x00, 0x30, 0x0c, 0x00, // ..........##........##..........
0x00, 0x30, 0x0c, 0x00, // ..........##........##..........
0x00, 0x30, 0x0c, 0x00, // ..........##........##..........
0x00, 0x30, 0x0c, 0x00, // ..........##........##..........
0x0f, 0xff, 0xff, 0xf0, // ....########################....
0x0f, 0xff, 0xff, 0xf0, // ....########################....
0x00, 0x30, 0x0c, 0x00, // ..........##........##..........
0x00, 0x30, 0x0c, 0x00, // ..........##........##..........
0x00, 0x30, 0x0c, 0x00, // ..........##........##..........
0x00, 0x30, 0x0c, 0x00, // ..........##........##..........
0x00, 0x30, 0x0c, 0x00, // ..........##........##..........
0x00, 0x30, 0x0c, 0x00, // ..........##........##..........
0x00, 0x30, 0x0c, 0x00, // ..........##........##..........
0x00, 0x30, 0x0c, 0x00, // ..........##........##..........
0x0f, 0xff, 0xff, 0xf0, // ....########################....
0x0f, 0xff, 0xff, 0xf0, // ....########################....
0x00, 0x30, 0x0c, 0x00, // ..........##........##..........
0x00, 0x30, 0x0c, 0x00, // ..........##........##..........
0x00, 0x30, 0x0c, 0x00, // ..........##........##..........
0x00, 0x30, 0x0c, 0x00, // ..........##........##..........
0x00, 0x30, 0x0c, 0x00, // ..........##........##..........
0x00, 0x30, 0x0c, 0x00, // ..........##........##..........
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
};
const uint8_t lora[128] = {
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x0c, 0x00, 0x00, // ............##..................
0x00, 0x0c, 0x00, 0x00, // ............##..................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x0c, 0x00, 0x00, // ............##..................
0x00, 0x0c, 0x00, 0x00, // ............##..................
0x00, 0x0c, 0x0c, 0x00, // ............##......##..........
0x00, 0x0c, 0x0c, 0x00, // ............##......##..........
0x00, 0x0c, 0x00, 0x00, // ............##..................
0x00, 0x0c, 0x00, 0x00, // ............##..................
0x00, 0x0c, 0x0c, 0x00, // ............##......##..........
0x00, 0x0c, 0x0c, 0x00, // ............##......##..........
0x00, 0x0c, 0x0c, 0x00, // ............##......##..........
0x00, 0x0c, 0x0c, 0x00, // ............##......##..........
0x00, 0xcc, 0x0c, 0xc0, // ........##..##......##..##......
0x00, 0xcc, 0x0c, 0xc0, // ........##..##......##..##......
0x00, 0xcc, 0xcc, 0xc0, // ........##..##..##..##..##......
0x00, 0xcc, 0xcc, 0xc0, // ........##..##..##..##..##......
0x0c, 0xcc, 0xcc, 0xc0, // ....##..##..##..##..##..##......
0x0c, 0xcc, 0xcc, 0xc0, // ....##..##..##..##..##..##......
0x0c, 0xcc, 0xcc, 0xc0, // ....##..##..##..##..##..##......
0x0c, 0xcc, 0xcc, 0xc0, // ....##..##..##..##..##..##......
0x0c, 0xcc, 0xcc, 0xc0, // ....##..##..##..##..##..##......
0x0c, 0xcc, 0xcc, 0xc0, // ....##..##..##..##..##..##......
0x3f, 0xff, 0xff, 0xfc, // ..############################..
0x3f, 0xff, 0xff, 0xfc, // ..############################..
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
};
const uint8_t notes[128] = {
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0xc3, 0x0c, 0x00, // ........##....##....##..........
0x00, 0xc3, 0x0c, 0x00, // ........##....##....##..........
0x00, 0xc3, 0x0c, 0x00, // ........##....##....##..........
0x00, 0xc3, 0x0c, 0x00, // ........##....##....##..........
0x0f, 0xff, 0xff, 0xf0, // ....########################....
0x0f, 0xff, 0xff, 0xf0, // ....########################....
0x0c, 0xc3, 0x0c, 0x30, // ....##..##....##....##....##....
0x0c, 0xc3, 0x0c, 0x30, // ....##..##....##....##....##....
0x0c, 0x00, 0x00, 0x30, // ....##....................##....
0x0c, 0x00, 0x00, 0x30, // ....##....................##....
0x0c, 0x00, 0x00, 0x30, // ....##....................##....
0x0c, 0x00, 0x00, 0x30, // ....##....................##....
0x0c, 0xff, 0xff, 0x30, // ....##..################..##....
0x0c, 0xff, 0xff, 0x30, // ....##..################..##....
0x0c, 0x00, 0x00, 0x30, // ....##....................##....
0x0c, 0x00, 0x00, 0x30, // ....##....................##....
0x0c, 0xff, 0xff, 0x30, // ....##..################..##....
0x0c, 0xff, 0xff, 0x30, // ....##..################..##....
0x0c, 0x00, 0x00, 0x30, // ....##....................##....
0x0c, 0x00, 0x00, 0x30, // ....##....................##....
0x0c, 0xff, 0xc0, 0x30, // ....##..##########........##....
0x0c, 0xff, 0xc0, 0x30, // ....##..##########........##....
0x0c, 0x00, 0x00, 0x30, // ....##....................##....
0x0c, 0x00, 0x00, 0x30, // ....##....................##....
0x0c, 0x00, 0x00, 0x30, // ....##....................##....
0x0c, 0x00, 0x00, 0x30, // ....##....................##....
0x0f, 0xff, 0xff, 0xf0, // ....########################....
0x0f, 0xff, 0xff, 0xf0, // ....########################....
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
};
const uint8_t settings[128] = {
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x0f, 0xf0, 0x00, // ............########............
0x00, 0x0f, 0xf0, 0x00, // ............########............
0x03, 0xcc, 0x33, 0xc0, // ......####..##....##..####......
0x03, 0xcc, 0x33, 0xc0, // ......####..##....##..####......
0x0c, 0x30, 0x0c, 0x30, // ....##....##........##....##....
0x0c, 0x30, 0x0c, 0x30, // ....##....##........##....##....
0x0c, 0x00, 0x00, 0x30, // ....##....................##....
0x0c, 0x00, 0x00, 0x30, // ....##....................##....
0x03, 0x0f, 0xf0, 0xc0, // ......##....########....##......
0x03, 0x0f, 0xf0, 0xc0, // ......##....########....##......
0x3c, 0x3c, 0x3c, 0x3c, // ..####....####....####....####..
0x3c, 0x3c, 0x3c, 0x3c, // ..####....####....####....####..
0x30, 0x30, 0x0c, 0x0c, // ..##......##........##......##..
0x30, 0x30, 0x0c, 0x0c, // ..##......##........##......##..
0x30, 0x30, 0x0c, 0x0c, // ..##......##........##......##..
0x30, 0x30, 0x0c, 0x0c, // ..##......##........##......##..
0x3c, 0x3c, 0x3c, 0x3c, // ..####....####....####....####..
0x3c, 0x3c, 0x3c, 0x3c, // ..####....####....####....####..
0x03, 0x0f, 0xf0, 0xc0, // ......##....########....##......
0x03, 0x0f, 0xf0, 0xc0, // ......##....########....##......
0x0c, 0x00, 0x00, 0x30, // ....##....................##....
0x0c, 0x00, 0x00, 0x30, // ....##....................##....
0x0c, 0x30, 0x0c, 0x30, // ....##....##........##....##....
0x0c, 0x30, 0x0c, 0x30, // ....##....##........##....##....
0x03, 0xcc, 0x33, 0xc0, // ......####..##....##..####......
0x03, 0xcc, 0x33, 0xc0, // ......####..##....##..####......
0x00, 0x0f, 0xf0, 0x00, // ............########............
0x00, 0x0f, 0xf0, 0x00, // ............########............
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
};
const uint8_t shell[128] = {
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x3c, 0x00, 0x00, 0x00, // ..####..........................
0x3c, 0x00, 0x00, 0x00, // ..####..........................
0x0f, 0x00, 0x00, 0x00, // ....####........................
0x0f, 0x00, 0x00, 0x00, // ....####........................
0x03, 0xc0, 0x00, 0x00, // ......####......................
0x03, 0xc0, 0x00, 0x00, // ......####......................
0x00, 0xf0, 0x00, 0x00, // ........####....................
0x00, 0xf0, 0x00, 0x00, // ........####....................
0x00, 0x3c, 0x00, 0x00, // ..........####..................
0x00, 0x3c, 0x00, 0x00, // ..........####..................
0x00, 0x0f, 0x00, 0x00, // ............####................
0x00, 0x0f, 0x00, 0x00, // ............####................
0x00, 0x3c, 0x00, 0x00, // ..........####..................
0x00, 0x3c, 0x00, 0x00, // ..........####..................
0x00, 0xf0, 0x00, 0x00, // ........####....................
0x00, 0xf0, 0x00, 0x00, // ........####....................
0x03, 0xc0, 0x00, 0x00, // ......####......................
0x03, 0xc0, 0x00, 0x00, // ......####......................
0x0f, 0x00, 0x00, 0x00, // ....####........................
0x0f, 0x00, 0x00, 0x00, // ....####........................
0x3c, 0x00, 0xff, 0xfc, // ..####..........##############..
0x3c, 0x00, 0xff, 0xfc, // ..####..........##############..
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
};
const uint8_t ssh[128] = {
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x0f, 0xf0, 0x00, 0x00, // ....########....................
0x0f, 0xf0, 0x00, 0x00, // ....########....................
0x30, 0x0c, 0x00, 0x00, // ..##........##..................
0x30, 0x0c, 0x00, 0x00, // ..##........##..................
0xc0, 0x03, 0x00, 0x00, // ##............##................
0xc0, 0x03, 0x00, 0x00, // ##............##................
0xc3, 0xc3, 0xff, 0xff, // ##....####....##################
0xc3, 0xc3, 0xff, 0xff, // ##....####....##################
0xc3, 0xc3, 0x00, 0xcc, // ##....####....##........##..##..
0xc3, 0xc3, 0x00, 0xcc, // ##....####....##........##..##..
0xc0, 0x03, 0x00, 0xcc, // ##............##........##..##..
0xc0, 0x03, 0x00, 0xcc, // ##............##........##..##..
0x30, 0x0c, 0x00, 0x00, // ..##........##..................
0x30, 0x0c, 0x00, 0x00, // ..##........##..................
0x0f, 0xf0, 0x00, 0x00, // ....########....................
0x0f, 0xf0, 0x00, 0x00, // ....########....................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
};
const uint8_t storage[128] = {
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x03, 0xff, 0xf0, 0x00, // ......##############............
0x03, 0xff, 0xf0, 0x00, // ......##############............
0x03, 0x00, 0x0c, 0x00, // ......##............##..........
0x03, 0x00, 0x0c, 0x00, // ......##............##..........
0x03, 0x33, 0x03, 0x00, // ......##..##..##......##........
0x03, 0x33, 0x03, 0x00, // ......##..##..##......##........
0x03, 0x33, 0x00, 0xc0, // ......##..##..##........##......
0x03, 0x33, 0x00, 0xc0, // ......##..##..##........##......
0x03, 0x33, 0x00, 0xc0, // ......##..##..##........##......
0x03, 0x33, 0x00, 0xc0, // ......##..##..##........##......
0x03, 0x33, 0x00, 0xc0, // ......##..##..##........##......
0x03, 0x33, 0x00, 0xc0, // ......##..##..##........##......
0x03, 0x00, 0x00, 0xc0, // ......##................##......
0x03, 0x00, 0x00, 0xc0, // ......##................##......
0x03, 0x00, 0x00, 0xc0, // ......##................##......
0x03, 0x00, 0x00, 0xc0, // ......##................##......
0x03, 0x3f, 0xfc, 0xc0, // ......##..############..##......
0x03, 0x3f, 0xfc, 0xc0, // ......##..############..##......
0x03, 0x30, 0x0c, 0xc0, // ......##..##........##..##......
0x03, 0x30, 0x0c, 0xc0, // ......##..##........##..##......
0x03, 0x30, 0x0c, 0xc0, // ......##..##........##..##......
0x03, 0x30, 0x0c, 0xc0, // ......##..##........##..##......
0x03, 0x3f, 0xfc, 0xc0, // ......##..############..##......
0x03, 0x3f, 0xfc, 0xc0, // ......##..############..##......
0x03, 0x00, 0x00, 0xc0, // ......##................##......
0x03, 0x00, 0x00, 0xc0, // ......##................##......
0x03, 0xff, 0xff, 0xc0, // ......####################......
0x03, 0xff, 0xff, 0xc0, // ......####################......
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
};
const uint8_t system[128] = {
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x30, 0x0c, 0x00, // ..........##........##..........
0x00, 0x30, 0x0c, 0x00, // ..........##........##..........
0x00, 0x30, 0x0c, 0x00, // ..........##........##..........
0x00, 0x30, 0x0c, 0x00, // ..........##........##..........
0x00, 0xff, 0xff, 0x00, // ........################........
0x00, 0xff, 0xff, 0x00, // ........################........
0x0f, 0xc0, 0x03, 0xf0, // ....######............######....
0x0f, 0xc0, 0x03, 0xf0, // ....######............######....
0x00, 0xcf, 0xf3, 0x00, // ........##..########..##........
0x00, 0xcf, 0xf3, 0x00, // ........##..########..##........
0x00, 0xcf, 0xf3, 0x00, // ........##..########..##........
0x00, 0xcf, 0xf3, 0x00, // ........##..########..##........
0x00, 0xcf, 0xf3, 0x00, // ........##..########..##........
0x00, 0xcf, 0xf3, 0x00, // ........##..########..##........
0x00, 0xcf, 0xf3, 0x00, // ........##..########..##........
0x00, 0xcf, 0xf3, 0x00, // ........##..########..##........
0x0f, 0xc0, 0x03, 0xf0, // ....######............######....
0x0f, 0xc0, 0x03, 0xf0, // ....######............######....
0x00, 0xff, 0xff, 0x00, // ........################........
0x00, 0xff, 0xff, 0x00, // ........################........
0x00, 0x30, 0x0c, 0x00, // ..........##........##..........
0x00, 0x30, 0x0c, 0x00, // ..........##........##..........
0x00, 0x30, 0x0c, 0x00, // ..........##........##..........
0x00, 0x30, 0x0c, 0x00, // ..........##........##..........
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
};
const uint8_t wifi_tools[128] = {
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x3f, 0xfc, 0x00, // ..........############..........
0x00, 0x3f, 0xfc, 0x00, // ..........############..........
0x03, 0xc0, 0x03, 0xc0, // ......####............####......
0x03, 0xc0, 0x03, 0xc0, // ......####............####......
0x0c, 0x00, 0x00, 0x30, // ....##....................##....
0x0c, 0x00, 0x00, 0x30, // ....##....................##....
0x30, 0x3f, 0xfc, 0x0c, // ..##......############......##..
0x30, 0x3f, 0xfc, 0x0c, // ..##......############......##..
0x03, 0xc0, 0x03, 0xc0, // ......####............####......
0x03, 0xc0, 0x03, 0xc0, // ......####............####......
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x0f, 0xf0, 0x00, // ............########............
0x00, 0x0f, 0xf0, 0x00, // ............########............
0x00, 0x30, 0x0c, 0x00, // ..........##........##..........
0x00, 0x30, 0x0c, 0x00, // ..........##........##..........
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x03, 0xc0, 0x00, // ..............####..............
0x00, 0x03, 0xc0, 0x00, // ..............####..............
0x00, 0x03, 0xc0, 0x00, // ..............####..............
0x00, 0x03, 0xc0, 0x00, // ..............####..............
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
0x00, 0x00, 0x00, 0x00, // ................................
};
} // namespace roro::icons
+23
View File
@@ -0,0 +1,23 @@
// Made by scripts/make_icons.py from assets/icons/*.png: change the pictures, not this file.
#pragma once
#include <cstdint>
namespace roro::icons {
// One bit a pixel, the leftmost first, a row after another: what Canvas::drawBitmap takes.
constexpr int kSize = 32;
extern const uint8_t gemini[128]; // gemini.png
extern const uint8_t gnss[128]; // gnss.png
extern const uint8_t irc[128]; // irc.png
extern const uint8_t lora[128]; // lora.png
extern const uint8_t notes[128]; // notes.png
extern const uint8_t settings[128]; // settings.png
extern const uint8_t shell[128]; // shell.png
extern const uint8_t ssh[128]; // ssh.png
extern const uint8_t storage[128]; // storage.png
extern const uint8_t system[128]; // system.png
extern const uint8_t wifi_tools[128]; // wifi-tools.png
} // namespace roro::icons