added wayshell framework
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user