Files
SDG-OS/sdgos/wayshell/PLAN.md
T
2026-06-27 10:50:50 +02:00

2.0 KiB

Wayshell Module System Plan

Overview

The Wayshell Module System is designed to provide a flexible and efficient way to manage different types of modules in a Wayland environment. The system will parse configuration files and trigger actions based on specific events.

Module Types

  1. Zone Module: Allows defining zones and triggers for entering and exiting these zones.
  2. Layout Module: Allows triggering actions based on the activation or deactivation of specific layout types.
  3. Focused Module: Allows triggering actions based on focusing or unfocusing specific client types.

Configuration Files

  • wayshell.conf: General configuration file.
  • wayshell.modules: Defines the modules.

Design Constraints

  • Minimize CPU usage to less than 3% when running as a daemon.
  • Avoid constantly running expensive commands.

Implementation Plan

Phase 1: Initial Setup

  1. Parse Configuration Files: Implement parsers for wayshell.conf and wayshell.modules.
  2. Module Initialization: Initialize the different module types (Zone, Layout, Focused).

Phase 2: Event Handling

  1. Zone Module: Implement event triggers for entering and exiting zones.
  2. Layout Module: Implement event triggers for activating and deactivating layouts.
  3. Focused Module: Implement event triggers for focusing and unfocusing clients.

Phase 3: Performance Optimization

  1. Efficient Parsing: Optimize the parsing of configuration files to minimize CPU usage.
  2. Event Debouncing: Implement debouncing for events to avoid unnecessary triggers.

Phase 4: Testing

  1. Unit Tests: Write unit tests for each module type.
  2. Integration Tests: Write integration tests to ensure the modules work together correctly.
  3. Performance Tests: Conduct performance tests to ensure the system meets the CPU usage constraints.

Next Steps

  1. Review the plan and provide feedback.
  2. Proceed with the implementation based on the approved plan.