Skip to content

Expand architecture documentation for multiple modules - #9

Merged
brasga-a merged 8 commits into
mainfrom
docs/theme-module-architecture
Sep 13, 2026
Merged

brasga-a merged 8 commits into
mainfrom
docs/theme-module-architecture

Conversation

@brasga-a

Copy link
Copy Markdown
Owner

This pull request updates the documentation for the Clock and Player modules to clarify their intended responsibilities, architecture, and boundaries between shell modules and potential future standalone apps. The changes emphasize a clear separation of concerns, proper state management, and robust integration with system services rather than duplicating functionality. Below are the most important changes:

Clock Module Documentation Improvements:

  • Expanded the purpose and responsibilities to include world clocks, timers, and alarms, emphasizing that the module is a quick-access shell surface rather than a full clock app.
  • Added architectural references (like GNOME Clocks), detailed the separation of shell and app responsibilities, and proposed a modular architecture distinguishing between wall-clock and elapsed-duration timing.
  • Clarified state management, persistence, and background behavior, ensuring timer/alarm correctness and persistence even when the UI is not active.
  • Outlined MVP stages and completion criteria, specifying what belongs in the shell module versus a potential future app, and listed explicit non-goals to avoid feature creep.

Player Module Documentation Improvements:

  • Refined the purpose to focus on controlling the current media session via MPRIS, not owning playback or managing a media library.
  • Added architectural references (MPRIS, Amberol, Elisa) to inform design, and clarified the shell vs. app boundary for media control and library management.
  • Detailed the target architecture, including active player policy, normalized media model, capability handling, and artwork loading best practices.
  • Improved documentation on state management and UX, with explicit MVP stages and completion criteria to ensure robust, smooth operation without direct D-Bus access from the UI.
  • Listed non-goals to keep the module focused on session control, not library or playback engine responsibilities.

@brasga-a
brasga-a merged commit becc724 into main Sep 13, 2026
0 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant