Update build configs for KDE, Wayland, and Red Bear profiles

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
2026-04-18 17:58:27 +01:00
parent 670529ae81
commit ca32adf6ba
12 changed files with 193 additions and 102 deletions
+2 -3
View File
@@ -90,7 +90,6 @@ schemes = [
"pty",
"sudo",
"audio",
"orbital",
]
"""
@@ -211,13 +210,13 @@ path = "/ui"
data = "usr/share/ui"
symlink = true
## legacy orbital font directory
## legacy display font directory
[[files]]
path = "/usr/share/ui/fonts"
data = "/usr/share/fonts"
symlink = true
## legacy orbital icon directory
## legacy display icon directory
[[files]]
path = "/usr/share/ui/icons"
data = "/usr/share/icons"
+7 -7
View File
@@ -9,24 +9,24 @@ filesystem_size = 256
# Package settings
[packages]
orbdata = {}
orbital = {}
orbterm = {}
orbutils = {}
orbdata = "ignore"
orbital = "ignore"
orbterm = "ignore"
orbutils = "ignore"
[[files]]
path = "/usr/lib/init.d/20_orbital"
path = "/usr/lib/init.d/20_display"
data = """
requires_weak 10_net
notify audiod
nowait VT=3 orbital orblogin launcher
nowait VT=3 ion -c true
"""
# Override console config to not switch to VT 2
[[files]]
path = "/usr/lib/init.d/30_console"
data = """
requires_weak 20_orbital
requires_weak 20_display
nowait getty 2
nowait getty /scheme/debug/no-preserve -J
"""
+4 -4
View File
@@ -9,10 +9,10 @@ filesystem_size = 650
# Package settings
[packages]
cosmic-edit = {}
cosmic-files = {}
cosmic-icons = {}
cosmic-term = {}
cosmic-edit = "ignore"
cosmic-files = "ignore"
cosmic-icons = "ignore"
cosmic-term = "ignore"
dejavu = {}
ext4d = {}
freefont = {}
+11 -10
View File
@@ -1,8 +1,10 @@
# Red Bear OS Desktop Configuration
# Mainline Redox desktop + Red Bear branding + ext4 filesystem support
# Supplementary integration profile beneath the tracked KWin target
#
# Build: make all CONFIG_NAME=redbear-desktop
# Live: make live CONFIG_NAME=redbear-desktop
#
# This profile remains available for non-KDE-specific integration work.
include = ["desktop.toml", "redbear-legacy-base.toml", "redbear-legacy-desktop.toml", "redbear-device-services.toml", "redbear-netctl.toml"]
@@ -54,17 +56,16 @@ redbear-meta = {}
# ── Desktop services (replace legacy desktop-minimal init scripts) ───────────
[[files]]
path = "/usr/lib/init.d/20_orbital.service"
path = "/usr/lib/init.d/20_display.service"
data = """
[unit]
description = "Orbital display server"
description = "Display session service"
requires_weak = [
"10_net.target",
]
[service]
cmd = "orbital"
args = ["orblogin", "launcher"]
cmd = "ion"
args = ["-c", "true"]
envs = { VT = "3" }
type = "oneshot_async"
"""
@@ -75,7 +76,7 @@ data = """
[unit]
description = "Console terminals"
requires_weak = [
"20_orbital.service",
"20_display.service",
]
[service]
@@ -88,9 +89,9 @@ type = "oneshot_async"
path = "/usr/lib/init.d/29_activate_console.service"
data = """
[unit]
description = "Activate Orbital VT"
description = "Activate display VT"
requires_weak = [
"20_orbital.service",
"20_display.service",
]
[service]
@@ -105,7 +106,7 @@ data = """
[unit]
description = "Debug console"
requires_weak = [
"20_orbital.service",
"20_display.service",
]
[service]
+1
View File
@@ -4,6 +4,7 @@
[packages]
redbear-quirks = {}
pciids = {}
fatd = {}
[[files]]
+11 -11
View File
@@ -3,7 +3,7 @@
# Build: make all CONFIG_NAME=redbear-full
# Live: make live CONFIG_NAME=redbear-full
#
# This is not the forward compositor/session target; it remains a broader integration slice.
# This remains a broader integration slice for desktop/session plumbing.
# GPU driver stack ships through redbear-meta for this profile.
# redox-drm now carries the runtime/package dependency on the AMD backend library.
# KDE Frameworks + KWin: depend on qtdeclarative/qtwayland. Re-enable when ported.
@@ -97,19 +97,18 @@ mode = 0o755
# ── Desktop services (not provided by base package) ────────────────
# Orbital display server + login + launcher
# desktop-minimal.toml had "nowait VT=3 orbital orblogin launcher"
# Display-session placeholder for the supplementary integration slice
[[files]]
path = "/usr/lib/init.d/20_orbital.service"
path = "/usr/lib/init.d/20_display.service"
data = """
[unit]
description = "Orbital display server"
description = "Display session service"
requires_weak = [
]
[service]
cmd = "orbital"
args = ["orblogin", "launcher"]
cmd = "ion"
args = ["-c", "true"]
envs = { VT = "3" }
type = "oneshot_async"
"""
@@ -122,7 +121,7 @@ data = """
[unit]
description = "Console terminals"
requires_weak = [
"20_orbital.service",
"20_display.service",
]
[service]
@@ -135,9 +134,9 @@ type = "oneshot_async"
path = "/usr/lib/init.d/29_activate_console.service"
data = """
[unit]
description = "Activate Orbital VT"
description = "Activate display VT"
requires_weak = [
"20_orbital.service",
"20_display.service",
]
[service]
@@ -152,7 +151,7 @@ data = """
[unit]
description = "Debug console"
requires_weak = [
"20_orbital.service",
"20_display.service",
]
[service]
@@ -193,6 +192,7 @@ args = [
type = "oneshot_async"
"""
[[files]]
path = "/usr/lib/init.d/13_redbear-sessiond.service"
data = """
+20 -11
View File
@@ -3,9 +3,9 @@
# Live: make live CONFIG_NAME=redbear-kde
#
# Intended desktop direction: KWin Wayland session on Red Bear OS
# Tracked default desktop target for Red Bear OS
# Current state: KWin + KF6 + Qt6 + Mesa + D-Bus + seatd
# Not yet the shipped default: runtime compositor/session proof is still required
# X is compatibility-only and not a peer desktop architecture
# Runtime compositor/session proof is still required for broader support claims
# Future: add plasma-workspace, plasma-desktop when their deps are resolved
include = ["desktop.toml", "redbear-legacy-base.toml", "redbear-legacy-desktop.toml", "redbear-device-services.toml", "redbear-netctl.toml"]
@@ -24,6 +24,16 @@ shell = "/usr/bin/ion"
# Red Bear OS branding
redbear-release = {}
# Exclude inherited legacy desktop packages from the tracked KWin target
orbdata = "ignore"
orbital = "ignore"
orbterm = "ignore"
orbutils = "ignore"
cosmic-edit = "ignore"
cosmic-files = "ignore"
cosmic-icons = "ignore"
cosmic-term = "ignore"
# ext4 filesystem support
ext4d = {}
@@ -233,10 +243,10 @@ type = "oneshot_async"
"""
[[files]]
path = "/usr/lib/init.d/20_orbital.service"
path = "/usr/lib/init.d/20_display.service"
data = """
[unit]
description = "Orbital display server (KDE session)"
description = "Display session service (KDE session)"
requires_weak = [
"12_dbus.service",
"13_redbear-sessiond.service",
@@ -244,8 +254,7 @@ requires_weak = [
]
[service]
cmd = "orbital"
args = ["orblogin", "orbital-kde"]
cmd = "/usr/bin/redbear-kde-session"
envs = { VT = "3" }
type = "oneshot_async"
"""
@@ -256,7 +265,7 @@ data = """
[unit]
description = "Console terminals"
requires_weak = [
"20_orbital.service",
"20_display.service",
]
[service]
@@ -269,9 +278,9 @@ type = "oneshot_async"
path = "/usr/lib/init.d/29_activate_console.service"
data = """
[unit]
description = "Activate Orbital VT"
description = "Activate display VT"
requires_weak = [
"20_orbital.service",
"20_display.service",
]
[service]
@@ -286,7 +295,7 @@ data = """
[unit]
description = "Debug console"
requires_weak = [
"20_orbital.service",
"20_display.service",
]
[service]
@@ -297,7 +306,7 @@ type = "oneshot_async"
# KDE session launcher
[[files]]
path = "/usr/bin/orbital-kde"
path = "/usr/bin/redbear-kde-session"
mode = 0o755
data = """
#!/usr/bin/sh
+1 -1
View File
@@ -1,7 +1,7 @@
# Red Bear OS overrides for broken legacy desktop init scripts.
[[files]]
path = "/usr/lib/init.d/20_orbital"
path = "/usr/lib/init.d/20_display"
data = ""
[[files]]
+3 -6
View File
@@ -1,18 +1,15 @@
# Red Bear OS Live Configuration
# Live ISO variant — boots into Red Bear OS Desktop from USB/DVD
# Live ISO variant — follows the tracked KDE desktop target
#
# Build: make live CONFIG_NAME=redbear-live
include = ["redbear-desktop.toml"]
include = ["redbear-kde.toml"]
[general]
# Keep the live installer image reasonably sized
filesystem_size = 3072
[packages]
# Keep the live installer image compact for now.
redbear-firmware = "ignore"
# Keep these explicit for the live profile even though cub is inherited via redbear-desktop.
# Keep these explicit for the live profile even though cub is inherited via redbear-kde.
cub = {}
redbear-meta = {}
+2 -3
View File
@@ -5,9 +5,8 @@
# Phase 2 Wayland validation: ./local/scripts/test-phase4-wayland-qemu.sh
#
# Validation-only profile:
# - smallvil remains the bounded compositor/runtime harness
# - this profile is not the primary desktop path
# - the primary desktop path is redbear-kde -> kwin_wayland
# - the packaged compositor/runtime harness remains bounded
# - this profile remains the bounded validation slice beneath redbear-kde -> kwin_wayland
include = ["wayland.toml"]
+125 -43
View File
@@ -1,4 +1,6 @@
# Wayland configuration
# Wayland validation-only configuration
# This is the bounded compositor validation slice.
include = ["desktop.toml", "redbear-legacy-base.toml", "redbear-legacy-desktop.toml", "redbear-device-services.toml", "redbear-netctl.toml"]
@@ -15,27 +17,93 @@ redbear-release = {}
redbear-hwutils = {}
redbear-info = {}
redbear-netctl = {}
dbus = {}
redbear-sessiond = {}
redbear-dbus-services = {}
firmware-loader = {}
evdevd = {}
udev-shim = {}
seatd = {}
mesa = {}
"pop-icon-theme.cursors" = {}
smallvil = {}
kwin = {}
xkeyboard-config = {}
# Replace the legacy desktop-minimal init script with an explicit service unit.
[[files]]
path = "/usr/lib/init.d/20_orbital.service"
path = "/usr/lib/init.d/12_dbus.service"
data = """
[unit]
description = "Orbital display server (Wayland session)"
description = "D-Bus system bus"
requires_weak = [
"10_net.target",
"00_base.target",
]
[service]
cmd = "orbital"
args = ["orbital-wayland"]
cmd = "ion"
args = [
"-c",
"mkdir -p /var/lib/dbus /run/dbus; rm -f /run/dbus/pid; dbus-uuidgen --ensure; dbus-daemon --system",
]
type = "oneshot_async"
"""
[[files]]
path = "/var/lib/dbus"
data = ""
directory = true
mode = 0o755
[[files]]
path = "/run/dbus"
data = ""
directory = true
mode = 0o755
[[files]]
path = "/usr/lib/init.d/13_seatd.service"
data = """
[unit]
description = "seatd seat management daemon"
requires_weak = [
"12_dbus.service",
"13_redbear-sessiond.service",
]
[service]
cmd = "seatd"
args = ["-l", "info"]
type = "oneshot_async"
"""
[[files]]
path = "/usr/lib/init.d/13_redbear-sessiond.service"
data = """
[unit]
description = "Red Bear session broker (org.freedesktop.login1)"
requires_weak = [
"12_dbus.service",
]
[service]
cmd = "ion"
args = [
"-c",
"redbear-sessiond",
]
type = "oneshot_async"
"""
# Replace the legacy desktop-minimal init script with an explicit service unit.
[[files]]
path = "/usr/lib/init.d/20_display.service"
data = """
[unit]
description = "Display session service (Wayland validation)"
requires_weak = [
]
[service]
cmd = "/usr/bin/redbear-validation-session"
envs = { BROWSER = "/bin/netsurf-fb", VT = "3" }
type = "oneshot_async"
"""
@@ -46,7 +114,7 @@ data = """
[unit]
description = "Console terminals"
requires_weak = [
"20_orbital.service",
"20_display.service",
]
[service]
@@ -59,9 +127,9 @@ type = "oneshot_async"
path = "/usr/lib/init.d/29_activate_console.service"
data = """
[unit]
description = "Activate Orbital VT"
description = "Activate display VT"
requires_weak = [
"20_orbital.service",
"20_display.service",
]
[service]
@@ -76,7 +144,7 @@ data = """
[unit]
description = "Debug console"
requires_weak = [
"20_orbital.service",
"20_display.service",
]
[service]
@@ -86,15 +154,16 @@ type = "oneshot_async"
"""
[[files]]
path = "/usr/bin/orbital-wayland"
path = "/usr/bin/redbear-validation-session"
mode = 0o755
data = """
#!/usr/bin/env ion
#!/usr/bin/env sh
# Prepare environment
export DISPLAY=""
export COSMIC_BACKEND=winit
export HOME=/root
export WAYLAND_DISPLAY="${WAYLAND_DISPLAY:-wayland-0}"
export XDG_SESSION_TYPE=wayland
export LIBSEAT_BACKEND=seatd
export SEATD_SOCK=/run/seatd.sock
export QT_PLUGIN_PATH=/usr/plugins
export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/plugins/platforms
export QML2_IMPORT_PATH=/usr/qml
@@ -102,21 +171,34 @@ export RUST_BACKTRACE=full
export RUST_LOG=debug
export XCURSOR_THEME=Pop
export XKB_CONFIG_ROOT=/usr/share/X11/xkb
export XDG_RUNTIME_DIR=/tmp/run/user/0
# Create XDG runtime directory
#TODO: mkdir -p not working
mkdir -p /tmp/run
mkdir -p /tmp/run/user
mkdir -p /tmp/run/user/0
if [ -z "${XDG_RUNTIME_DIR:-}" ]; then
export XDG_RUNTIME_DIR="/tmp/run/user/$(id -u)"
fi
# Compile glib schemas when available
if test -d /usr/share/glib-2.0/schemas
mkdir -p "$XDG_RUNTIME_DIR"
if [ -z "${DBUS_SESSION_BUS_ADDRESS:-}" ]; then
eval "$(dbus-launch --sh-syntax)"
fi
dbus-update-activation-environment \
DBUS_SESSION_BUS_ADDRESS \
DBUS_SESSION_BUS_PID \
WAYLAND_DISPLAY \
XDG_SESSION_TYPE \
XDG_RUNTIME_DIR \
DISPLAY \
HOME \
USER
if [ -d /usr/share/glib-2.0/schemas ]; then
glib-compile-schemas /usr/share/glib-2.0/schemas/
end
fi
# Default to the smaller Smithay path first.
smallvil -c /usr/bin/wayland-session
kwin_wayland --replace &
sleep 2
exec /usr/bin/wayland-session
"""
[[files]]
@@ -127,26 +209,26 @@ data = """
# env G_MAIN_POLL_DEBUG=1 G_MESSAGES_DEBUG=all LD_DEBUG=all WEBKIT_DEBUG=all MiniBrowser&
printenv
let session_started = "/home/root/.wayland-session.started"
let session_started = "$HOME/.wayland-session.started"
rm -f $session_started
echo "started" > $session_started
export QT_PLUGIN_PATH=/usr/plugins
export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/plugins/platforms
export QML2_IMPORT_PATH=/usr/qml
let smoke_ok = "/home/root/.qt6-wayland-smoke.ok"
let smoke_err = "/home/root/.qt6-wayland-smoke.err"
let smoke_log = "/home/root/.qt6-wayland-smoke.log"
let bootstrap_ok = "/home/root/.qt6-bootstrap-minimal.ok"
let bootstrap_log = "/home/root/.qt6-bootstrap-minimal.log"
let plugin_ok = "/home/root/.qt6-plugin-minimal.ok"
let plugin_err = "/home/root/.qt6-plugin-minimal.err"
let plugin_log = "/home/root/.qt6-plugin-minimal.log"
let smoke_minimal_ok = "/home/root/.qt6-wayland-smoke-minimal.ok"
let smoke_offscreen_ok = "/home/root/.qt6-wayland-smoke-offscreen.ok"
let smoke_wayland_ok = "/home/root/.qt6-wayland-smoke-wayland.ok"
let smoke_minimal_log = "/home/root/.qt6-wayland-smoke-minimal.log"
let smoke_offscreen_log = "/home/root/.qt6-wayland-smoke-offscreen.log"
let smoke_wayland_log = "/home/root/.qt6-wayland-smoke-wayland.log"
let smoke_ok = "$HOME/.qt6-wayland-smoke.ok"
let smoke_err = "$HOME/.qt6-wayland-smoke.err"
let smoke_log = "$HOME/.qt6-wayland-smoke.log"
let bootstrap_ok = "$HOME/.qt6-bootstrap-minimal.ok"
let bootstrap_log = "$HOME/.qt6-bootstrap-minimal.log"
let plugin_ok = "$HOME/.qt6-plugin-minimal.ok"
let plugin_err = "$HOME/.qt6-plugin-minimal.err"
let plugin_log = "$HOME/.qt6-plugin-minimal.log"
let smoke_minimal_ok = "$HOME/.qt6-wayland-smoke-minimal.ok"
let smoke_offscreen_ok = "$HOME/.qt6-wayland-smoke-offscreen.ok"
let smoke_wayland_ok = "$HOME/.qt6-wayland-smoke-wayland.ok"
let smoke_minimal_log = "$HOME/.qt6-wayland-smoke-minimal.log"
let smoke_offscreen_log = "$HOME/.qt6-wayland-smoke-offscreen.log"
let smoke_wayland_log = "$HOME/.qt6-wayland-smoke-wayland.log"
rm -f $smoke_ok $smoke_err
rm -f $smoke_log
rm -f $bootstrap_ok $bootstrap_log
+5 -2
View File
@@ -1,4 +1,8 @@
# X11 configuration
# X11 compatibility-only configuration
# This profile is not a primary desktop path.
# Red Bear OS treats KWin Wayland as the production compositor/session path.
# X exists only for compatibility and legacy app/runtime surfaces.
include = ["desktop.toml"]
@@ -158,4 +162,3 @@ gid = 100
name = "messagebus"
home = "/nonexistent"
shell = "/usr/bin/false"