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.

Project 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 .net6 or latest.

All class libraries use .net-standard2.0 for compatibility.

Plugins use .net-framework4.7.2 to reduce build size.

Related projects

Web browser (CefSharp):

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

Video player (mpv):

https://mpv.io/installation/