Merge branch 'feat/gui-desktop' into main

Bring the SUB-OS Graphical Desktop Environment (SUB-WM compositor, SUB-WT
widget toolkit, icon set, modal dialogs, terminal emulator and the desktop
apps) onto main alongside main's userland /sbin/init and framebuffer console.

Conflicts resolved:
- kernel/main.c: boot into gui_start_desktop() by default (unless nogui/text/
  emergency/single), then fall back through fbcon + /sbin/init + shell when the
  GUI session closes or a text console is requested. Splash raised by default
  unless a text console is asked for. Kept main's fbcon include and the
  weave_preempt_selftest path.
- Makefile: kept main's userland init compilation rules and kernel/elf.c,
  kernel/exec.c in CORE_SRCS; retained the feature branch's gui/ sources.
- README.md: kept main's Weave Scheduler section and adopted the feature
  branch's Boot Logo / Console Font / Framebuffer Console / GUI Desktop docs.

Verified: full x86_64 build links cleanly (kernel.elf + SUB-OS.img).

Co-Authored-By: Claude Opus 4.8 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Fh5z6V7nGPbHvqVG5p4CXX
This commit is contained in:
subhobhai943andClaude Opus 4.8 committed 2026-08-25 16:52:52 +05:30
commit 25c0519c25
28 files changed
+5345 -34

No files matched your search

+9
View File
@@ -50,6 +50,7 @@
#include <drivers/virtio_gpu.h>
#include <drivers/e1000e.h>
#include <drivers/virtio_input.h>
#include <gui/gui.h>
#include <arch/arch.h>
#include <kernel/printk.h>
#include <lib/string.h>
@@ -1033,6 +1034,11 @@ static int applet_e1000e(int argc, char** argv) {
return 0;
}
static int applet_startx(int argc, char** argv) {
(void)argc; (void)argv;
return gui_start_desktop();
}
static int applet_readelf(int argc, char** argv) {
if (argc >= 2) {
int fd = vfs_open(argv[1], 0);
@@ -2242,6 +2248,9 @@ static const lazybox_applet_t applets[] = {
{"cpufreq", applet_cpufreq, "cpufreq [-g governor]", "CPU frequency & P-State gov", "System"},
{"gpuinfo", applet_gpuinfo, "gpuinfo", "VirtIO-GPU hardware status", "Virtualization"},
{"e1000e", applet_e1000e, "e1000e", "Intel e1000e PCIe NIC stats", "Network"},
{"startx", applet_startx, "startx", "Start SUB-OS Desktop GUI", "Desktop"},
{"gui", applet_startx, "gui", "Start SUB-OS Desktop GUI", "Desktop"},
{"desktop", applet_startx, "desktop", "Start SUB-OS Desktop GUI", "Desktop"},
// Kernel Core Diagnostics
{"ktest", applet_ktest, "ktest [suite|-l]", "Run in-kernel self-test suites", "Kernel"},