How exs-lab/exs-core works
exs-core is a Python support library for exs-shell and its plugins, rather than a standalone shell application. Its principal workflow is plugin validation and loading, followed by plugins registering services, settings, event handlers, and IPC commands for the shell to use. It also provides GTK window/settings widgets, compositor access, and Linux desktop/system utilities. The README is absent and source excerpts are partial, so links among unsampled modules are limited to documented or directly evidenced relationships.
Main entry points: plugin.py Plugin Loader · _state.py Shared State · connectors.py Event Connectors · widgets.py Settings Widgets
Components 20
Plugin Runtime
- Plugin Loader
libexs/utils/plugin.py - Shared State
libexs/_state.py - Event Connectors
libexs/register/events/connectors.py - Command Registry
libexs/register/cmd.py - Event Registration
libexs/register/events/base.py
GTK Interface
- Settings API
libexs/settings/base.py - Settings Widgets
libexs/settings/widgets.py - Widget Base
libexs/widgets/base.py - Window Widgets
libexs/widgets/window.py - Icon Widget
libexs/widgets/icon.py
Desktop Integration
- Compositor Service
libexs/compositor/service.py - Compositor Interface
libexs/compositor/abc_core.py - Compositor Adapters
libexs/compositor/impl - Shell Services
System Utilities
- System Monitoring
libexs/utils/system.py - Desktop Utilities
libexs/utils
Other components
- Plugin
- exs-shell
- Linux Desktop
- Ignis GTK
Connections 19
- Plugin → Plugin Loader: provides plugin
- Plugin Loader → Shared State: registers services
- Plugin Loader → Settings API: registers settings
- Plugin Loader → exs-shell: loads plugin
- exs-shell → Command Registry: registers commands
- Command Registry → Shared State: stores commands
- Event Connectors → Shared State: resolves services
- Event Connectors → Event Registration: uses connectors
- Settings Widgets → Window Widgets: creates dialogs
- Settings Widgets → Widget Base: builds controls
- Window Widgets → Ignis GTK: extends windows
- Widget Base → Ignis GTK: extends widgets
- Compositor Service → Compositor Interface: calls interface
- Compositor Adapters → Compositor Interface: implement interface
- Compositor Service → exs-shell: exposes state
- System Monitoring → Linux Desktop: reads system data
- Desktop Utilities → Linux Desktop: uses desktop facilities
- Plugin Loader → Ignis GTK: applies CSS
- Shared State → Shell Services: holds references