341 lines
6.2 KiB
TOML
341 lines
6.2 KiB
TOML
# Red Bear OS Target Wayland Desktop Configuration
|
||
# Build: make all CONFIG_NAME=redbear-kde
|
||
# Live: make live CONFIG_NAME=redbear-kde
|
||
#
|
||
# Intended desktop direction: KWin Wayland session on 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
|
||
# 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"]
|
||
|
||
[general]
|
||
filesystem_size = 4096
|
||
|
||
[users.messagebus]
|
||
uid = 100
|
||
gid = 100
|
||
name = "messagebus"
|
||
home = "/nonexistent"
|
||
shell = "/usr/bin/ion"
|
||
|
||
[packages]
|
||
# Red Bear OS branding
|
||
redbear-release = {}
|
||
|
||
# ext4 filesystem support
|
||
ext4d = {}
|
||
|
||
# Firmware loading + Wi-Fi control plane
|
||
redbear-firmware = {}
|
||
firmware-loader = {}
|
||
redbear-wifictl = {}
|
||
|
||
# Input layer
|
||
evdevd = {}
|
||
udev-shim = {}
|
||
|
||
# D-Bus (session + system bus)
|
||
dbus = {}
|
||
redbear-sessiond = {}
|
||
redbear-dbus-services = {}
|
||
redbear-notifications = {}
|
||
redbear-upower = {}
|
||
redbear-udisks = {}
|
||
redbear-polkit = {}
|
||
|
||
# Diagnostic/runtime tooling
|
||
redbear-info = {}
|
||
redbear-hwutils = {}
|
||
redbear-netctl = {}
|
||
redbear-netctl-console = {}
|
||
redbear-netstat = {}
|
||
redbear-traceroute = {}
|
||
redbear-mtr = {}
|
||
redbear-nmap = {}
|
||
|
||
# Wayland protocol
|
||
libwayland = {}
|
||
wayland-protocols = {}
|
||
|
||
# Input
|
||
libxkbcommon = {}
|
||
libevdev = {}
|
||
libinput = {}
|
||
|
||
# Seat management
|
||
seatd = {}
|
||
|
||
# Qt6 stack
|
||
qtbase = {}
|
||
qtdeclarative = {}
|
||
qtsvg = {}
|
||
qtwayland = {}
|
||
|
||
# KF6 Frameworks — Tier 1 (no special deps)
|
||
kf6-extra-cmake-modules = {}
|
||
kf6-kcoreaddons = {}
|
||
kf6-kconfig = {}
|
||
kf6-ki18n = {}
|
||
kf6-kcolorscheme = {}
|
||
kf6-kauth = {}
|
||
|
||
# KF6 Frameworks — KWin session-surface chain
|
||
kf6-kwindowsystem = {}
|
||
kf6-knotifications = {}
|
||
kf6-kconfigwidgets = {}
|
||
kf6-kcrash = {}
|
||
kf6-kdbusaddons = {}
|
||
kf6-kglobalaccel = {}
|
||
kf6-kservice = {}
|
||
kf6-kpackage = {}
|
||
kf6-kiconthemes = {}
|
||
kirigami = {}
|
||
kf6-kio = {}
|
||
kf6-kdeclarative = {}
|
||
kf6-kcmutils = {}
|
||
kf6-kwayland = {}
|
||
kdecoration = {}
|
||
|
||
# KDE session surface (v2.0 Phases 3–4)
|
||
kwin = {}
|
||
|
||
# Graphics
|
||
redox-drm = {}
|
||
mesa = {}
|
||
libdrm = {}
|
||
|
||
# Firmware directory for AMD/Intel GPU blobs
|
||
[[files]]
|
||
path = "/lib/firmware/amdgpu"
|
||
data = ""
|
||
directory = true
|
||
mode = 0o755
|
||
|
||
# ── Red Bear OS custom services ─────────────────────────────────────
|
||
[[files]]
|
||
path = "/usr/lib/init.d/12_dbus.service"
|
||
data = """
|
||
[unit]
|
||
description = "D-Bus system bus"
|
||
requires_weak = [
|
||
"00_base.target",
|
||
]
|
||
|
||
[service]
|
||
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"
|
||
"""
|
||
|
||
[[files]]
|
||
path = "/usr/lib/init.d/14_redbear-upower.service"
|
||
data = """
|
||
[unit]
|
||
description = "UPower D-Bus service (org.freedesktop.UPower)"
|
||
requires_weak = [
|
||
"12_dbus.service",
|
||
]
|
||
|
||
[service]
|
||
cmd = "ion"
|
||
args = [
|
||
"-c",
|
||
"redbear-upower",
|
||
]
|
||
type = "oneshot_async"
|
||
"""
|
||
|
||
[[files]]
|
||
path = "/usr/lib/init.d/14_redbear-udisks.service"
|
||
data = """
|
||
[unit]
|
||
description = "UDisks2 D-Bus service (org.freedesktop.UDisks2)"
|
||
requires_weak = [
|
||
"12_dbus.service",
|
||
]
|
||
|
||
[service]
|
||
cmd = "ion"
|
||
args = [
|
||
"-c",
|
||
"redbear-udisks",
|
||
]
|
||
type = "oneshot_async"
|
||
"""
|
||
|
||
[[files]]
|
||
path = "/usr/lib/init.d/14_redbear-polkit.service"
|
||
data = """
|
||
[unit]
|
||
description = "PolicyKit1 D-Bus service (org.freedesktop.PolicyKit1)"
|
||
requires_weak = [
|
||
"12_dbus.service",
|
||
]
|
||
|
||
[service]
|
||
cmd = "ion"
|
||
args = [
|
||
"-c",
|
||
"redbear-polkit",
|
||
]
|
||
type = "oneshot_async"
|
||
"""
|
||
|
||
[[files]]
|
||
path = "/usr/lib/init.d/20_orbital.service"
|
||
data = """
|
||
[unit]
|
||
description = "Orbital display server (KDE session)"
|
||
requires_weak = [
|
||
"12_dbus.service",
|
||
"13_redbear-sessiond.service",
|
||
"13_seatd.service",
|
||
]
|
||
|
||
[service]
|
||
cmd = "orbital"
|
||
args = ["orblogin", "orbital-kde"]
|
||
envs = { VT = "3" }
|
||
type = "oneshot_async"
|
||
"""
|
||
|
||
[[files]]
|
||
path = "/usr/lib/init.d/30_console.service"
|
||
data = """
|
||
[unit]
|
||
description = "Console terminals"
|
||
requires_weak = [
|
||
"20_orbital.service",
|
||
]
|
||
|
||
[service]
|
||
cmd = "getty"
|
||
args = ["2"]
|
||
type = "oneshot_async"
|
||
"""
|
||
|
||
[[files]]
|
||
path = "/usr/lib/init.d/29_activate_console.service"
|
||
data = """
|
||
[unit]
|
||
description = "Activate Orbital VT"
|
||
requires_weak = [
|
||
"20_orbital.service",
|
||
]
|
||
|
||
[service]
|
||
cmd = "inputd"
|
||
args = ["-A", "3"]
|
||
type = "oneshot"
|
||
"""
|
||
|
||
[[files]]
|
||
path = "/usr/lib/init.d/31_debug_console.service"
|
||
data = """
|
||
[unit]
|
||
description = "Debug console"
|
||
requires_weak = [
|
||
"20_orbital.service",
|
||
]
|
||
|
||
[service]
|
||
cmd = "getty"
|
||
args = ["/scheme/debug/no-preserve", "-J"]
|
||
type = "oneshot_async"
|
||
"""
|
||
|
||
# KDE session launcher
|
||
[[files]]
|
||
path = "/usr/bin/orbital-kde"
|
||
mode = 0o755
|
||
data = """
|
||
#!/usr/bin/sh
|
||
|
||
export DISPLAY=""
|
||
export WAYLAND_DISPLAY="${WAYLAND_DISPLAY:-wayland-0}"
|
||
export XDG_SESSION_TYPE=wayland
|
||
export KDE_FULL_SESSION=true
|
||
export XDG_CURRENT_DESKTOP=KDE
|
||
export LIBSEAT_BACKEND=seatd
|
||
export SEATD_SOCK=/run/seatd.sock
|
||
|
||
if [ -z "${XDG_RUNTIME_DIR:-}" ]; then
|
||
export XDG_RUNTIME_DIR="/tmp/run/user/$(id -u)"
|
||
fi
|
||
|
||
mkdir -p "$XDG_RUNTIME_DIR"
|
||
|
||
if [ -z "${DBUS_SESSION_BUS_ADDRESS:-}" ]; then
|
||
eval "$(dbus-launch --sh-syntax)"
|
||
fi
|
||
|
||
# Export session environment to D-Bus activation
|
||
dbus-update-activation-environment \
|
||
DBUS_SESSION_BUS_ADDRESS \
|
||
DBUS_SESSION_BUS_PID \
|
||
WAYLAND_DISPLAY \
|
||
XDG_SESSION_ID \
|
||
XDG_SEAT \
|
||
XDG_SESSION_TYPE \
|
||
XDG_RUNTIME_DIR \
|
||
XDG_CURRENT_DESKTOP \
|
||
KDE_FULL_SESSION \
|
||
DISPLAY \
|
||
HOME \
|
||
USER
|
||
|
||
# Start KWin Wayland compositor
|
||
exec kwin_wayland --replace
|
||
"""
|