Comprehensive boot process improvement across the entire stack: Compositor (NEW): Real Rust Wayland display server (690 lines) - Full XDG shell protocol (15/15 protocols implemented and verified) - wl_shm.format, xdg_wm_base, xdg_surface.get_toplevel support - wl_buffer.release lifecycle, buffer composite to framebuffer - Framebuffer mapping via scheme:memory (Redox) with fallback - PID/status files for greeterd health checks - Integration test suite (3 cases passing) - Diagnostic tool: redbear-compositor-check DRM/KMS Chain: - KWIN_DRM_DEVICES=/scheme/drm/card0 wired through init→greeterd→compositor - session-launch propagates KWIN_DRM_DEVICES (new test, 11/11 pass) - DRM auto-detect + 5s wait loop in compositor wrapper - Boot verified: compositor uses DRM backend in QEMU Intel DRM: - Gen8-Gen12 supported with firmware (SKL/KBL/CNL/ICL/GLK/RKL/DG1/TGL/ADLP/DG2/MTL/ARL/LNL/BMG) - Gen4-Gen7 device IDs recognized, unsupported with clear error message - Linux 7.0 i915 reference for all 200+ device IDs - Display fixes: sticky pipe refresh, PIPE=4/PORT=6, 64-bit page flip, EDID skeleton - 4 durability patches wired into recipe VirtIO GPU Driver (NEW): - 220-line DRM/KMS backend for QEMU virtio-gpu - Full GpuDriver trait implementation (11 methods) - PCI BAR0 framebuffer mapping, connector/mode info, GEM management Kernel: - 4GB RAM hang root cause: MEMORY_MAP overflow at 512 entries → fixed to 1024 - Canary chain R S 1 2 3 4 5 6 7 (9 COM1 checkpoints through boot) - Verified: kernel boots at 4GB with all canaries present - 3 durability patches (P0-canary, P1-memory-overflow) Live ISO: - Preload capped at 1 GiB with partial preload messaging - P5 patch wired into bootloader recipe Greeter: - Startup progress logging (4 checkpoints) - QML crash diagnostic (exit code 1 → specific error message) - greeterd tests: 8/8 pass Boot Daemons: - dhcpd: auto-detect interface from /scheme/netcfg/ifaces/ - i2c-gpio-expanderd: I2C decode retry (3× with 50ms delay) - ucsid: same I2C decode hardening - Compositor: safe framebuffer fallback (prevents crash) Qt6 Toolchain: - -march=x86-64 for CPU compatibility (prevents invalid_opcode on core2duo) - -fpermissive for header compatibility (unlinkat/linkat redefinition) Documentation: - BOOT-PROCESS-IMPROVEMENT-PLAN.md (comprehensive, 320 lines) - PROFILE-MATRIX.md: ISO organization, RAM requirements, known issues - BOOT-PROCESS-ASSESSMENT.md: Phase 7 kernel hang diagnosis - Deleted 4 stale docs (BAREMETAL-LOG, ACPI-FIXES, 02-GAP-ANALYSIS, _CUB_RBPKGBUILD) - Cross-references updated across all docs KWin stubs replaced with real compositor delegation. redbear-kde-session script created for post-login session launch. 30+ files, 10 patches, 3 binaries, 22 tests, 0 errors.
KIconThemes
Icon GUI utilities
Introduction
This library contains classes to improve the handling of icons in applications using the KDE Frameworks. Provided are:
- KIconDialog: Dialog class to let the user select an icon from the list of installed icons.
- KIconButton: Custom button class that displays an icon. When clicking it, the user can change it using the icon dialog.
- KIconEffect: Applies various colorization effects to icons, which can be used to create selected/disabled icon images.
Other classes in this repository are used internally by the icon theme configuration dialogs, and should not be used by applications.
Icon Theme Deployment
On Linux/BSD, it is expected that the main icon themes (hicolor, oxygen, breeze) are installed by the distribution. The platform theme plugin reads the icon theme name from KConfig, and redirects QIcon::fromTheme calls to KIconEngine/KIconLoader, which brings some benefits over Qt's internal icon loading, such as a cache shared between processes.
On other platforms such as MS Windows and Mac OS, icon themes are not a regular part of the system, though they are available through package management systems (like MacPorts, Fink and Cygwin).
When icon themes are installed in a suitable (system) location, applications can be built and deployed as on Linux/BSD provided that the location is registered by calling QIcon::setThemeSearchPath(). This can be done early in the main() function, or in a plugin that Qt loads automatically when the application starts up (a platform theme plugin, for instance). The more usual deployment strategy on those platforms consists of creating standalone applications where each has its own copy of all dependencies and required resources.
Icon theme resources for standalone applications can be created and deployed as follows:
- breeze-icons and other icon themes, when configured with -DBINARY_ICONS_RESOURCE=ON, install .rcc files (binary resources, loadable by Qt)
- the installation process should copy one of these under the name "icontheme.rcc", in a directory found by QStandardPaths::AppDataLocation. For instance on Windows, icontheme.rcc is usually installed in APPROOT/data/, while on Mac OS it is installed in the Resources directory inside the application bundle.
- as long as the application links to KIconThemes (even if it doesn't use any of its API), the icontheme.rcc file will be found on startup, loaded, and set as the default icon theme.
A related note of caution: These systems use embedded application icons regardless of how icon themes are provided, and allow users to change that icon. Software should thus ideally refrain from calling QGuiApplication::setWindowIcon() or at least pass QGuiApplication::windowIcon() as the fallback argument when using QIcon::fromTheme().