e092841004
harddrive.img built at 14:22, boots with 0 exceptions. Packages synced. Greeter suppressed (qtbase QPlatformOpenGLContext). All core components included: kernel, compositor, DRM, authd, sessiond.
395 lines
8.2 KiB
TOML
395 lines
8.2 KiB
TOML
# 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
|
|
efi_partition_size = 16
|
|
|
|
[users.messagebus]
|
|
uid = 100
|
|
gid = 100
|
|
name = "messagebus"
|
|
home = "/nonexistent"
|
|
shell = "/usr/bin/ion"
|
|
|
|
[packages]
|
|
# Firmware loading
|
|
redbear-firmware = {}
|
|
firmware-loader = {}
|
|
|
|
# GPU/graphics stack
|
|
redox-drm = {}
|
|
# mesa = {} # suppressed
|
|
# libdrm = {} # suppressed
|
|
|
|
# Wayland protocol
|
|
# libwayland = {} # suppressed
|
|
# wayland-protocols = {} # suppressed
|
|
redbear-compositor = {}
|
|
|
|
# Keyboard/input
|
|
# libxkbcommon = {} # suppressed
|
|
# xkeyboard-config = {} # suppressed
|
|
# libevdev = {} # suppressed
|
|
#libinput = {} # suppressed: cascade rebuild
|
|
|
|
# Seat management
|
|
seatd = {}
|
|
|
|
# Qt6 stack
|
|
# qtbase = {} # suppressed
|
|
# qtdeclarative = {} # suppressed
|
|
# qtsvg = {} # suppressed
|
|
# qtwayland = {} # suppressed
|
|
# qt6-wayland-smoke = {} # suppressed
|
|
|
|
# KF6 Frameworks
|
|
#kf6-extra-cmake-modules = {} # suppressed: cascade rebuild
|
|
#kf6-kcoreaddons = {} # suppressed: cascade rebuild
|
|
#kf6-kconfig = {} # suppressed: cascade rebuild
|
|
#kf6-ki18n = {} # suppressed: cascade rebuild
|
|
#kf6-kcolorscheme = {} # suppressed: cascade rebuild
|
|
#kf6-kauth = {} # suppressed: cascade rebuild
|
|
#kf6-kwindowsystem = {} # suppressed: cascade rebuild
|
|
#kf6-knotifications = {} # suppressed: cascade rebuild
|
|
#kf6-kconfigwidgets = {} # suppressed: cascade rebuild
|
|
#kf6-kcrash = {} # suppressed: cascade rebuild
|
|
#kf6-kdbusaddons = {} # suppressed: cascade rebuild
|
|
#kf6-kglobalaccel = {} # suppressed: cascade rebuild
|
|
#kf6-kservice = {} # suppressed: cascade rebuild
|
|
#kf6-kpackage = {} # suppressed: cascade rebuild
|
|
#kf6-kiconthemes = {} # suppressed: cascade rebuild
|
|
#kirigami = {} # suppressed: cascade rebuild
|
|
#kf6-kio = {} # suppressed: cascade rebuild
|
|
#kf6-kdeclarative = {} # suppressed: cascade rebuild
|
|
#kf6-kcmutils = {} # suppressed: cascade rebuild
|
|
#kf6-kwayland = {} # suppressed: cascade rebuild
|
|
|
|
#kf6-kded6 = {} # suppressed: cascade rebuild
|
|
#kglobalacceld = {} # suppressed: cascade rebuild
|
|
|
|
# KWin Wayland compositor
|
|
#kwin = {} # suppressed: cascade rebuild
|
|
|
|
# Greeter/login stack
|
|
redbear-authd = {}
|
|
redbear-session-launch = {}
|
|
redbear-greeter = "ignore"
|
|
amdgpu = "ignore"
|
|
|
|
# Core Red Bear umbrella package
|
|
redbear-meta = {}
|
|
|
|
# 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"
|
|
libinput = "ignore"
|
|
mc = "ignore"
|
|
#curl = "ignore" # suppressed: cascade rebuild
|
|
#git = "ignore" # suppressed: cascade rebuild
|
|
|
|
[[files]]
|
|
path = "/lib/firmware/amdgpu"
|
|
data = ""
|
|
directory = true
|
|
mode = 0o755
|
|
|
|
[[files]]
|
|
path = "/usr/lib/fonts"
|
|
data = "/usr/share/fonts"
|
|
symlink = true
|
|
|
|
[[files]]
|
|
path = "/usr/lib/init.d/05_boot-essential.target"
|
|
data = """
|
|
[unit]
|
|
description = "Boot essential services target"
|
|
requires_weak = [
|
|
"00_base.target",
|
|
]
|
|
"""
|
|
|
|
[[files]]
|
|
path = "/usr/lib/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 = "/usr/lib/init.d/12_dbus.service"
|
|
data = """
|
|
[unit]
|
|
description = "D-Bus system bus"
|
|
requires_weak = [
|
|
"12_boot-late.target",
|
|
]
|
|
|
|
[service]
|
|
cmd = "dbus-daemon"
|
|
args = ["--system", "--nopidfile"]
|
|
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 = "redbear-sessiond"
|
|
type = "oneshot_async"
|
|
"""
|
|
|
|
[[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 = "/usr/bin/seatd"
|
|
args = ["-l", "info"]
|
|
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 = "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 = "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 = "redbear-polkit"
|
|
type = "oneshot_async"
|
|
"""
|
|
|
|
[[files]]
|
|
path = "/usr/lib/init.d/19_redbear-authd.service"
|
|
data = """
|
|
[unit]
|
|
description = "Red Bear authentication daemon"
|
|
requires_weak = [
|
|
"12_dbus.service",
|
|
]
|
|
|
|
[service]
|
|
cmd = "/usr/bin/redbear-authd"
|
|
type = "oneshot_async"
|
|
"""
|
|
|
|
[[files]]
|
|
path = "/usr/lib/init.d/20_greeter.service"
|
|
data = """
|
|
[unit]
|
|
description = "Red Bear greeter service"
|
|
requires_weak = [
|
|
"12_dbus.service",
|
|
"13_redbear-sessiond.service",
|
|
"13_seatd.service",
|
|
"19_redbear-authd.service",
|
|
"00_pcid-spawner.service",
|
|
]
|
|
|
|
[service]
|
|
cmd = "/usr/bin/redbear-greeterd"
|
|
envs = { VT = "3", REDBEAR_GREETER_USER = "greeter", KWIN_DRM_DEVICES = "/scheme/drm/card0" }
|
|
type = "oneshot_async"
|
|
"""
|
|
|
|
[[files]]
|
|
path = "/usr/lib/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 = "/usr/lib/init.d/30_console.service"
|
|
data = """
|
|
[unit]
|
|
description = "Console terminals"
|
|
requires_weak = [
|
|
"29_activate_console.service",
|
|
]
|
|
|
|
[service]
|
|
cmd = "getty"
|
|
args = ["2"]
|
|
type = "oneshot_async"
|
|
respawn = true
|
|
"""
|
|
|
|
[[files]]
|
|
path = "/usr/lib/init.d/31_debug_console.service"
|
|
data = """
|
|
[unit]
|
|
description = "Debug console"
|
|
requires_weak = [
|
|
"29_activate_console.service",
|
|
]
|
|
|
|
[service]
|
|
cmd = "getty"
|
|
args = ["/scheme/debug/no-preserve", "-J"]
|
|
type = "oneshot_async"
|
|
respawn = true
|
|
"""
|
|
|
|
[users.greeter]
|
|
password = ""
|
|
uid = 101
|
|
gid = 101
|
|
name = "greeter"
|
|
home = "/nonexistent"
|
|
shell = "/usr/bin/ion"
|
|
|
|
[groups.greeter]
|
|
gid = 101
|
|
members = ["greeter"]
|
|
|
|
[[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
|
|
subclass = 0x00
|
|
command = ["redox-drm"]
|
|
"""
|
|
|
|
[[files]]
|
|
path = "/usr/bin/redbear-kde-session"
|
|
mode = 0o755
|
|
data = """
|
|
#!/usr/bin/env bash
|
|
# Red Bear KDE Wayland session startup
|
|
# Launched by redbear-session-launch after successful greeter login.
|
|
|
|
export XDG_CURRENT_DESKTOP=KDE
|
|
export KDE_FULL_SESSION=true
|
|
export XDG_SESSION_ID="${XDG_SESSION_ID:-c1}"
|
|
export QT_PLUGIN_PATH="${QT_PLUGIN_PATH:-/usr/plugins}"
|
|
export QT_QPA_PLATFORM_PLUGIN_PATH="${QT_QPA_PLATFORM_PLUGIN_PATH:-/usr/plugins/platforms}"
|
|
export QML2_IMPORT_PATH="${QML2_IMPORT_PATH:-/usr/qml}"
|
|
export LIBSEAT_BACKEND="${LIBSEAT_BACKEND:-seatd}"
|
|
export SEATD_SOCK="${SEATD_SOCK:-/run/seatd.sock}"
|
|
export XCURSOR_THEME="${XCURSOR_THEME:-Pop}"
|
|
export XKB_CONFIG_ROOT="${XKB_CONFIG_ROOT:-/usr/share/X11/xkb}"
|
|
|
|
if [ -z "${KWIN_DRM_DEVICES:-}" ] && [ -e /scheme/drm/card0 ]; then
|
|
export KWIN_DRM_DEVICES=/scheme/drm/card0
|
|
fi
|
|
|
|
# Wait for Wayland compositor socket
|
|
wayland_socket="${XDG_RUNTIME_DIR}/${WAYLAND_DISPLAY:-wayland-0}"
|
|
for _ in $(seq 1 30); do
|
|
if [ -S "$wayland_socket" ]; then
|
|
break
|
|
fi
|
|
sleep 1
|
|
done
|
|
|
|
if [ -n "${KWIN_DRM_DEVICES:-}" ]; then
|
|
exec kwin_wayland_wrapper --drm
|
|
else
|
|
exec kwin_wayland_wrapper --virtual
|
|
fi
|
|
"""
|