# Red Bear OS Full Configuration # Desktop/graphics ISO for bare metal and QEMU. # # Build: make live CONFIG_NAME=redbear-full # QEMU: make all CONFIG_NAME=redbear-full && make qemu # # Extends redbear-mini with the full desktop/graphics stack: # Wayland, Qt6, KF6, KWin, Mesa, DRM drivers, firmware, greeter. include = ["redbear-mini.toml"] [general] filesystem_size = 4096 # Package groups — meta-package definitions for logical grouping of the # desktop stack. Reference a group in [packages] with `group-name = {}` # to include all its packages. Groups can reference other groups. # The installer resolves all group references before building/installing. [package_groups.graphics-core] description = "Core graphics stack (DRM, Mesa, Wayland compositor)" packages = ["redox-drm", "mesa", "libdrm", "libwayland", "wayland-protocols", "redbear-compositor"] [package_groups.input-stack] description = "Input device support (evdev, libinput, keymaps, IME, accessibility)" packages = ["libevdev", "libinput", "redbear-keymapd", "redbear-ime", "redbear-accessibility"] [package_groups.dbus-services] description = "D-Bus system bus and session broker" packages = ["expat", "dbus"] [package_groups.firmware-stack] description = "Firmware loading infrastructure" packages = ["redbear-firmware", "firmware-loader"] [package_groups.qt6-core] description = "Qt 6 core modules" packages = ["qtbase", "qtdeclarative", "qtsvg"] [package_groups.qt6-extras] description = "Qt 6 additional modules (Wayland, sensors)" packages = ["qtwayland", "qt6-wayland-smoke", "qt6-sensors"] [package_groups.kf6-frameworks] description = "KDE Frameworks 6 (all 38 frameworks)" packages = [ "kf6-attica", "kf6-karchive", "kf6-kauth", "kf6-kbookmarks", "kf6-kcmutils", "kf6-kcodecs", "kf6-kcolorscheme", "kf6-kcompletion", "kf6-kconfig", "kf6-kconfigwidgets", "kf6-kcoreaddons", "kf6-kcrash", "kf6-kdbusaddons", "kf6-kdeclarative", "kf6-kded6", "kf6-kguiaddons", "kf6-ki18n", "kf6-kiconthemes", "kf6-kidletime", "kf6-kitemmodels", "kf6-kitemviews", "kf6-kjobwidgets", "kf6-knotifications", "kf6-kpackage", "kf6-kservice", "kf6-ktextwidgets", "kf6-kwayland", "kf6-kwidgetsaddons", "kf6-kxmlgui", "kf6-prison", "kf6-solid", "kf6-sonnet", "kf6-knewstuff", "kf6-kwallet", "kf6-kglobalaccel", "kf6-pty", "kf6-notifyconfig", "kf6-parts", "kf6-kio", ] [package_groups.desktop-session] description = "Display manager, greeter, auth, and session bootstrap" packages = [ "kwin", "kdecoration", "sddm", "redbear-authd", "redbear-session-launch", "seatd", "redbear-greeter", "pam-redbear", ] [package_groups.kde-desktop] description = "Complete KDE Plasma desktop stack (all groups combined)" packages = [ "graphics-core", "input-stack", "dbus-services", "firmware-stack", "qt6-core", "qt6-extras", "kf6-frameworks", "desktop-session", "icu", "konsole", "kglobalacceld", "amdgpu", ] [users.messagebus] uid = 100 gid = 100 name = "messagebus" home = "/nonexistent" shell = "/usr/bin/zsh" [users.root] password = "password" uid = 0 gid = 0 shell = "/usr/bin/zsh" [packages] # Twilight Commander — pure-Rust TUI file manager tlc = {} # Runtime driver parameter control surface. driver-params = {} # D-Bus IPC (required by greeter/session services) expat = {} dbus = {} # Firmware loading redbear-firmware = {} firmware-loader = {} # NUMA topology discovery (userspace daemon) numad = {} # GPU/graphics stack redox-drm = {} mesa = {} libdrm = {} # X11 protocol headers (needed by libxau, libxkbcommon, etc.) x11proto = {} libxkbcommon = "ignore" xkeyboard-config = "ignore" libwayland = {} wayland-protocols = {} redbear-compositor = {} # Keyboard/input # libxkbcommon = {} # build needed # xkeyboard-config = {} # build needed libevdev = {} libinput = {} redbear-keymapd = {} redbear-ime = {} redbear-accessibility = {} # Qt6 stack qtbase = {} qtdeclarative = {} qtsvg = {} qtwayland = {} qt6-wayland-smoke = {} qt6-sensors = {} # KF6 Frameworks — explicit real-build surface in alphabetical order # kirigami: blocked (Qt6 Wayland null+8 crash — NOT QML gate; headers/libs DO exist) kf6-kio = {} # kde-cli-tools = {} # blocked: direct repo cook fails kdecoration = {} kf6-attica = {} kf6-karchive = {} kf6-kauth = {} kf6-kbookmarks = {} kf6-kcmutils = {} kf6-kcodecs = {} kf6-kcolorscheme = {} kf6-kcompletion = {} kf6-kconfig = {} kf6-kconfigwidgets = {} kf6-kcoreaddons = {} kf6-kcrash = {} kf6-kdbusaddons = {} kf6-kdeclarative = {} kf6-kded6 = {} kf6-kguiaddons = {} kf6-ki18n = {} kf6-kiconthemes = {} kf6-kidletime = {} kf6-kitemmodels = {} kf6-kitemviews = {} kf6-kjobwidgets = {} kf6-knotifications = {} kf6-kpackage = {} kf6-kservice = {} kf6-ktextwidgets = {} kf6-kwayland = {} kf6-kwidgetsaddons = {} kf6-kxmlgui = {} kf6-prison = {} kf6-solid = {} kf6-sonnet = {} kf6-knewstuff = {} kf6-kwallet = {} kf6-kglobalaccel = {} kf6-pty = {} kf6-notifyconfig = {} kf6-parts = {} icu = {} konsole = {} kglobalacceld = {} # KWin — real cmake build. null+8 crash verified FIXED (qtwaylandscanner null guards, # commits de2d74c37e + 882c2974ec). Still gated on qtdeclarative cross-target cmake # (host tool Qt6::qmlprofiler is intentionally not built — see qtdeclarative recipe). kwin = {} # Plasma packages — still commented out; need kirigami (QML) + plasma-workspace to build # before they can be enabled. See local/docs/CONSOLE-TO-KDE-DESKTOP-PLAN.md. # plasma-framework = {} # plasma-workspace = {} # plasma-desktop = {} redbear-authd = {} redbear-session-launch = {} seatd = {} redbear-greeter = {} pam-redbear = {} sddm = {} amdgpu = {} # Core Red Bear umbrella package redbear-meta = {} redbear-power = {} # Phase 1 runtime validation tests (POSIX: signalfd, timerfd, eventfd, shm_open, sem_open, waitid) # relibc-phase1-tests = {} # Disabled: linker errors with relibc, not critical for ISO # Native build toolchain (Phase 3: GCC + binutils running on redox) # Produces gcc/g++/as/ld that execute inside Red Bear OS gcc-native = "ignore" binutils-native = {} # llvm-native = {} # suppressed: Redox C++/pthread header gaps; not needed for greeter proof # rust-native = {} # suppressed: depends on llvm-native; not needed for greeter proof # Desktop fonts and icons dejavu = {} freefont = {} hicolor-icon-theme = {} pop-icon-theme = {} # Suppress legacy desktop packages orbdata = "ignore" orbital = "ignore" orbterm = "ignore" orbutils = "ignore" cosmic-edit = "ignore" cosmic-files = "ignore" cosmic-icons = "ignore" cosmic-term = "ignore" curl = "ignore" git = "ignore" #mc = {} #curl = "ignore" # suppressed: cascade rebuild #git = "ignore" # suppressed: cascade rebuild #konsole = {} # WIP: recipe exists, not yet built — blocked by libiconv fetch #kf6-pty = {} # WIP: recipe exists, not yet built [[files]] path = "/lib/firmware/amdgpu" data = "" directory = true mode = 0o755 [[files]] path = "/usr/lib/fonts" data = "/usr/share/fonts" symlink = true [[files]] path = "/etc/init.d/05_boot-essential.target" data = """ [unit] description = "Boot essential services target" requires_weak = [ "00_base.target", ] """ [[files]] path = "/etc/init.d/13_iommu.service" data = """ [unit] description = "IOMMU DMA remapping daemon" requires_weak = [ "12_boot-late.target", "00_pcid-spawner.service", ] [service] cmd = "/usr/bin/iommu" type = "oneshot_async" """ [[files]] path = "/etc/init.d/12_dbus.service" data = """ [unit] description = "D-Bus system bus" requires_weak = [ "12_boot-late.target", "00_ipcd.service", ] [service] cmd = "/usr/bin/dbus-daemon" args = ["--system", "--nopidfile", "--address=unix:path=/run/dbus/system_bus_socket"] type = "oneshot_async" """ [[files]] path = "/etc/init.d/13_redbear-sessiond.service" data = """ [unit] description = "Red Bear session broker (org.freedesktop.login1)" requires_weak = [ "12_dbus.service", ] [service] cmd = "/usr/bin/redbear-sessiond" type = "oneshot_async" """ [[files]] path = "/etc/init.d/13_seatd.service" data = """ [unit] description = "seatd seat management daemon" requires_weak = [ "12_dbus.service", "13_redbear-sessiond.service", ] [service] cmd = "/usr/bin/seatd" args = ["-l", "info"] type = "oneshot_async" """ [[files]] path = "/etc/keymaps/.gitkeep" data = "" [[files]] path = "/etc/init.d/13_redbear-keymapd.service" data = """ [unit] description = "Runtime keymap daemon" requires_weak = [ "10_evdevd.service", ] [service] cmd = "/usr/bin/redbear-keymapd" type = "oneshot_async" """ [[files]] path = "/etc/init.d/13_redbear-ime.service" data = """ [unit] description = "Input method engine daemon" requires_weak = [ "10_evdevd.service", ] [service] cmd = "redbear-ime" type = "oneshot_async" """ [[files]] path = "/etc/init.d/13_redbear-accessibility.service" data = """ [unit] description = "Accessibility input filter daemon (sticky/slow/bounce keys)" requires_weak = [ "10_evdevd.service", ] [service] cmd = "redbear-accessibility" type = "oneshot_async" """ [[files]] path = "/etc/init.d/14_redbear-upower.service" data = """ [unit] description = "UPower D-Bus service (org.freedesktop.UPower)" requires_weak = [ "12_dbus.service", ] [service] cmd = "redbear-upower" type = "oneshot_async" """ [[files]] path = "/etc/init.d/14_redbear-udisks.service" data = """ [unit] description = "UDisks2 D-Bus service (org.freedesktop.UDisks2)" requires_weak = [ "12_dbus.service", ] [service] cmd = "redbear-udisks" type = "oneshot_async" """ [[files]] path = "/etc/init.d/14_redbear-polkit.service" data = """ [unit] description = "PolicyKit1 D-Bus service (org.freedesktop.PolicyKit1)" requires_weak = [ "12_dbus.service", ] [service] cmd = "redbear-polkit" type = "oneshot_async" """ [[files]] path = "/etc/init.d/19_redbear-authd.service" data = """ [unit] description = "Red Bear authentication daemon" requires_weak = [ "12_dbus.service", ] [service] cmd = "/usr/bin/redbear-authd" envs = { QT_PLUGIN_PATH = "/usr/plugins", QT_QPA_PLATFORM_PLUGIN_PATH = "/usr/plugins/platforms", QML2_IMPORT_PATH = "/usr/qml", XCURSOR_THEME = "Pop", XKB_CONFIG_ROOT = "/usr/share/X11/xkb", KWIN_DRM_DEVICES = "/scheme/drm/card0" } type = "oneshot_async" """ [[files]] path = "/etc/init.d/20_display.service" data = """ [unit] description = "KDE session assembly helper" requires_weak = [ "12_dbus.service", "13_redbear-sessiond.service", "13_seatd.service", "19_redbear-authd.service", ] [service] cmd = "/usr/bin/redbear-session-launch" args = ["--username", "root", "--mode", "session", "--session", "kde-wayland", "--vt", "4", "--runtime-dir", "/tmp/run/redbear-display-session", "--wayland-display", "wayland-display"] envs = { QT_PLUGIN_PATH = "/usr/plugins", QT_QPA_PLATFORM_PLUGIN_PATH = "/usr/plugins/platforms", QML2_IMPORT_PATH = "/usr/qml", XCURSOR_THEME = "Pop", XKB_CONFIG_ROOT = "/usr/share/X11/xkb", REDBEAR_KDE_SESSION_BACKEND = "virtual", REDBEAR_KDE_SESSION_STATE_DIR = "/run/redbear-display-session" } type = "oneshot_async" """ [[files]] path = "/etc/init.d/20_greeter.service" data = """ [unit] description = "Red Bear greeter service" requires_weak = [ "00_pcid-spawner.service", "12_dbus.service", "13_redbear-sessiond.service", "13_seatd.service", "19_redbear-authd.service", ] [service] cmd = "/usr/bin/redbear-greeterd" envs = { VT = "3", REDBEAR_GREETER_USER = "greeter", KWIN_DRM_DEVICES = "/scheme/drm/card0", REDBEAR_DRM_WAIT_SECONDS = "30", REDBEAR_GREETER_RUNTIME_DIR = "/tmp/run/redbear-greeter" } type = "oneshot_async" """ [[files]] path = "/etc/login.defs" data = """ UID_MIN 0 UID_MAX 65535 GID_MIN 0 GID_MAX 65535 SYS_UID_MIN 0 SYS_UID_MAX 999 SYS_GID_MIN 0 SYS_GID_MAX 999 """ [[files]] path = "/etc/sddm.conf" data = """ [Theme] Current=maya [Users] MinimumUid=0 MaximumUid=65535 [Wayland] CompositorCommand=/usr/bin/redbear-compositor SessionDir=/usr/share/wayland-sessions [Autologin] User= Session= """ [[files]] path = "/etc/init.d/21_sddm.service" data = """ [unit] description = "SDDM display manager (Wayland)" requires_weak = [ "00_pcid-spawner.service", "12_dbus.service", "13_redbear-sessiond.service", "13_seatd.service", "19_redbear-authd.service", ] [service] cmd = "/usr/bin/sddm" args = ["--no-daemon"] envs = { QT_PLUGIN_PATH = "/usr/plugins", QT_QPA_PLATFORM_PLUGIN_PATH = "/usr/plugins/platforms", QML2_IMPORT_PATH = "/usr/qml", XCURSOR_THEME = "Pop", XKB_CONFIG_ROOT = "/usr/share/X11/xkb", KWIN_DRM_DEVICES = "/scheme/drm/card0", DISPLAY = ":0", WAYLAND_DISPLAY = "wayland-0", XDG_RUNTIME_DIR = "/tmp/run/redbear-greeter", XDG_SESSION_TYPE = "wayland", REDBEAR_DRM_WAIT_SECONDS = "30" } type = "oneshot_async" """ [[files]] path = "/etc/init.d/29_activate_console.service" data = """ [unit] description = "Activate fallback console VT" requires_weak = [ "05_boot-essential.target", ] [service] cmd = "inputd" args = ["-A", "2"] type = "oneshot_async" """ [[files]] path = "/etc/init.d/30_console.service" data = """ [unit] description = "Console terminals" requires_weak = [ "29_activate_console.service", ] [service] cmd = "getty" args = ["2"] type = "oneshot_async" """ [[files]] path = "/etc/init.d/31_debug_console.service" data = """ [unit] description = "Debug console on serial port" requires_weak = [ "29_activate_console.service", ] [service] cmd = "getty" args = ["/scheme/debug/no-preserve", "-J"] type = "oneshot_async" """ [[files]] path = "/etc/init.d/99_diag_serial.service" data = """ [unit] description = "Serial diagnostic marker" requires_weak = [ "31_debug_console.service", "30_console.service", "12_dbus.service", ] [service] cmd = "zsh" args = ["-c", "echo BOOT_COMPLETE_SERIAL_MARKER"] type = "oneshot" """ [users.greeter] password = "" uid = 101 gid = 101 name = "greeter" home = "/nonexistent" shell = "/usr/bin/zsh" [groups.greeter] gid = 101 members = ["greeter"] [groups.messagebus] gid = 100 members = ["messagebus"] [[files]] path = "/etc/pcid.d/ihdgd.toml" data = """ [[drivers]] name = "Intel GPU (VGA compatible)" class = 0x03 vendor = 0x8086 subclass = 0x00 command = ["redox-drm"] [[drivers]] name = "Intel GPU (3D controller)" class = 0x03 vendor = 0x8086 subclass = 0x02 command = ["redox-drm"] """ [[files]] path = "/etc/pcid.d/virtio-gpud.toml" data = """ [[drivers]] name = "VirtIO GPU" class = 0x03 vendor = 0x1af4 device = 0x1050 command = ["/usr/bin/redox-drm"] """ [[files]] path = "/etc/environment.d/90-dbus.conf" data = """ DBUS_SYSTEM_BUS_ADDRESS=unix:path=/run/dbus/system_bus_socket """