wiki:Documentation/ThemesReorganization

Reorganization of themes

Current situation

All GUI applications store their themes in themes/ subdirectory in git source code. At the moment there are default and azbooka themes.

What are the benefits of this layout?

  • Developer may change underlying code and adjust all themes at once. This is quite useful when application is new and still in flux.
  • It is easy to package application's themes and share resources between them if necessary.

What are the drawbacks?

  • Adding new theme is really hard, theme designer need to clone every application out there and adjust it
  • It is hard to share resources between different parts of the same theme.

Alternate situation

All GUI application bring default theme in their git repository.

Separate foo-theme repositories are created, each containing whole theme and associated files.

What are the benefits of this layout?

  • Theme designer need to work on single repository.
  • foo-theme is a logical place for other theme-specific files, such as icons.
  • foo-theme is a logical place for theme metapackage

What are the drawbacks of this layout?

  • Developer will need to adjust all themes if underlying code is changed.

Proposal

It is proposed to use first approach for new applications and convert them to second apporach as they mature and it becomes less likely that underlying code changes need to be reflected in themes.