# 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 # Tracked default desktop target for Red Bear OS # Current state: KWin + KF6 + Qt6 + Mesa + D-Bus + seatd # 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"] [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 = {} # 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 = {} # 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 = {} cub = {} # 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 [[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_display.service" data = """ [unit] description = "Display session service (KDE session)" requires_weak = [ "12_dbus.service", "13_redbear-sessiond.service", "13_seatd.service", ] [service] cmd = "/usr/bin/redbear-kde-session" envs = { VT = "3" } 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/29_activate_console.service" data = """ [unit] description = "Activate display VT" requires_weak = [ "20_display.service", ] [service] cmd = "inputd" args = ["-A", "3"] type = "oneshot_async" """ [[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 """ [[files]] path = "/usr/bin/redbear-kde-session" mode = 0o755 data = """ #!/usr/bin/sh export DISPLAY="" export HOME="${HOME:-/home/root}" export USER="${USER:-root}" export LOGNAME="${LOGNAME:-$USER}" 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 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 XCURSOR_THEME="${XCURSOR_THEME:-Pop}" export XKB_CONFIG_ROOT="${XKB_CONFIG_ROOT:-/usr/share/X11/xkb}" if [ -z "${XDG_RUNTIME_DIR:-}" ]; then export XDG_RUNTIME_DIR="/tmp/run/user/$(id -u)" fi mkdir -p "$XDG_RUNTIME_DIR" chmod 700 "$XDG_RUNTIME_DIR" 2>/dev/null || true wait_for_path() { target="$1" attempts=0 while [ "$attempts" -lt 30 ]; do if [ -e "$target" ]; then return 0 fi attempts=$((attempts + 1)) sleep 1 done return 1 } if ! wait_for_path /run/dbus/system_bus_socket; then echo "system D-Bus socket did not appear" >&2 exit 1 fi sleep 2 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_ID \ XDG_SEAT \ XDG_SESSION_TYPE \ XDG_RUNTIME_DIR \ XDG_CURRENT_DESKTOP \ KDE_FULL_SESSION \ DISPLAY \ HOME \ USER if [ -z "${KWIN_DRM_DEVICES:-}" ] && [ -e /scheme/drm/card0 ]; then export KWIN_DRM_DEVICES=/scheme/drm/card0 fi exec kwin_wayland_wrapper --drm """