Documentation Overview¶
The Open Compositor Widget Shell (OCWS) is a high-performance, native Wayland desktop environment engineered primarily with C, GTK3, and labwc. This documentation repository provides comprehensive guidance on system installation, advanced configuration, architectural design, and software development practices.
System Overview¶
OCWS serves as an efficient alternative to conventional desktop environments such as GNOME or KDE. It achieves this by deploying a curated suite of specialized C binaries and shell scripts. The environment operates on labwc (a robust Wayland compositor), utilizes zigshell-cairo-pango for rendering panels and widgets, and employs fuzzel as its application launcher.
This architecture delivers a fully featured desktop environment that operates efficiently with under 200 MB of RAM, entirely eliminating the overhead associated with JavaScript, Electron, or Qt runtimes.
Primary Features¶
- Native C and GTK3 Implementation: All graphical utilities are compiled natively. The system strictly avoids reliance on web-based technologies.
- Modular Design: Interface panels, widgets, background daemons, and plugins function as distinct, independent units.
- Centralized Theme Engine: A singular INI configuration file dictates the aesthetic properties across 14 distinct interface surfaces.
- Versatile Shell Layouts: Supports multiple user paradigms, including Dual Panel, Noctalia Floating Island, Zigshell-cairo-pango, and Minimal configurations.
- Native Configuration Interface: Provides graphical controls for theme management, appearance parameters, keybinding assignments, and system metric analysis.
- Security Hardened Architecture: Integrates AddressSanitizer (ASan) in Continuous Integration (CI) pipelines, enforces shell injection prevention mechanisms, and utilizes secure temporary file handling protocols.
Initialization¶
git clone --depth=1 https://github.com/naranyala/labwc-fuzzel-zigshell-cairo-pango.git
cd labwc-fuzzel-zigshell-cairo-pango
./install.sh
Upon successful installation, initialize the labwc session via your configured Display Manager, or execute labwc directly from a TTY interface.
System Architecture¶
| Architecture Layer | Component | Functionality |
|---|---|---|
| Compositor | labwc | Manages window operations, input processing, and keybinding enforcement. |
| User Interface | zigshell-cairo-pango | Renders interface panels, widgets, the system taskbar, and the notification tray. |
| Application Launcher | fuzzel | Operates as the application launcher and dmenu-compatible command runner. |
| Layer Shell | gtk-layer-shell | Secures interface surfaces to the designated Wayland outputs. |
Documentation Directory¶
- Getting Started: Procedures for installation, initial configuration, and system troubleshooting.
- Configuration: Specifications for the Event Bus API, plugin architecture, and CSS-based customization.
- Event API Specification: Comprehensive documentation of the IPC event contract and associated variable mappings.
- Graphical Interface Managers: Details regarding native GTK3 utility applications.
- Implementation Insights: An extensive archive of technical notes detailing
zigshell-cairo-pangointernals, shell design patterns, and security considerations. - Strategic Planning: Records of architectural decisions, unification strategies, and comprehensive dependency analyses.