Skip to content

Building

Dani John edited this page Mar 30, 2022 · 101 revisions

Requirements

Lively is developed using Visual Studio Community 2022 and require:

  1. .Net Core cross-platform development
  2. .NET Desktop Development
  3. WinUI 3 (Unpackaged)
  4. .Net 6 SDK and .Net Framework 4.7.2
  5. Windows 10.0.18362 SDK

Lively is a 32bit application and build is tested for only x86, set CPU architecture to x86 from Any CPU.

Project Structure

Lively is split into separate application and communicate over grpc ipc protocol using namedpipes.

The Core (Lively project) is a wpf project and has no dependency on the main UI project.

The wallpaper player plugins are also separate projects and has no dependency on Core or UI project.

Plugins are structured in the Core folder as follows:

  • ../Plugins/UI
  • ../Plugins/Wv2
  • ../Plugins/Cef
  • ../Plugins/Wmf
  • ../Plugins/Mpv
  • ../Plugins/Watchdog

Create a Plugins folder inside the Core project and copy the required plugin (for basic functioning Cef, Mpv, UI and Watchdog is recommended) builds there - the core project will copy it to output during build.

Lively's own wallpaper plugin programs are designed to close themselves in the event of unexpected shutdown - for the rest Watchdog is required.

Summary

  • Lively - Core that handles all the system tasks.
  • Lively.Models - Data models shared between projects.
  • Lively.Common - Helper functions and constants shared between projects.
  • Lively.UI.WinUI - Primary UI front-end.
  • Lively.UI.Wpf - Alternative UI front-end.
  • Lively.Grpc.Common - Grpc classes and proto files.
  • Lively.Grpc.Client - Client library used to interact with the core.
  • Lively.ConsoleDemo - Sample console test project using Lively.Grpc.Client library.
  • Lively.Watchdog - Program that monitors and cleans up resources in the event Lively core crashes unexpectedly.
  • Lively.Screensaver - Screensaver utility.
  • Lively.Commandline - Commandline control utility.

Lively and WinUI project use .NET 6 or latest.

All class libraries use .NET Standard 2.0 for compatibility.

Plugins use .NET Framework 4.7.2 to reduce build size.

Related projects

Web browser (CefSharp):

https://github.com/rocksdanister/lively-cef

Video player (mpv):

https://mpv.io/installation/