feat: move fonts/icons/man to 0:/os, add capabilities GUI app

This commit is contained in:
daniel committed 2026-09-19 09:50:58 +02:00
1 parent 80b5beb17d
commit 75e85f24ef
35 files changed
+1035 -177

No files matched your search

+18 -18
View File
@@ -78,33 +78,33 @@ void ensure_filemanager_icons_loaded(DesktopState* ds) {
if (!ds || ds->icon_drive.pixels) return;
Color defColor = colors::ICON_COLOR;
ds->icon_drive = svg_load("0:/icons/drive-harddisk.svg", 16, 16, defColor);
ds->icon_drive_lg = svg_load("0:/icons/drive-harddisk.svg", 48, 48, defColor);
ds->icon_drive_usb = svg_load("0:/icons/drive-harddisk-usb.svg", 16, 16, defColor);
ds->icon_drive_usb_lg = svg_load("0:/icons/drive-harddisk-usb.svg", 48, 48, defColor);
ds->icon_home_folder = svg_load("0:/icons/folder-blue-home.svg", 16, 16, defColor);
ds->icon_home_folder_lg = svg_load("0:/icons/folder-blue-home.svg", 48, 48, defColor);
ds->icon_apps = svg_load("0:/icons/folder-blue-development.svg", 16, 16, defColor);
ds->icon_apps_lg = svg_load("0:/icons/folder-blue-development.svg", 48, 48, defColor);
ds->icon_drive = svg_load("0:/os/icons/drive-harddisk.svg", 16, 16, defColor);
ds->icon_drive_lg = svg_load("0:/os/icons/drive-harddisk.svg", 48, 48, defColor);
ds->icon_drive_usb = svg_load("0:/os/icons/drive-harddisk-usb.svg", 16, 16, defColor);
ds->icon_drive_usb_lg = svg_load("0:/os/icons/drive-harddisk-usb.svg", 48, 48, defColor);
ds->icon_home_folder = svg_load("0:/os/icons/folder-blue-home.svg", 16, 16, defColor);
ds->icon_home_folder_lg = svg_load("0:/os/icons/folder-blue-home.svg", 48, 48, defColor);
ds->icon_apps = svg_load("0:/os/icons/folder-blue-development.svg", 16, 16, defColor);
ds->icon_apps_lg = svg_load("0:/os/icons/folder-blue-development.svg", 48, 48, defColor);
ds->icon_system_configuration_menu =
svg_load("0:/icons/preferences-system.svg", 20, 20, defColor);
svg_load("0:/os/icons/preferences-system.svg", 20, 20, defColor);
ds->icon_system_configuration =
svg_load("0:/icons/preferences-system.svg", 16, 16, defColor);
svg_load("0:/os/icons/preferences-system.svg", 16, 16, defColor);
ds->icon_system_configuration_lg =
svg_load("0:/icons/preferences-system.svg", 48, 48, defColor);
svg_load("0:/os/icons/preferences-system.svg", 48, 48, defColor);
for (int sf = 0; sf < filemanager::SF_COUNT; sf++) {
char icon_path[128];
snprintf(icon_path, 128, "0:/icons/%s", filemanager::sf_icons[sf]);
snprintf(icon_path, 128, "0:/os/icons/%s", filemanager::sf_icons[sf]);
ds->icon_special_folder[sf] = svg_load(icon_path, 16, 16, defColor);
ds->icon_special_folder_lg[sf] = svg_load(icon_path, 48, 48, defColor);
}
ds->icon_delete = svg_load("0:/icons/trash-empty.svg", 16, 16, defColor);
ds->icon_copy = svg_load("0:/icons/edit-copy.svg", 16, 16, defColor);
ds->icon_cut = svg_load("0:/icons/edit-cut.svg", 16, 16, defColor);
ds->icon_paste = svg_load("0:/icons/edit-paste.svg", 16, 16, defColor);
ds->icon_rename = svg_load("0:/icons/edit-rename.svg", 16, 16, defColor);
ds->icon_folder_new = svg_load("0:/icons/folder-new.svg", 16, 16, defColor);
ds->icon_delete = svg_load("0:/os/icons/trash-empty.svg", 16, 16, defColor);
ds->icon_copy = svg_load("0:/os/icons/edit-copy.svg", 16, 16, defColor);
ds->icon_cut = svg_load("0:/os/icons/edit-cut.svg", 16, 16, defColor);
ds->icon_paste = svg_load("0:/os/icons/edit-paste.svg", 16, 16, defColor);
ds->icon_rename = svg_load("0:/os/icons/edit-rename.svg", 16, 16, defColor);
ds->icon_folder_new = svg_load("0:/os/icons/folder-new.svg", 16, 16, defColor);
}
void open_filemanager(DesktopState* ds) {
+3 -3
View File
@@ -63,7 +63,7 @@ static void battery_icon_path(const DesktopState* ds, char* out, int cap) {
const montauk::abi::BatteryInfo& b = ds->battery_info;
if (!b.present) {
montauk::strncpy(out, "0:/icons/battery-missing-symbolic.svg", cap);
montauk::strncpy(out, "0:/os/icons/battery-missing-symbolic.svg", cap);
return;
}
@@ -72,11 +72,11 @@ static void battery_icon_path(const DesktopState* ds, char* out, int cap) {
// A full battery on the charger gets the "charged" glyph; the pack has no
// 100% charging variant, and "charged" is what that state means anyway.
if (b.charging && bucket >= 100) {
montauk::strncpy(out, "0:/icons/battery-level-100-charged-symbolic.svg", cap);
montauk::strncpy(out, "0:/os/icons/battery-level-100-charged-symbolic.svg", cap);
return;
}
snprintf(out, cap, "0:/icons/battery-level-%d%s-symbolic.svg",
snprintf(out, cap, "0:/os/icons/battery-level-%d%s-symbolic.svg",
bucket, b.charging ? "-charging" : "");
}
+4 -4
View File
@@ -8,13 +8,13 @@
#include <montauk/user.h>
static const DesktopBuiltinEntry builtin_entries[] = {
{ DESKTOP_BUILTIN_FILES, "Files", 0, false, nullptr, "0:/icons/system-file-manager.svg" },
{ DESKTOP_BUILTIN_FILES, "Files", 0, false, nullptr, "0:/os/icons/system-file-manager.svg" },
{ DESKTOP_BUILTIN_DESKTOP_SETTINGS, "Desktop Settings", -1, false, "desktop-settings",
"0:/icons/preferences-desktop-apps.svg" },
"0:/os/icons/preferences-desktop-apps.svg" },
{ DESKTOP_BUILTIN_SYSTEM_CONFIGURATION, "Settings", -1, true, nullptr,
"0:/icons/preferences-system.svg" },
"0:/os/icons/preferences-system.svg" },
{ DESKTOP_BUILTIN_USER_MANAGEMENT, "User Management", -1, false, "user-management",
"0:/icons/user-home.svg" },
"0:/os/icons/user-home.svg" },
{ DESKTOP_BUILTIN_LOCK_SCREEN, "Lock Screen", -1, true, nullptr, nullptr },
{ DESKTOP_BUILTIN_LOG_OUT, "Log Out", -1, true, nullptr, nullptr },
{ DESKTOP_BUILTIN_SLEEP, "Sleep", -1, true, nullptr, nullptr },
+23 -23
View File
@@ -269,33 +269,33 @@ void gui::desktop_init(DesktopState* ds) {
// Load SVG icons — scalable (colorful) for app menu, symbolic for toolbar/panel
Color defColor = colors::ICON_COLOR;
ds->icon_terminal = svg_load("0:/icons/utilities-terminal.svg", 20, 20, defColor);
ds->icon_filemanager = svg_load("0:/icons/system-file-manager.svg", 20, 20, defColor);
ds->icon_appmenu = svg_load("0:/icons/view-app-grid-symbolic.svg", 20, 20, colors::PANEL_TEXT);
ds->icon_folder = svg_load("0:/icons/folder.svg", 16, 16, defColor);
ds->icon_file = svg_load("0:/icons/text-x-generic.svg", 16, 16, defColor);
ds->icon_network = svg_load("0:/icons/network-wired-symbolic.svg", 16, 16, colors::PANEL_TEXT);
ds->icon_wifi = svg_load("0:/icons/network-wireless-symbolic.svg", 16, 16, colors::PANEL_TEXT);
ds->icon_go_up = svg_load("0:/icons/go-up-symbolic.svg", 16, 16, defColor);
ds->icon_go_back = svg_load("0:/icons/go-previous-symbolic.svg", 16, 16, defColor);
ds->icon_go_forward = svg_load("0:/icons/go-next-symbolic.svg", 16, 16, defColor);
ds->icon_home = svg_load("0:/icons/user-home.svg", 16, 16, defColor);
ds->icon_refresh = svg_load("0:/icons/view-refresh-symbolic.svg", 16, 16, defColor);
ds->icon_exec = svg_load("0:/icons/utilities-terminal.svg", 16, 16, defColor);
ds->icon_terminal = svg_load("0:/os/icons/utilities-terminal.svg", 20, 20, defColor);
ds->icon_filemanager = svg_load("0:/os/icons/system-file-manager.svg", 20, 20, defColor);
ds->icon_appmenu = svg_load("0:/os/icons/view-app-grid-symbolic.svg", 20, 20, colors::PANEL_TEXT);
ds->icon_folder = svg_load("0:/os/icons/folder.svg", 16, 16, defColor);
ds->icon_file = svg_load("0:/os/icons/text-x-generic.svg", 16, 16, defColor);
ds->icon_network = svg_load("0:/os/icons/network-wired-symbolic.svg", 16, 16, colors::PANEL_TEXT);
ds->icon_wifi = svg_load("0:/os/icons/network-wireless-symbolic.svg", 16, 16, colors::PANEL_TEXT);
ds->icon_go_up = svg_load("0:/os/icons/go-up-symbolic.svg", 16, 16, defColor);
ds->icon_go_back = svg_load("0:/os/icons/go-previous-symbolic.svg", 16, 16, defColor);
ds->icon_go_forward = svg_load("0:/os/icons/go-next-symbolic.svg", 16, 16, defColor);
ds->icon_home = svg_load("0:/os/icons/user-home.svg", 16, 16, defColor);
ds->icon_refresh = svg_load("0:/os/icons/view-refresh-symbolic.svg", 16, 16, defColor);
ds->icon_exec = svg_load("0:/os/icons/utilities-terminal.svg", 16, 16, defColor);
ds->icon_folder_lg = svg_load("0:/icons/folder.svg", 48, 48, defColor);
ds->icon_file_lg = svg_load("0:/icons/text-x-generic.svg", 48, 48, defColor);
ds->icon_exec_lg = svg_load("0:/icons/utilities-terminal.svg", 48, 48, defColor);
ds->icon_folder_lg = svg_load("0:/os/icons/folder.svg", 48, 48, defColor);
ds->icon_file_lg = svg_load("0:/os/icons/text-x-generic.svg", 48, 48, defColor);
ds->icon_exec_lg = svg_load("0:/os/icons/utilities-terminal.svg", 48, 48, defColor);
// drive icons loaded lazily by file manager to reduce startup heap pressure
ds->icon_settings = svg_load("0:/icons/preferences-desktop-apps.svg", 20, 20, defColor);
ds->icon_reboot = svg_load("0:/icons/system-reboot.svg", 20, 20, defColor);
ds->icon_shutdown = svg_load("0:/icons/system-shutdown.svg", 20, 20, defColor);
ds->icon_sleep = svg_load("0:/icons/sleep.svg", 20, 20, defColor);
ds->icon_logout = svg_load("0:/icons/gnome-logout.svg", 20, 20, defColor);
ds->icon_settings = svg_load("0:/os/icons/preferences-desktop-apps.svg", 20, 20, defColor);
ds->icon_reboot = svg_load("0:/os/icons/system-reboot.svg", 20, 20, defColor);
ds->icon_shutdown = svg_load("0:/os/icons/system-shutdown.svg", 20, 20, defColor);
ds->icon_sleep = svg_load("0:/os/icons/sleep.svg", 20, 20, defColor);
ds->icon_logout = svg_load("0:/os/icons/gnome-logout.svg", 20, 20, defColor);
ds->icon_volume = svg_load("0:/icons/audio-volume-high-symbolic.svg", 16, 16, colors::PANEL_TEXT);
ds->icon_lock = svg_load("0:/icons/lock.svg", 20, 20, defColor);
ds->icon_volume = svg_load("0:/os/icons/audio-volume-high-symbolic.svg", 16, 16, colors::PANEL_TEXT);
ds->icon_lock = svg_load("0:/os/icons/lock.svg", 20, 20, defColor);
// Scan 0:/apps/ for external app manifests and build the menu
desktop_scan_apps(ds);