├── .github
├── FUNDING.yml
└── ISSUE_TEMPLATE
│ ├── bug_report.md
│ └── feature_request.md
├── .gitignore
├── CONTRIBUTING.md
├── LICENSE
├── PRIVACY.md
├── README.md
├── SECURITY.md
├── resources
├── cmd_rm.gif
├── figma_promo_16x9.jpg
├── hw_api.gif
├── main_dragdrop.gif
├── main_preview.gif
├── music_api.gif
├── rotary_demo.gif
├── screen_saver.gif
├── taskbar_theme.gif
├── wallpaper_depth.gif
├── wallpaper_emulator.gif
├── wallpaper_gif.gif
├── wallpaper_html.gif
├── wallpaper_shadertoy.gif
├── wallpaper_unity.gif
└── wallpaper_video.gif
├── schemas
└── livelyPropertiesSchema.json
└── src
├── Lively
├── Lively.Common.Services
│ ├── GithubUpdaterService.cs
│ ├── HardwareUsageService.cs
│ ├── HttpDownloadService.cs
│ ├── Lively.Common.Services.csproj
│ ├── NAudioVisualizerService.cs
│ └── NpsmNowPlayingService.cs
├── Lively.Common
│ ├── Com
│ │ ├── ApplicationActivationManager.cs
│ │ ├── IApplicationActivationManager.cs
│ │ └── IDesktopWallpaper.cs
│ ├── CommandlineArgs.cs
│ ├── Constants.cs
│ ├── Exceptions
│ │ ├── ScreenNotFoundException.cs
│ │ ├── WallpaperFileException.cs
│ │ ├── WallpaperNotAllowedException.cs
│ │ ├── WallpaperNotFoundException.cs
│ │ ├── WallpaperPluginException.cs
│ │ ├── WallpaperPluginMediaCodecException.cs
│ │ ├── WallpaperPluginNotFoundException.cs
│ │ ├── WallpaperWebView2NotFoundException.cs
│ │ └── WorkerWException.cs
│ ├── Extensions
│ │ ├── EnumExtensions.cs
│ │ ├── ProcessExtensions.cs
│ │ ├── TaskExtensions.cs
│ │ └── WallpaperExtensions.cs
│ ├── Factories
│ │ ├── ApplicationsFactory.cs
│ │ ├── ApplicationsRulesFactory.cs
│ │ ├── IApplicationsFactory.cs
│ │ ├── IApplicationsRulesFactory.cs
│ │ ├── IWallpaperLibraryFactory.cs
│ │ └── WallpaperLibraryFactory.cs
│ ├── FileTypes.cs
│ ├── Helpers
│ │ ├── AppLifeCycleUtil.cs
│ │ ├── Archive
│ │ │ ├── ZipCreate.cs
│ │ │ └── ZipExtract.cs
│ │ ├── BuildInfoUtil.cs
│ │ ├── EncryptUtil.cs
│ │ ├── Files
│ │ │ └── FileUtil.cs
│ │ ├── GithubUtil.cs
│ │ ├── Hardware
│ │ │ ├── PowerUtil.cs
│ │ │ └── SystemInfo.cs
│ │ ├── IPC
│ │ │ └── PipeClient.cs
│ │ ├── LinkUtil.cs
│ │ ├── LivelyInfoUtil.cs
│ │ ├── LivelyPropertyUtil.cs
│ │ ├── LogUtil.cs
│ │ ├── MVVM
│ │ │ └── ObservableObject.cs
│ │ ├── Pinvoke
│ │ │ ├── DwmThumbnailWrapper.cs
│ │ │ └── NativeMethods.cs
│ │ ├── Shell
│ │ │ ├── DesktopUtil.cs
│ │ │ └── ThumbnailUtil.cs
│ │ ├── Storage
│ │ │ ├── JsonStorage.cs
│ │ │ └── JsonUtil.cs
│ │ ├── StreamUtil.cs
│ │ └── WindowUtil.cs
│ ├── JsonConverters
│ │ ├── IpcMessageConverter.cs
│ │ └── LivelyControlModelConverter.cs
│ ├── Languages.cs
│ ├── Lively.Common.csproj
│ └── Services
│ │ ├── IAppUpdaterService.cs
│ │ ├── IAudioVisualizerService.cs
│ │ ├── ICacheService.cs
│ │ ├── IDialogService.cs
│ │ ├── IDispatcherService.cs
│ │ ├── IDownloadService.cs
│ │ ├── IFileService.cs
│ │ ├── IHardwareUsageService.cs
│ │ ├── INavigator.cs
│ │ ├── INowPlayingService.cs
│ │ ├── IResourceService.cs
│ │ ├── IRunnerService.cs
│ │ ├── IScreensaverService.cs
│ │ ├── ISystray.cs
│ │ ├── ITransparentTbService.cs
│ │ └── IUserSettingsService.cs
├── Lively.Gallery.Client
│ ├── ApiException.cs
│ ├── GalleryClient.cs
│ ├── HttpRequestMessageExtensions.cs
│ ├── Interfaces
│ │ └── ITokenStore.cs
│ ├── JsonTokenStore.cs
│ ├── Lively.Gallery.Client.csproj
│ ├── SearchQuery.cs
│ └── SearchQueryBuilder.cs
├── Lively.Grpc.Client
│ ├── AppUpdaterClient.cs
│ ├── CommandsClient.cs
│ ├── DisplayManagerClient.cs
│ ├── IAppUpdaterClient.cs
│ ├── ICommandsClient.cs
│ ├── IDesktopCoreClient.cs
│ ├── IDisplayManagerClient.cs
│ ├── IUserSettingsClient.cs
│ ├── IWallpaperPlaylistClient.cs
│ ├── Lively.Grpc.Client.csproj
│ ├── UserSettingsClient.cs
│ ├── WallpaperPlaylistClient.cs
│ └── WinDesktopCoreClient.cs
├── Lively.Grpc.Common
│ ├── Lively.Grpc.Common.csproj
│ └── Proto
│ │ ├── commands.proto
│ │ ├── display.proto
│ │ ├── playlist.proto
│ │ ├── settings.proto
│ │ ├── update.proto
│ │ └── wallpaper.proto
├── Lively.ML
│ ├── DepthEstimate
│ │ ├── IDepthEstimate.cs
│ │ ├── MiDaS.cs
│ │ ├── ModelInput.cs
│ │ └── ModelOutput.cs
│ ├── Helpers
│ │ └── ImageUtil.cs
│ └── Lively.ML.csproj
├── Lively.Models
│ ├── AddWallpaperCreateModel.cs
│ ├── AppMusicExclusionRuleModel.cs
│ ├── ApplicationModel.cs
│ ├── ApplicationRulesModel.cs
│ ├── DisplayMonitor.cs
│ ├── Enums
│ │ ├── AppRules.cs
│ │ ├── AppTheme.cs
│ │ ├── AppThemeBackground.cs
│ │ ├── AudioPauseAlgorithm.cs
│ │ ├── ContentPageType.cs
│ │ ├── DisplayIdentificationMode.cs
│ │ ├── DisplayPause.cs
│ │ ├── InputForwardMode.cs
│ │ ├── LivelyGUIState.cs
│ │ ├── LivelyGifPlayer.cs
│ │ ├── LivelyMediaPlayer.cs
│ │ ├── LivelyPicturePlayer.cs
│ │ ├── LivelyWebBrowser.cs
│ │ ├── PlaybackState.cs
│ │ ├── ProcessMonitorAlgorithm.cs
│ │ ├── ScreensaverIdleTime.cs
│ │ ├── ScreensaverType.cs
│ │ ├── StreamQualitySuggestion.cs
│ │ ├── TaskbarTheme.cs
│ │ ├── UpdateWallpaperType.cs
│ │ ├── WallpaperArrangement.cs
│ │ ├── WallpaperScaler.cs
│ │ ├── WallpaperType.cs
│ │ └── WebPageType.cs
│ ├── FileTypeModel.cs
│ ├── Gallery
│ │ ├── API
│ │ │ ├── ApiErrors.cs
│ │ │ ├── HealthInfo.cs
│ │ │ ├── HealthResult.cs
│ │ │ ├── Page.cs
│ │ │ ├── ProfileDto.cs
│ │ │ ├── ReportModel.cs
│ │ │ ├── SortingType.cs
│ │ │ ├── TokensModel.cs
│ │ │ ├── VoteType.cs
│ │ │ └── WallpaperDto.cs
│ │ └── ApiResponse.cs
│ ├── GalleryModel.cs
│ ├── InAppNotificationModel.cs
│ ├── LanguageModel.cs
│ ├── LibraryModel.cs
│ ├── Lively.Models.csproj
│ ├── LivelyControls
│ │ ├── ButtonModel.cs
│ │ ├── CheckboxModel.cs
│ │ ├── ColorPickerModel.cs
│ │ ├── ControlModel.cs
│ │ ├── DropdownModel.cs
│ │ ├── FolderDropdownModel.cs
│ │ ├── LabelModel.cs
│ │ ├── LocalizationFile.cs
│ │ ├── LocalizationLanguage.cs
│ │ ├── LocalizedStrings.cs
│ │ ├── ScalerDropdownModel.cs
│ │ ├── SliderModel.cs
│ │ └── TextboxModel.cs
│ ├── LivelyInfoLocalizationFile.cs
│ ├── LivelyInfoModel.cs
│ ├── Message
│ │ ├── ConsoleMessageType.cs
│ │ ├── IpcMessage.cs
│ │ ├── LivelyButton.cs
│ │ ├── LivelyCheckbox.cs
│ │ ├── LivelyCloseCmd.cs
│ │ ├── LivelyColorPicker.cs
│ │ ├── LivelyDropdown.cs
│ │ ├── LivelyDropdownScaler.cs
│ │ ├── LivelyFolderDropdown.cs
│ │ ├── LivelyMessageConsole.cs
│ │ ├── LivelyMessageHwnd.cs
│ │ ├── LivelyMessageScreenshot.cs
│ │ ├── LivelyMessageWallpaperLoaded.cs
│ │ ├── LivelyReloadCmd.cs
│ │ ├── LivelyResumeCmd.cs
│ │ ├── LivelyScreenshotCmd.cs
│ │ ├── LivelySlider.cs
│ │ ├── LivelySuspendCmd.cs
│ │ ├── LivelySystemInformation.cs
│ │ ├── LivelySystemNowPlaying.cs
│ │ ├── LivelyTextBox.cs
│ │ ├── LivelyVolumeCmd.cs
│ │ ├── MessageType.cs
│ │ └── ScreenshotFormat.cs
│ ├── ScreenLayoutModel.cs
│ ├── ScreenSaverLayoutModel.cs
│ ├── Services
│ │ ├── AppUpdaterEventArgs.cs
│ │ ├── ColorProperties.cs
│ │ ├── HardwareUsageEventArgs.cs
│ │ └── NowPlayingEventArgs.cs
│ ├── SettingsModel.cs
│ ├── ThemeModel.cs
│ ├── UserControls
│ │ ├── FolderDropdownUserControlModel.cs
│ │ └── NavigationItem.cs
│ └── WallpaperLayoutModel.cs
├── Lively.Player.CefSharp
│ ├── App.config
│ ├── Extensions
│ │ └── CefSharp
│ │ │ ├── DevTools
│ │ │ ├── DevToolsExtensions.cs
│ │ │ └── TaskMethodDevToolsMessageObserver.cs
│ │ │ ├── MenuHandler.cs
│ │ │ └── PopUpHandle.cs
│ ├── Form1.Designer.cs
│ ├── Form1.cs
│ ├── Form1.resx
│ ├── Lively.Player.CefSharp.csproj
│ ├── Program.cs
│ ├── Properties
│ │ ├── AssemblyInfo.cs
│ │ ├── Resources.Designer.cs
│ │ ├── Resources.resx
│ │ ├── Settings.Designer.cs
│ │ └── Settings.settings
│ ├── StartArgs.cs
│ ├── app.manifest
│ └── appicon.ico
├── Lively.Player.WebView2
│ ├── App.config
│ ├── Extensions
│ │ └── WebView2
│ │ │ ├── CoreWebView2Extensions.cs
│ │ │ └── DevToolsExtensions.cs
│ ├── Form1.Designer.cs
│ ├── Form1.cs
│ ├── Form1.resx
│ ├── Lively.Player.WebView2.csproj
│ ├── Program.cs
│ ├── Properties
│ │ ├── AssemblyInfo.cs
│ │ ├── Resources.Designer.cs
│ │ ├── Resources.resx
│ │ ├── Settings.Designer.cs
│ │ └── Settings.settings
│ ├── StartArgs.cs
│ └── app.manifest
├── Lively.Player.Wmf
│ ├── App.config
│ ├── App.xaml
│ ├── App.xaml.cs
│ ├── Lively.Player.Wmf.csproj
│ ├── MainWindow.xaml
│ ├── MainWindow.xaml.cs
│ ├── Properties
│ │ ├── AssemblyInfo.cs
│ │ ├── Resources.Designer.cs
│ │ ├── Resources.resx
│ │ ├── Settings.Designer.cs
│ │ └── Settings.settings
│ ├── StartArgs.cs
│ └── app.manifest
├── Lively.UI.Shared
│ ├── Helpers
│ │ ├── DesktopBridgeUtil.cs
│ │ └── WebViewUtil.cs
│ ├── Lively.UI.Shared.projitems
│ ├── Lively.UI.Shared.shproj
│ └── ViewModels
│ │ ├── AboutViewModel.cs
│ │ ├── AddWallpaperCreateViewModel.cs
│ │ ├── AddWallpaperDataViewModel.cs
│ │ ├── AddWallpaperViewModel.cs
│ │ ├── AppUpdateViewModel.cs
│ │ ├── ChooseDisplayViewModel.cs
│ │ ├── ControlPanel
│ │ ├── ControlPanelViewModel.cs
│ │ ├── ScreensaverLayoutViewModel.cs
│ │ └── WallpaperLayoutViewModel.cs
│ │ ├── CustomiseWallpaperViewModel.cs
│ │ ├── DepthEstimateWallpaperViewModel.cs
│ │ ├── Gallery
│ │ ├── GalleryLoginViewModel.cs
│ │ ├── GallerySubscriptionViewModel.cs
│ │ ├── GalleryViewModel.cs
│ │ ├── ManageAccountViewModel.cs
│ │ ├── ReportWallpaperViewModel.cs
│ │ └── RestoreWallpaperViewModel.cs
│ │ ├── LibraryAboutViewModel.cs
│ │ ├── LibraryViewModel.cs
│ │ ├── MainViewModel.cs
│ │ ├── PatreonSupportersViewModel.cs
│ │ ├── Settings
│ │ ├── AppThemeViewModel.cs
│ │ ├── FindMoreAppsViewModel.cs
│ │ ├── SettingsGeneralViewModel.cs
│ │ ├── SettingsPerformanceViewModel.cs
│ │ ├── SettingsScreensaverViewModel.cs
│ │ ├── SettingsSystemViewModel.cs
│ │ └── SettingsWallpaperViewModel.cs
│ │ └── ShareWallpaperViewModel.cs
├── Lively.UI.WinUI
│ ├── App.xaml
│ ├── App.xaml.cs
│ ├── Assets
│ │ ├── CustomIcons.ttf
│ │ ├── Icons
│ │ │ ├── icons8-error.svg
│ │ │ ├── icons8-info.svg
│ │ │ ├── icons8-ok.svg
│ │ │ └── icons8-warn.svg
│ │ ├── LargeTile.scale-100.png
│ │ ├── LargeTile.scale-125.png
│ │ ├── LargeTile.scale-150.png
│ │ ├── LargeTile.scale-200.png
│ │ ├── LargeTile.scale-400.png
│ │ ├── LockScreenLogo.scale-200.png
│ │ ├── SmallTile.scale-100.png
│ │ ├── SmallTile.scale-125.png
│ │ ├── SmallTile.scale-150.png
│ │ ├── SmallTile.scale-200.png
│ │ ├── SmallTile.scale-400.png
│ │ ├── SplashScreen.scale-100.png
│ │ ├── SplashScreen.scale-125.png
│ │ ├── SplashScreen.scale-150.png
│ │ ├── SplashScreen.scale-200.png
│ │ ├── SplashScreen.scale-400.png
│ │ ├── Square150x150Logo.scale-100.png
│ │ ├── Square150x150Logo.scale-125.png
│ │ ├── Square150x150Logo.scale-150.png
│ │ ├── Square150x150Logo.scale-200.png
│ │ ├── Square150x150Logo.scale-400.png
│ │ ├── Square44x44Logo.altform-lightunplated_targetsize-16.png
│ │ ├── Square44x44Logo.altform-lightunplated_targetsize-24.png
│ │ ├── Square44x44Logo.altform-lightunplated_targetsize-256.png
│ │ ├── Square44x44Logo.altform-lightunplated_targetsize-32.png
│ │ ├── Square44x44Logo.altform-lightunplated_targetsize-48.png
│ │ ├── Square44x44Logo.altform-unplated_targetsize-16.png
│ │ ├── Square44x44Logo.altform-unplated_targetsize-256.png
│ │ ├── Square44x44Logo.altform-unplated_targetsize-32.png
│ │ ├── Square44x44Logo.altform-unplated_targetsize-48.png
│ │ ├── Square44x44Logo.scale-100.png
│ │ ├── Square44x44Logo.scale-125.png
│ │ ├── Square44x44Logo.scale-150.png
│ │ ├── Square44x44Logo.scale-200.png
│ │ ├── Square44x44Logo.scale-400.png
│ │ ├── Square44x44Logo.targetsize-16.png
│ │ ├── Square44x44Logo.targetsize-24.png
│ │ ├── Square44x44Logo.targetsize-24_altform-unplated.png
│ │ ├── Square44x44Logo.targetsize-256.png
│ │ ├── Square44x44Logo.targetsize-32.png
│ │ ├── Square44x44Logo.targetsize-48.png
│ │ ├── StoreLogo.backup.png
│ │ ├── StoreLogo.scale-100.png
│ │ ├── StoreLogo.scale-125.png
│ │ ├── StoreLogo.scale-150.png
│ │ ├── StoreLogo.scale-200.png
│ │ ├── StoreLogo.scale-400.png
│ │ ├── Wide310x150Logo.scale-100.png
│ │ ├── Wide310x150Logo.scale-125.png
│ │ ├── Wide310x150Logo.scale-150.png
│ │ ├── Wide310x150Logo.scale-200.png
│ │ ├── Wide310x150Logo.scale-400.png
│ │ ├── banner-lively-1080.jpg
│ │ ├── changelog-page-preview.jpg
│ │ ├── icon-lively-48.png
│ │ ├── icons8-application-window-96.png
│ │ ├── icons8-artificial-intelligence-100.png
│ │ ├── icons8-cat-back-view-64.png
│ │ ├── icons8-depth-effect-96.png
│ │ ├── icons8-github-96.png
│ │ ├── icons8-google-96.png
│ │ ├── icons8-landscape-64.png
│ │ ├── icons8-mail-96.png
│ │ ├── icons8-panorama-96.png
│ │ ├── icons8-reddit-96.png
│ │ ├── icons8-twitter-96.png
│ │ ├── icons8-wallpaper-96.png
│ │ ├── icons8-youtube-96.png
│ │ ├── patreon-page-preview.jpg
│ │ └── tray-tutorial.gif
│ ├── Behaviors
│ │ ├── CheckBoxCheckedChangedBehavior.cs
│ │ ├── ComboBoxSelectionChangedBehavior.cs
│ │ ├── GridViewItemClickBehavior.cs
│ │ ├── SliderValueChangedBehavior.cs
│ │ └── TextBoxTextChangedBehavior.cs
│ ├── Directory.Build.props
│ ├── Extensions
│ │ ├── ColorExtensions.cs
│ │ ├── ContentDialogExtensions.cs
│ │ ├── WindowExtensions.cs
│ │ └── WindowsStoragePickersExtensions.cs
│ ├── Factories
│ │ ├── AppThemeFactory.cs
│ │ └── IAppThemeFactory.cs
│ ├── Helpers
│ │ ├── Converters
│ │ │ ├── AudioVolumeGlyphConverter.cs
│ │ │ ├── BoolToBackButtonVisibilityConverter.cs
│ │ │ ├── BoolToVisibilityConverter.cs
│ │ │ ├── FloatToBoolConverter.cs
│ │ │ ├── HexStringToColorConverter.cs
│ │ │ ├── ListViewSelectionModeStringToEnumConverter.cs
│ │ │ ├── NullVisibilityConverter.cs
│ │ │ ├── StringToInfoBarSeverityConverter.cs
│ │ │ ├── StringToInfoBarSeverityIconConverter.cs
│ │ │ ├── StringTruncateConverter.cs
│ │ │ ├── UriToBitmapImageConverter.cs
│ │ │ └── WallpaperTypeEnumToStringConverter.cs
│ │ ├── LivelyControlTemplateSelector.cs
│ │ ├── MicaCustomBackdrop.cs
│ │ └── NavigationMenuItemTemplateSelector.cs
│ ├── Lively.UI.WinUI.csproj
│ ├── Nlog.config
│ ├── Package.appxmanifest
│ ├── Services
│ │ ├── DialogService.cs
│ │ ├── DiskCacheService.cs
│ │ ├── DispatcherService.cs
│ │ ├── FileService.cs
│ │ ├── Navigator.cs
│ │ └── ResourceService.cs
│ ├── StartArgs.cs
│ ├── Strings
│ │ ├── af-ZA
│ │ │ └── Resources.resw
│ │ ├── ar-AE
│ │ │ └── Resources.resw
│ │ ├── az-Latn
│ │ │ └── Resources.resw
│ │ ├── be-BY
│ │ │ └── Resources.resw
│ │ ├── bg-BG
│ │ │ └── Resources.resw
│ │ ├── ca-ES
│ │ │ └── Resources.resw
│ │ ├── cs-CZ
│ │ │ └── Resources.resw
│ │ ├── da-DK
│ │ │ └── Resources.resw
│ │ ├── de-DE
│ │ │ └── Resources.resw
│ │ ├── el-GR
│ │ │ └── Resources.resw
│ │ ├── en-US
│ │ │ └── Resources.resw
│ │ ├── es-ES
│ │ │ └── Resources.resw
│ │ ├── es-MX
│ │ │ └── Resources.resw
│ │ ├── fa-IR
│ │ │ └── Resources.resw
│ │ ├── fi-FI
│ │ │ └── Resources.resw
│ │ ├── fil-PH
│ │ │ └── Resources.resw
│ │ ├── fr-FR
│ │ │ └── Resources.resw
│ │ ├── ga-IE
│ │ │ └── Resources.resw
│ │ ├── gl-ES
│ │ │ └── Resources.resw
│ │ ├── he-IL
│ │ │ └── Resources.resw
│ │ ├── hi-IN
│ │ │ └── Resources.resw
│ │ ├── hu-HU
│ │ │ └── Resources.resw
│ │ ├── id-ID
│ │ │ └── Resources.resw
│ │ ├── it-IT
│ │ │ └── Resources.resw
│ │ ├── ja-JP
│ │ │ └── Resources.resw
│ │ ├── kk-KZ
│ │ │ └── Resources.resw
│ │ ├── ko-KR
│ │ │ └── Resources.resw
│ │ ├── lt-LT
│ │ │ └── Resources.resw
│ │ ├── ms-MY
│ │ │ └── Resources.resw
│ │ ├── my-MM
│ │ │ └── Resources.resw
│ │ ├── nb-NO
│ │ │ └── Resources.resw
│ │ ├── nl-NL
│ │ │ └── Resources.resw
│ │ ├── pl-PL
│ │ │ └── Resources.resw
│ │ ├── pt-BR
│ │ │ └── Resources.resw
│ │ ├── pt-PT
│ │ │ └── Resources.resw
│ │ ├── ro-RO
│ │ │ └── Resources.resw
│ │ ├── ru-RU
│ │ │ └── Resources.resw
│ │ ├── sk-SK
│ │ │ └── Resources.resw
│ │ ├── sr-Cyrl
│ │ │ └── Resources.resw
│ │ ├── sr-Latn
│ │ │ └── Resources.resw
│ │ ├── sv-SE
│ │ │ └── Resources.resw
│ │ ├── tr-TR
│ │ │ └── Resources.resw
│ │ ├── uk-UA
│ │ │ └── Resources.resw
│ │ ├── vi-VN
│ │ │ └── Resources.resw
│ │ ├── zh-CN
│ │ │ └── Resources.resw
│ │ └── zh-Hant
│ │ │ └── Resources.resw
│ ├── UserControls
│ │ ├── ColorPickerButton.xaml
│ │ ├── ColorPickerButton.xaml.cs
│ │ ├── DisplaySelector.xaml
│ │ ├── DisplaySelector.xaml.cs
│ │ ├── FolderDropdown.xaml
│ │ └── FolderDropdown.xaml.cs
│ ├── Views
│ │ ├── LivelyProperty
│ │ │ ├── EyeDropper.xaml
│ │ │ ├── EyeDropper.xaml.cs
│ │ │ ├── LivelyPropertiesTray.xaml
│ │ │ ├── LivelyPropertiesTray.xaml.cs
│ │ │ ├── LivelyPropertiesView.xaml
│ │ │ └── LivelyPropertiesView.xaml.cs
│ │ ├── MainWindow.xaml
│ │ ├── MainWindow.xaml.cs
│ │ └── Pages
│ │ │ ├── AboutView.xaml
│ │ │ ├── AboutView.xaml.cs
│ │ │ ├── AddWallpaperCreateView.xaml
│ │ │ ├── AddWallpaperCreateView.xaml.cs
│ │ │ ├── AddWallpaperDataView.xaml
│ │ │ ├── AddWallpaperDataView.xaml.cs
│ │ │ ├── AddWallpaperView.xaml
│ │ │ ├── AddWallpaperView.xaml.cs
│ │ │ ├── AppThemeView.xaml
│ │ │ ├── AppThemeView.xaml.cs
│ │ │ ├── AppUpdateView.xaml
│ │ │ ├── AppUpdateView.xaml.cs
│ │ │ ├── ChooseDisplayView.xaml
│ │ │ ├── ChooseDisplayView.xaml.cs
│ │ │ ├── ControlPanel
│ │ │ ├── ControlPanelView.xaml
│ │ │ ├── ControlPanelView.xaml.cs
│ │ │ ├── ScreensaverLayoutView.xaml
│ │ │ ├── ScreensaverLayoutView.xaml.cs
│ │ │ ├── WallpaperLayoutCustomiseView.xaml
│ │ │ ├── WallpaperLayoutCustomiseView.xaml.cs
│ │ │ ├── WallpaperLayoutView.xaml
│ │ │ └── WallpaperLayoutView.xaml.cs
│ │ │ ├── DepthEstimateWallpaperView.xaml
│ │ │ ├── DepthEstimateWallpaperView.xaml.cs
│ │ │ ├── Gallery
│ │ │ ├── GalleryFeaturedView.xaml
│ │ │ ├── GalleryFeaturedView.xaml.cs
│ │ │ ├── GalleryLibraryView.xaml
│ │ │ ├── GalleryLibraryView.xaml.cs
│ │ │ ├── GalleryLoginView.xaml
│ │ │ ├── GalleryLoginView.xaml.cs
│ │ │ ├── GallerySubscriptionView.xaml
│ │ │ ├── GallerySubscriptionView.xaml.cs
│ │ │ ├── GalleryView.xaml
│ │ │ ├── GalleryView.xaml.cs
│ │ │ ├── ManageAccountView.xaml
│ │ │ ├── ManageAccountView.xaml.cs
│ │ │ ├── ReportWallpaperView.xaml
│ │ │ ├── ReportWallpaperView.xaml.cs
│ │ │ ├── RestoreWallpaperView.xaml
│ │ │ ├── RestoreWallpaperView.xaml.cs
│ │ │ ├── ShareWallpaperView.xaml
│ │ │ └── ShareWallpaperView.xaml.cs
│ │ │ ├── HelpView.xaml
│ │ │ ├── HelpView.xaml.cs
│ │ │ ├── LibraryAboutView.xaml
│ │ │ ├── LibraryAboutView.xaml.cs
│ │ │ ├── LibraryView.xaml
│ │ │ ├── LibraryView.xaml.cs
│ │ │ ├── PatreonSupportersView.xaml
│ │ │ ├── PatreonSupportersView.xaml.cs
│ │ │ ├── Settings
│ │ │ ├── FindMoreAppsView.xaml
│ │ │ ├── FindMoreAppsView.xaml.cs
│ │ │ ├── SettingsGeneralView.xaml
│ │ │ ├── SettingsGeneralView.xaml.cs
│ │ │ ├── SettingsPerformanceView.xaml
│ │ │ ├── SettingsPerformanceView.xaml.cs
│ │ │ ├── SettingsScreensaverView.xaml
│ │ │ ├── SettingsScreensaverView.xaml.cs
│ │ │ ├── SettingsSystemView.xaml
│ │ │ ├── SettingsSystemView.xaml.cs
│ │ │ ├── SettingsWallpaperView.xaml
│ │ │ └── SettingsWallpaperView.xaml.cs
│ │ │ ├── TrayMenuHelp.xaml
│ │ │ └── TrayMenuHelp.xaml.cs
│ ├── app.manifest
│ └── appicon.ico
├── Lively.Utility.Commandline
│ ├── Lively.Utility.Commandline.csproj
│ └── Program.cs
├── Lively.Utility.ConsoleDemo
│ ├── Lively.Utility.ConsoleDemo.csproj
│ └── Program.cs
├── Lively.Utility.Screensaver
│ ├── App.config
│ ├── Com
│ │ ├── ApplicationActivationManager.cs
│ │ └── IApplicationActivationManager.cs
│ ├── Lively.Utility.Screensaver.csproj
│ ├── Program.cs
│ └── Properties
│ │ └── AssemblyInfo.cs
├── Lively.Utility.Watchdog
│ ├── App.config
│ ├── Lively.Utility.Watchdog.csproj
│ ├── Program.cs
│ └── Properties
│ │ └── AssemblyInfo.cs
├── Lively.sln
└── Lively
│ ├── App.xaml
│ ├── App.xaml.cs
│ ├── AssemblyInfo.cs
│ ├── Commandline
│ ├── CommandHandler.cs
│ └── ICommandHandler.cs
│ ├── Converters
│ ├── BoolToVisibilityConverter.cs
│ └── TaskbarProgressConverter.cs
│ ├── Core
│ ├── Display
│ │ ├── DisplayManager.cs
│ │ └── IDisplayManager.cs
│ ├── IDesktopCore.cs
│ ├── IWallpaper.cs
│ ├── Suspend
│ │ ├── IPlayback.cs
│ │ ├── Playback.cs
│ │ └── VolumeMixer.cs
│ ├── Wallpapers
│ │ ├── DwmThumbnailPlayer.cs
│ │ ├── ExtPrograms.cs
│ │ ├── PictureWinAPI.cs
│ │ ├── VideoMpvPlayer.cs
│ │ ├── VideoVlcPlayer.cs
│ │ ├── VideoWmfProcess.cs
│ │ ├── WebCefSharpProcess.cs
│ │ └── WebWebView2.cs
│ ├── Watchdog
│ │ ├── IWatchdogService.cs
│ │ └── WatchdogProcess.cs
│ └── WinDesktopCore.cs
│ ├── Extensions
│ ├── LocalizedStringExtension.cs
│ └── WindowExtensions.cs
│ ├── Factories
│ ├── ILivelyPropertyFactory.cs
│ ├── IWallpaperPluginFactory.cs
│ ├── LivelyPropertyFactory.cs
│ └── WallpaperPluginFactory.cs
│ ├── Helpers
│ ├── CaptureScreen.cs
│ ├── DesktopBridgeUtil.cs
│ ├── ThemeUtil.cs
│ ├── WindowsStartup.cs
│ └── WpfUtil.cs
│ ├── Lively.csproj
│ ├── Nlog.config
│ ├── Properties
│ ├── Icons.Designer.cs
│ ├── Icons.resx
│ ├── Resources.Designer.cs
│ ├── Resources.af-ZA.resx
│ ├── Resources.ar-AE.resx
│ ├── Resources.az-Latn.resx
│ ├── Resources.be-BY.resx
│ ├── Resources.bg-BG.resx
│ ├── Resources.ca-ES.resx
│ ├── Resources.cs-CZ.resx
│ ├── Resources.da-DK.resx
│ ├── Resources.de-DE.resx
│ ├── Resources.el-GR.resx
│ ├── Resources.es-ES.resx
│ ├── Resources.es-MX.resx
│ ├── Resources.fa-IR.resx
│ ├── Resources.fi-FI.resx
│ ├── Resources.fil-PH.resx
│ ├── Resources.fr-FR.resx
│ ├── Resources.ga-IE.resx
│ ├── Resources.gl-ES.resx
│ ├── Resources.he-IL.resx
│ ├── Resources.hi-IN.resx
│ ├── Resources.hu-HU.resx
│ ├── Resources.id-ID.resx
│ ├── Resources.it-IT.resx
│ ├── Resources.ja-JP.resx
│ ├── Resources.kk-KZ.resx
│ ├── Resources.ko-KR.resx
│ ├── Resources.lt-LT.resx
│ ├── Resources.ms-MY.resx
│ ├── Resources.my-MM.resx
│ ├── Resources.nb-NO.resx
│ ├── Resources.nl-NL.resx
│ ├── Resources.pl-PL.resx
│ ├── Resources.pt-BR.resx
│ ├── Resources.pt-PT.resx
│ ├── Resources.resx
│ ├── Resources.ro-RO.resx
│ ├── Resources.ru-RU.resx
│ ├── Resources.sk-SK.resx
│ ├── Resources.sr-Cyrl.resx
│ ├── Resources.sr-Latn.resx
│ ├── Resources.sv-SE.resx
│ ├── Resources.tr-TR.resx
│ ├── Resources.uk-UA.resx
│ ├── Resources.vi-VN.resx
│ ├── Resources.zh-CN.resx
│ └── Resources.zh-Hant.resx
│ ├── RPC
│ ├── AppUpdateServer.cs
│ ├── CommandsServer.cs
│ ├── DisplayManagerServer.cs
│ ├── UserSettingsServer.cs
│ ├── WallpaperPlaylistServer.cs
│ └── WinDesktopCoreServer.cs
│ ├── Resources
│ ├── appicon.ico
│ ├── appicon_96.png
│ ├── icons8-application-window-96.png
│ ├── icons8-close-96.png
│ ├── icons8-home-screen-96.png
│ ├── icons8-website-bug-96.png
│ └── splash.png
│ ├── Services
│ ├── ResourceService.cs
│ ├── RunnerService.cs
│ ├── ScreensaverService.cs
│ ├── Systray.cs
│ ├── TranslucentTBService.cs
│ ├── UserSettingsService.cs
│ └── WallpaperPlaylistService.cs
│ ├── Themes
│ ├── Dark.xaml
│ ├── Light.xaml
│ ├── ToolStripRendererDark.cs
│ └── ToolStripRendererLight.cs
│ ├── ViewModels
│ └── LibraryPreviewViewModel.cs
│ ├── Views
│ ├── BlankWindow.xaml
│ ├── BlankWindow.xaml.cs
│ ├── DebugLog.xaml
│ ├── DebugLog.xaml.cs
│ ├── DiagnosticMenu.xaml
│ ├── DiagnosticMenu.xaml.cs
│ ├── DwmThumbnailWindow.xaml
│ ├── DwmThumbnailWindow.xaml.cs
│ ├── LibraryPreview.xaml
│ ├── LibraryPreview.xaml.cs
│ ├── ScreenSaverPreview.xaml
│ ├── ScreenSaverPreview.xaml.cs
│ ├── SplashWindow.xaml
│ ├── SplashWindow.xaml.cs
│ ├── TransparentWindow.xaml
│ ├── TransparentWindow.xaml.cs
│ ├── WallpaperPreview.xaml
│ ├── WallpaperPreview.xaml.cs
│ └── WindowMsg
│ │ ├── RawInputMsgWindow.xaml
│ │ ├── RawInputMsgWindow.xaml.cs
│ │ ├── WndProcMsgWindow.xaml
│ │ └── WndProcMsgWindow.xaml.cs
│ ├── app.manifest
│ └── appicon.ico
└── installer
├── Icons
└── appicon_96.ico
├── Languages
├── Arabic.isl
├── ChineseSimplified.isl
├── ChineseTraditional.isl
├── Greek.isl
├── Indonesian.isl
├── Korean.isl
├── Lithuanian.isl
├── SerbianCyrillic.isl
├── SerbianLatin.isl
├── Swedish.isl
└── Vietnamese.isl
├── License
└── License.txt
├── Script.iss
├── Script_x64.iss
└── Theme
├── wizard_large.bmp
└── wizard_small.bmp
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 |
3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
4 | patreon: rocksdanister
5 | open_collective: # Replace with a single Open Collective username
6 | ko_fi: # Replace with kofi username
7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9 | liberapay: # Replace with a single Liberapay username
10 | issuehunt: # Replace with a single IssueHunt username
11 | otechie: # Replace with a single Otechie username
12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
13 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature_request.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Feature request
3 | about: Suggest an idea for this project
4 | title: ''
5 | labels: enhancement
6 | assignees: ''
7 |
8 | ---
9 |
10 | **Is your feature request related to a problem? Please describe.**
11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12 |
13 | **Describe the solution you'd like**
14 | A clear and concise description of what you want to happen.
15 |
16 | **Describe alternatives you've considered**
17 | A clear and concise description of any alternative solutions or features you've considered.
18 |
19 | **Additional context**
20 | Add any other context or screenshots/mockups about the feature request here.
21 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | https://github.com/rocksdanister/lively/wiki/Contributing-Guidelines
2 |
--------------------------------------------------------------------------------
/SECURITY.md:
--------------------------------------------------------------------------------
1 | # Security Policy
2 |
3 | ## Supported Versions
4 |
5 | Only the latest release of Lively will be provided with security patches, old releases will not be patched or supported.
6 |
7 | ## Reporting a Vulnerability
8 |
9 | Report to Awoo.git@gmail.com with the title `Security vulnerability (Lively)`
10 |
11 | If I'm free you will get reply within 48 hours.
12 |
13 | If the issue is confirmed, a new release with the patch is published as soon as possible depending on complexity of the issue.
14 |
--------------------------------------------------------------------------------
/resources/cmd_rm.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/resources/cmd_rm.gif
--------------------------------------------------------------------------------
/resources/figma_promo_16x9.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/resources/figma_promo_16x9.jpg
--------------------------------------------------------------------------------
/resources/hw_api.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/resources/hw_api.gif
--------------------------------------------------------------------------------
/resources/main_dragdrop.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/resources/main_dragdrop.gif
--------------------------------------------------------------------------------
/resources/main_preview.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/resources/main_preview.gif
--------------------------------------------------------------------------------
/resources/music_api.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/resources/music_api.gif
--------------------------------------------------------------------------------
/resources/rotary_demo.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/resources/rotary_demo.gif
--------------------------------------------------------------------------------
/resources/screen_saver.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/resources/screen_saver.gif
--------------------------------------------------------------------------------
/resources/taskbar_theme.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/resources/taskbar_theme.gif
--------------------------------------------------------------------------------
/resources/wallpaper_depth.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/resources/wallpaper_depth.gif
--------------------------------------------------------------------------------
/resources/wallpaper_emulator.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/resources/wallpaper_emulator.gif
--------------------------------------------------------------------------------
/resources/wallpaper_gif.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/resources/wallpaper_gif.gif
--------------------------------------------------------------------------------
/resources/wallpaper_html.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/resources/wallpaper_html.gif
--------------------------------------------------------------------------------
/resources/wallpaper_shadertoy.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/resources/wallpaper_shadertoy.gif
--------------------------------------------------------------------------------
/resources/wallpaper_unity.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/resources/wallpaper_unity.gif
--------------------------------------------------------------------------------
/resources/wallpaper_video.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/resources/wallpaper_video.gif
--------------------------------------------------------------------------------
/src/Lively/Lively.Common.Services/Lively.Common.Services.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Library
5 | net8.0;net472
6 | 9.0
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Common/Com/IApplicationActivationManager.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Runtime.InteropServices;
3 |
4 | // Copyright (c) Microsoft Corporation
5 | // The Microsoft Corporation licenses this file to you under the MIT license.
6 | // See the LICENSE file in the project root for more information.
7 | // Ref: https://github.com/microsoft/PowerToys/blob/main/src/modules/launcher/Plugins/Microsoft.Plugin.Program/Programs/IApplicationActivationManager.cs
8 | namespace Lively.Common.Com
9 | {
10 | [ComImport]
11 | [Guid("2e941141-7f97-4756-ba1d-9decde894a3d")]
12 | [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
13 | public interface IApplicationActivationManager
14 | {
15 | IntPtr ActivateApplication([In] string appUserModelId, [In] string arguments, [In] ActivateOptions options, [Out] out uint processId);
16 | IntPtr ActivateForFile([In] string appUserModelId, [In] IntPtr /*IShellItemArray* */ itemArray, [In] string verb, [Out] out uint processId);
17 | IntPtr ActivateForProtocol([In] string appUserModelId, [In] IntPtr /* IShellItemArray* */itemArray, [Out] out uint processId);
18 | }
19 |
20 | [Flags]
21 | public enum ActivateOptions
22 | {
23 | None = 0x00000000,
24 | DesignMode = 0x00000001,
25 | NoErrorUI = 0x00000002,
26 | NoSplashScreen = 0x00000004,
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Common/Exceptions/ScreenNotFoundException.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Lively.Common.Exceptions;
4 |
5 | public class ScreenNotFoundException : Exception
6 | {
7 | public ScreenNotFoundException()
8 | {
9 | }
10 |
11 | public ScreenNotFoundException(string message)
12 | : base(message)
13 | {
14 | }
15 |
16 | public ScreenNotFoundException(string message, Exception inner)
17 | : base(message, inner)
18 | {
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Common/Exceptions/WallpaperFileException.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 |
5 | namespace Lively.Common.Exceptions
6 | {
7 | public class WallpaperFileException : Exception
8 | {
9 | public WallpaperFileException()
10 | {
11 | }
12 |
13 | public WallpaperFileException(string message)
14 | : base(message)
15 | {
16 | }
17 |
18 | public WallpaperFileException(string message, Exception inner)
19 | : base(message, inner)
20 | {
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Common/Exceptions/WallpaperNotAllowedException.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Lively.Common.Exceptions;
4 |
5 | public class WallpaperNotAllowedException : Exception
6 | {
7 | public WallpaperNotAllowedException()
8 | {
9 | }
10 |
11 | public WallpaperNotAllowedException(string message)
12 | : base(message)
13 | {
14 | }
15 |
16 | public WallpaperNotAllowedException(string message, Exception inner)
17 | : base(message, inner)
18 | {
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Common/Exceptions/WallpaperNotFoundException.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Lively.Common.Exceptions;
4 |
5 | public class WallpaperNotFoundException : Exception
6 | {
7 | public WallpaperNotFoundException()
8 | {
9 | }
10 |
11 | public WallpaperNotFoundException(string message)
12 | : base(message)
13 | {
14 | }
15 |
16 | public WallpaperNotFoundException(string message, Exception inner)
17 | : base(message, inner)
18 | {
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Common/Exceptions/WallpaperPluginException.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Lively.Common.Exceptions;
4 |
5 | public class WallpaperPluginException : Exception
6 | {
7 | public WallpaperPluginException()
8 | {
9 | }
10 |
11 | public WallpaperPluginException(string message)
12 | : base(message)
13 | {
14 | }
15 |
16 | public WallpaperPluginException(string message, Exception inner)
17 | : base(message, inner)
18 | {
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Common/Exceptions/WallpaperPluginMediaCodecException.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Lively.Common.Exceptions;
4 |
5 | ///
6 | /// Windows N/KN codec missing.
7 | ///
8 | public class WallpaperPluginMediaCodecException : Exception
9 | {
10 | public WallpaperPluginMediaCodecException()
11 | {
12 | }
13 |
14 | public WallpaperPluginMediaCodecException(string message)
15 | : base(message)
16 | {
17 | }
18 |
19 | public WallpaperPluginMediaCodecException(string message, Exception inner)
20 | : base(message, inner)
21 | {
22 | }
23 | }
--------------------------------------------------------------------------------
/src/Lively/Lively.Common/Exceptions/WallpaperPluginNotFoundException.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Lively.Common.Exceptions;
4 |
5 | public class WallpaperPluginNotFoundException : Exception
6 | {
7 | public WallpaperPluginNotFoundException()
8 | {
9 | }
10 |
11 | public WallpaperPluginNotFoundException(string message)
12 | : base(message)
13 | {
14 | }
15 |
16 | public WallpaperPluginNotFoundException(string message, Exception inner)
17 | : base(message, inner)
18 | {
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Common/Exceptions/WallpaperWebView2NotFoundException.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Lively.Common.Exceptions;
4 |
5 | public class WallpaperWebView2NotFoundException : Exception
6 | {
7 | public WallpaperWebView2NotFoundException()
8 | {
9 | }
10 |
11 | public WallpaperWebView2NotFoundException(string message)
12 | : base(message)
13 | {
14 | }
15 |
16 | public WallpaperWebView2NotFoundException(string message, Exception inner)
17 | : base(message, inner)
18 | {
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Common/Exceptions/WorkerWException.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Lively.Common.Exceptions;
4 |
5 | public class WorkerWException : Exception
6 | {
7 | public WorkerWException()
8 | {
9 | }
10 |
11 | public WorkerWException(string message)
12 | : base(message)
13 | {
14 | }
15 |
16 | public WorkerWException(string message, Exception inner)
17 | : base(message, inner)
18 | {
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Common/Extensions/EnumExtensions.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Linq;
3 | using System.Runtime.Serialization;
4 |
5 | namespace Lively.Common.Extensions
6 | {
7 | public static class EnumExtensions
8 | {
9 | public static string GetAttrValue(this T enumVal) where T : Enum
10 | {
11 | var enumType = typeof(T);
12 | var memInfo = enumType.GetMember(enumVal.ToString());
13 | var attr = memInfo.FirstOrDefault()?.GetCustomAttributes(false).OfType().FirstOrDefault();
14 | return attr?.Value;
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Common/Extensions/WallpaperExtensions.cs:
--------------------------------------------------------------------------------
1 | using Lively.Models.Enums;
2 |
3 | namespace Lively.Common.Extensions
4 | {
5 | public static class WallpaperExtensions
6 | {
7 | public static bool IsOnlineWallpaper(this WallpaperType type) =>
8 | type == WallpaperType.url || type == WallpaperType.videostream;
9 |
10 | public static bool IsWebWallpaper(this WallpaperType type) =>
11 | type == WallpaperType.web || type == WallpaperType.webaudio || type == WallpaperType.url;
12 |
13 | public static bool IsVideoWallpaper(this WallpaperType type) =>
14 | type == WallpaperType.video || type == WallpaperType.videostream;
15 |
16 | public static bool IsApplicationWallpaper(this WallpaperType type) =>
17 | type == WallpaperType.unity || type == WallpaperType.unityaudio || type == WallpaperType.app || type == WallpaperType.godot || type == WallpaperType.bizhawk;
18 |
19 | ///
20 | /// Picture, gif and other non dynamic format
21 | ///
22 | public static bool IsMediaWallpaper(this WallpaperType type) =>
23 | IsVideoWallpaper(type) || type == WallpaperType.gif || type == WallpaperType.picture;
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Common/Factories/ApplicationsRulesFactory.cs:
--------------------------------------------------------------------------------
1 | using Lively.Models;
2 | using Lively.Models.Enums;
3 | using System.IO;
4 |
5 | namespace Lively.Common.Factories
6 | {
7 | public class ApplicationsRulesFactory : IApplicationsRulesFactory
8 | {
9 | public ApplicationRulesModel CreateAppPauseRule(string appPath, AppRules rule)
10 | {
11 | var fileName = Path.GetFileNameWithoutExtension(appPath);
12 | return new ApplicationRulesModel(fileName, rule);
13 | }
14 |
15 | public AppMusicExclusionRuleModel CreateAppMusicExclusionRule(string appPath)
16 | {
17 | var fileName = Path.GetFileNameWithoutExtension(appPath);
18 | return new AppMusicExclusionRuleModel(fileName, appPath);
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Common/Factories/IApplicationsFactory.cs:
--------------------------------------------------------------------------------
1 | using Lively.Models;
2 | using System.Diagnostics;
3 |
4 | namespace Lively.Common.Factories
5 | {
6 | public interface IApplicationsFactory
7 | {
8 | ApplicationModel CreateApp(Process process);
9 | ApplicationModel CreateApp(string path);
10 | }
11 | }
--------------------------------------------------------------------------------
/src/Lively/Lively.Common/Factories/IApplicationsRulesFactory.cs:
--------------------------------------------------------------------------------
1 | using Lively.Models;
2 | using Lively.Models.Enums;
3 |
4 | namespace Lively.Common.Factories
5 | {
6 | public interface IApplicationsRulesFactory
7 | {
8 | ApplicationRulesModel CreateAppPauseRule(string appPath, AppRules rule);
9 |
10 | AppMusicExclusionRuleModel CreateAppMusicExclusionRule(string appPath);
11 | }
12 | }
--------------------------------------------------------------------------------
/src/Lively/Lively.Common/Factories/IWallpaperLibraryFactory.cs:
--------------------------------------------------------------------------------
1 | using Lively.Models;
2 |
3 | namespace Lively.Common.Factories
4 | {
5 | public interface IWallpaperLibraryFactory
6 | {
7 | LivelyInfoModel GetMetadata(string folderPath);
8 | LibraryModel CreateFromDirectory(string folderPath);
9 | LibraryModel CreateFromMetadata(LivelyInfoModel metadata);
10 | }
11 | }
--------------------------------------------------------------------------------
/src/Lively/Lively.Common/Helpers/BuildInfoUtil.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 |
5 | namespace Lively.Common.Helpers
6 | {
7 | public static class BuildInfoUtil
8 | {
9 | [System.Diagnostics.CodeAnalysis.SuppressMessage("Minor Code Smell", "S3400:Methods should not return constants", Justification = "Value changes based on build setting.")]
10 | public static bool IsDebugBuild()
11 | {
12 | #if DEBUG
13 | return true;
14 | #else
15 | return false;
16 | #endif
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Common/Helpers/IPC/PipeClient.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.IO.Pipes;
5 | using System.Text;
6 |
7 | namespace Lively.Common.Helpers.IPC
8 | {
9 | public class PipeClient
10 | {
11 | public static void SendMessage(string channelName, string msg)
12 | {
13 | using var pipeClient = new NamedPipeClientStream(".", channelName, PipeDirection.Out);
14 | pipeClient.Connect(0);
15 | var writer = new StreamWriter(pipeClient) { AutoFlush = true };
16 | writer.Write(msg);
17 | writer.Flush();
18 | writer.Close();
19 | pipeClient.Dispose();
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Common/Helpers/Storage/JsonUtil.cs:
--------------------------------------------------------------------------------
1 | using System.IO;
2 | using Newtonsoft.Json;
3 | using Newtonsoft.Json.Linq;
4 |
5 | namespace Lively.Common.Helpers.Storage
6 | {
7 | public class JsonUtil
8 | {
9 | public static void Write(string path, JObject rss)
10 | {
11 | File.WriteAllText(path, rss.ToString());
12 | }
13 |
14 | public static JObject ReadJObject(string path)
15 | {
16 | var json = File.ReadAllText(path);
17 | return JObject.Parse(json);
18 | }
19 |
20 | public static JToken ReadJToken(string path)
21 | {
22 | var json = File.ReadAllText(path);
23 | return JToken.Parse(json);
24 | }
25 |
26 | public static string Serialize(object obj)
27 | {
28 | return JsonConvert.SerializeObject(obj);
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Common/Lively.Common.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netstandard2.0
5 | latest
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Common/Services/IAppUpdaterService.cs:
--------------------------------------------------------------------------------
1 | using Lively.Models.Services;
2 | using System;
3 | using System.Threading.Tasks;
4 |
5 | namespace Lively.Common.Services
6 | {
7 | public interface IAppUpdaterService
8 | {
9 | DateTime LastCheckTime { get; }
10 | Uri LastCheckUri { get; }
11 | string LastCheckFileName {get;}
12 | Version LastCheckVersion { get; }
13 | AppUpdateStatus Status { get; }
14 |
15 | event EventHandler UpdateChecked;
16 |
17 | Task CheckUpdate(int fetchDelay);
18 | void Start();
19 | void Stop();
20 | }
21 | }
--------------------------------------------------------------------------------
/src/Lively/Lively.Common/Services/IAudioVisualizerService.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Lively.Common.Services
4 | {
5 | public interface IAudioVisualizerService : IDisposable
6 | {
7 | event EventHandler AudioDataAvailable;
8 | void Start();
9 | void Stop();
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Common/Services/ICacheService.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Threading.Tasks;
3 |
4 | namespace Lively.Common.Services
5 | {
6 | public interface ICacheService
7 | {
8 | Task GetFileFromCacheAsync(Uri uri, bool throwException = false);
9 | void RemoveExpired();
10 | }
11 | }
--------------------------------------------------------------------------------
/src/Lively/Lively.Common/Services/IDispatcherService.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Lively.Common.Services
4 | {
5 | public interface IDispatcherService
6 | {
7 | bool TryEnqueue(Action action);
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Common/Services/IDownloadService.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Threading;
3 | using System.Threading.Tasks;
4 |
5 | namespace Lively.Common.Services
6 | {
7 | public interface IDownloadService
8 | {
9 | ///
10 | /// Downloads a file from the specified URL to the given file path.
11 | ///
12 | /// The file download uri.
13 | /// The destination file path.
14 | /// Reports progress.
15 | /// The first parameter is the downloaded size in MB, and the second is the total size in MB.
16 | /// A token to cancel the download operation.
17 | /// A Task that completes when the download is finished, or throws an exception on failure.
18 | Task DownloadFile(Uri url, string filePath, IProgress<(double downloaded, double total)> progress, CancellationToken cancellationToken);
19 |
20 | ///
21 | /// Downloads a file from the specified URL to the given file path.
22 | ///
23 | /// The file download uri.
24 | /// The destination file path.
25 | Task DownloadFile(Uri url, string filePath);
26 | }
27 | }
--------------------------------------------------------------------------------
/src/Lively/Lively.Common/Services/IFileService.cs:
--------------------------------------------------------------------------------
1 | using Lively.Models.Enums;
2 | using System.Collections.Generic;
3 | using System.Threading.Tasks;
4 |
5 | namespace Lively.Common.Services
6 | {
7 | public interface IFileService
8 | {
9 | public Task> PickFileAsync(string[] filters, bool multipleFile = false);
10 |
11 | public Task> PickFileAsync(WallpaperType type, bool multipleFile = false);
12 |
13 | public Task> PickWallpaperFile(bool multipleFile = false);
14 |
15 | public Task PickFolderAsync(string[] filters);
16 |
17 | public Task PickSaveFileAsync(string suggestedFileName, IDictionary> fileTypeChoices);
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Common/Services/IHardwareUsageService.cs:
--------------------------------------------------------------------------------
1 | using Lively.Models.Services;
2 | using System;
3 |
4 | namespace Lively.Common.Services
5 | {
6 | public interface IHardwareUsageService
7 | {
8 | event EventHandler HWMonitor;
9 |
10 | void Start();
11 | void Stop();
12 | }
13 | }
--------------------------------------------------------------------------------
/src/Lively/Lively.Common/Services/INavigator.cs:
--------------------------------------------------------------------------------
1 | using Lively.Models.Enums;
2 | using System;
3 |
4 | namespace Lively.Common.Services
5 | {
6 | public interface INavigator
7 | {
8 | ///
9 | /// Raised when the content page was changed.
10 | ///
11 | event EventHandler? ContentPageChanged;
12 |
13 | ///
14 | /// The root frame of the app.
15 | ///
16 | object? RootFrame { get; set; }
17 |
18 | ///
19 | /// The inner frame that can navigate. This must be set before
20 | /// any method is called.
21 | ///
22 | object? Frame { get; set; }
23 |
24 | ///
25 | /// Returns the current page type.
26 | ///
27 | ContentPageType? CurrentPage { get; }
28 |
29 | ///
30 | /// Navigates to the page corresponding to the given enum.
31 | ///
32 | /// The page to navigate to.
33 | /// Arguments to be passed to the new page during navigation.
34 | void NavigateTo(ContentPageType contentPage, object? navArgs = null);
35 |
36 | ///
37 | /// Reload the current page.
38 | ///
39 | void Reload();
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Common/Services/INowPlayingService.cs:
--------------------------------------------------------------------------------
1 | using Lively.Models.Services;
2 | using System;
3 |
4 | namespace Lively.Common.Services
5 | {
6 | public interface INowPlayingService
7 | {
8 | event EventHandler NowPlayingTrackChanged;
9 | NowPlayingEventArgs CurrentTrack { get; }
10 | void Start();
11 | void Stop();
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Common/Services/IResourceService.cs:
--------------------------------------------------------------------------------
1 | using Lively.Models.Enums;
2 | using System;
3 |
4 | namespace Lively.Common.Services
5 | {
6 | public interface IResourceService
7 | {
8 | event EventHandler CultureChanged;
9 |
10 | string GetString(string resource);
11 | string GetString(WallpaperType type);
12 | void SetCulture(string name);
13 | void SetSystemDefaultCulture();
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Common/Services/IRunnerService.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Lively.Common.Services
4 | {
5 | public interface IRunnerService : IDisposable
6 | {
7 | IntPtr HwndUI { get; }
8 | void ShowUI();
9 | void CloseUI();
10 | void RestartUI(string startArgs = null);
11 | void SetBusyUI(bool isBusy);
12 | void ShowCustomisWallpaperePanel();
13 | void ShowAppUpdatePage();
14 | bool IsVisibleUI { get; }
15 | void SaveRectUI();
16 | }
17 | }
--------------------------------------------------------------------------------
/src/Lively/Lively.Common/Services/IScreensaverService.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Threading.Tasks;
3 |
4 | namespace Lively.Common.Services
5 | {
6 | public interface IScreensaverService
7 | {
8 | ScreensaverApplyMode Mode { get; }
9 | bool IsRunning { get; }
10 |
11 | void CreatePreview(IntPtr hwnd);
12 | Task StartAsync(bool isFadeIn);
13 | void StartIdleTimer(uint idleTime);
14 | void Stop();
15 | void StopIdleTimer();
16 |
17 | event EventHandler Stopped;
18 | }
19 |
20 | public enum ScreensaverApplyMode
21 | {
22 | ///
23 | /// Use the currently running wallpaper window itself.
24 | ///
25 | wallpaper,
26 | ///
27 | /// Create a new running wallpaper process.
28 | /// This is the only mode with support for running screensaver different from wallpaper.
29 | ///
30 | process,
31 | ///
32 | /// Use DwmThumnail API.
33 | /// Does not work in Windows Screensaver mode.
34 | ///
35 | dwmThumbnail,
36 | }
37 | }
--------------------------------------------------------------------------------
/src/Lively/Lively.Common/Services/ISystray.cs:
--------------------------------------------------------------------------------
1 | using Lively.Models.Enums;
2 | using System;
3 |
4 | namespace Lively.Common.Services
5 | {
6 | public interface ISystray : IDisposable
7 | {
8 | void SetTheme(AppTheme theme);
9 | void ShowBalloonNotification(int timeout, string title, string msg);
10 | void Visibility(bool visible);
11 | }
12 | }
--------------------------------------------------------------------------------
/src/Lively/Lively.Common/Services/ITransparentTbService.cs:
--------------------------------------------------------------------------------
1 | using Lively.Models.Enums;
2 | using System;
3 | using System.Drawing;
4 |
5 | namespace Lively.Common.Services
6 | {
7 | public interface ITransparentTbService : IDisposable
8 | {
9 | bool IsRunning { get; }
10 |
11 | string CheckIncompatiblePrograms();
12 | System.Drawing.Color GetAverageColor(string filePath);
13 | void SetAccentColor(Color color);
14 | void Start(TaskbarTheme theme);
15 | void Stop();
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Common/Services/IUserSettingsService.cs:
--------------------------------------------------------------------------------
1 | using Lively.Models;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Text;
5 |
6 | namespace Lively.Common.Services
7 | {
8 | public interface IUserSettingsService
9 | {
10 | SettingsModel Settings { get; }
11 | //IWeatherModel WeatherSettings { get; }
12 | List AppRules { get; }
13 | List WallpaperLayout { get; }
14 | void Save();
15 | void Load();
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Gallery.Client/ApiException.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Runtime.Serialization;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace Lively.Gallery.Client
9 | {
10 | public class ApiException : Exception
11 | {
12 | public ApiException()
13 | {
14 | }
15 | public ApiException(List errors)
16 | {
17 | Errors = errors;
18 | }
19 |
20 | public ApiException(string? message) : base(message)
21 | {
22 | }
23 |
24 | public ApiException(string? message, Exception? innerException) : base(message, innerException)
25 | {
26 | }
27 |
28 | protected ApiException(SerializationInfo info, StreamingContext context) : base(info, context)
29 | {
30 | }
31 |
32 | public List Errors { get; }
33 |
34 | public override string ToString()
35 | {
36 | return string.Join("\n", Errors);
37 | }
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Gallery.Client/HttpRequestMessageExtensions.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Text.Json;
6 | using System.Threading.Tasks;
7 |
8 | namespace Lively.Gallery.Client
9 | {
10 | public static class HttpRequestMessageExtensions
11 | {
12 | public static HttpRequestMessage WithJsonContent(this HttpRequestMessage message, object data)
13 | {
14 | message.Content = new StringContent(JsonSerializer.Serialize(data), Encoding.UTF8, "application/json");
15 | return message;
16 | }
17 |
18 | public static HttpRequestMessage Clone(this HttpRequestMessage req)
19 | {
20 | HttpRequestMessage clone = new HttpRequestMessage(req.Method, req.RequestUri);
21 |
22 | clone.Content = req.Content;
23 | clone.Version = req.Version;
24 |
25 | foreach (KeyValuePair prop in req.Properties)
26 | {
27 | clone.Properties.Add(prop);
28 | }
29 |
30 | foreach (KeyValuePair> header in req.Headers)
31 | {
32 | clone.Headers.TryAddWithoutValidation(header.Key, header.Value);
33 | }
34 |
35 | return clone;
36 | }
37 | }
38 |
39 |
40 | }
41 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Gallery.Client/Interfaces/ITokenStore.cs:
--------------------------------------------------------------------------------
1 | using Lively.Models.Gallery.API;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace Lively.Gallery.Client.Interfaces
9 | {
10 | public interface ITokenStore
11 | {
12 | public TokensModel Get();
13 | public void Set(string accessToken, string refreshToken, string provider, DateTime expiration);
14 | public void Clear();
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Gallery.Client/Lively.Gallery.Client.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Library
5 | net8.0
6 | enable
7 | enable
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Gallery.Client/SearchQuery.cs:
--------------------------------------------------------------------------------
1 | using Lively.Models.Gallery.API;
2 |
3 | namespace Lively.Gallery.Client
4 | {
5 | public class SearchQuery
6 | {
7 | internal SearchQuery(List tags, string name, int page, int limit, SortingType sortingType)
8 | {
9 | Tags = tags;
10 | Name = name;
11 | Page = page;
12 | Limit = limit;
13 | SortingType = sortingType;
14 | }
15 |
16 | public int Limit { get; }
17 | public SortingType SortingType { get; }
18 | public List Tags { get; }
19 | public string Name { get; }
20 | public int Page { get; }
21 | }
22 | }
--------------------------------------------------------------------------------
/src/Lively/Lively.Grpc.Client/IAppUpdaterClient.cs:
--------------------------------------------------------------------------------
1 | using Lively.Models.Services;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace Lively.Grpc.Client
8 | {
9 | public interface IAppUpdaterClient : IDisposable
10 | {
11 | string LastCheckChangelog { get; }
12 | DateTime LastCheckTime { get; }
13 | Uri LastCheckUri { get; }
14 | string LastCheckFileName { get; }
15 | Version LastCheckVersion { get; }
16 | AppUpdateStatus Status { get; }
17 |
18 | event EventHandler UpdateChecked;
19 |
20 | Task CheckUpdate();
21 | Task StartUpdate();
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Grpc.Client/ICommandsClient.cs:
--------------------------------------------------------------------------------
1 | using System.Threading.Tasks;
2 |
3 | namespace Lively.Grpc.Client
4 | {
5 | public interface ICommandsClient
6 | {
7 | Task ScreensaverConfigure();
8 | Task ScreensaverPreview(int previewHandle);
9 | Task ShowScreensaver(bool isFadeIn);
10 | Task StopScreensaver();
11 | Task ShowUI();
12 | Task CloseUI();
13 | Task RestartUI();
14 | Task RestartUI(string startArgs);
15 | Task ShowDebugger();
16 | Task ShutDown();
17 | Task AutomationCommandAsync(string[] args);
18 | void AutomationCommand(string[] args);
19 | void SaveRectUI();
20 | Task SaveRectUIAsync();
21 | }
22 | }
--------------------------------------------------------------------------------
/src/Lively/Lively.Grpc.Client/IDisplayManagerClient.cs:
--------------------------------------------------------------------------------
1 | using Lively.Models;
2 | using System;
3 | using System.Collections.ObjectModel;
4 | using System.Drawing;
5 |
6 | namespace Lively.Grpc.Client
7 | {
8 | public interface IDisplayManagerClient : IDisposable
9 | {
10 | ReadOnlyCollection DisplayMonitors { get; }
11 | DisplayMonitor PrimaryMonitor { get; }
12 | Rectangle VirtulScreenBounds { get; }
13 |
14 | event EventHandler DisplayChanged;
15 | }
16 | }
--------------------------------------------------------------------------------
/src/Lively/Lively.Grpc.Client/IUserSettingsClient.cs:
--------------------------------------------------------------------------------
1 | using Lively.Models;
2 | using System.Collections.Generic;
3 | using System.Threading.Tasks;
4 |
5 | namespace Lively.Grpc.Client
6 | {
7 | public interface IUserSettingsClient
8 | {
9 | SettingsModel Settings { get; }
10 | List AppRules { get; }
11 | Task SaveAsync();
12 | void Save();
13 | Task LoadAsync();
14 | void Load();
15 | }
16 | }
--------------------------------------------------------------------------------
/src/Lively/Lively.Grpc.Client/IWallpaperPlaylistClient.cs:
--------------------------------------------------------------------------------
1 | namespace Lively.Grpc.Client
2 | {
3 | public interface IWallpaperPlaylistClient
4 | {
5 | void Start();
6 | void Stop();
7 | }
8 | }
--------------------------------------------------------------------------------
/src/Lively/Lively.Grpc.Client/Lively.Grpc.Client.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netstandard2.0
5 | 8.0
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Grpc.Client/WallpaperPlaylistClient.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 |
5 | namespace Lively.Grpc.Client
6 | {
7 | public class WallpaperPlaylistClient : IWallpaperPlaylistClient
8 | {
9 | public void Start()
10 | {
11 | throw new NotImplementedException();
12 | }
13 |
14 | public void Stop()
15 | {
16 | throw new NotImplementedException();
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Grpc.Common/Proto/commands.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 | package Lively.Grpc.Common.Proto.Commands;
3 | import "google/protobuf/empty.proto";
4 |
5 | service CommandsService {
6 | rpc ShowUI (google.protobuf.Empty) returns (google.protobuf.Empty);
7 | rpc CloseUI (google.protobuf.Empty) returns (google.protobuf.Empty);
8 | rpc RestartUI (google.protobuf.Empty) returns (google.protobuf.Empty);
9 | rpc ShowDebugger (google.protobuf.Empty) returns (google.protobuf.Empty);
10 | rpc Screensaver (ScreensaverRequest) returns (google.protobuf.Empty);
11 | rpc ShutDown (google.protobuf.Empty) returns (google.protobuf.Empty);
12 | rpc AutomationCommand (AutomationCommandRequest) returns (google.protobuf.Empty);
13 | rpc SaveRectUI(google.protobuf.Empty) returns (google.protobuf.Empty);
14 | rpc RestartUIWithArgs(RestartRequest) returns (google.protobuf.Empty);
15 | }
16 |
17 | message ScreensaverRequest {
18 | ScreensaverState state = 1;
19 | int32 preview_hwnd = 2;
20 | bool fade_in = 3;
21 | }
22 |
23 | message AutomationCommandRequest {
24 | repeated string args = 1;
25 | }
26 |
27 | enum ScreensaverState {
28 | start = 0;
29 | stop = 1;
30 | preview = 2;
31 | configure = 3;
32 | }
33 |
34 | message RestartRequest {
35 | string start_args = 1;
36 | }
37 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Grpc.Common/Proto/display.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 | package Lively.Grpc.Common.Proto.Display;
3 | import "google/protobuf/empty.proto";
4 |
5 | service DisplayService {
6 | rpc GetScreens (google.protobuf.Empty) returns (GetScreensResponse);
7 | rpc GetVirtualScreenBounds (google.protobuf.Empty) returns (Rectangle);
8 | rpc SubscribeDisplayChanged (google.protobuf.Empty) returns (stream google.protobuf.Empty);
9 | }
10 |
11 | message GetScreensResponse {
12 | repeated ScreenData screens = 1;
13 | }
14 |
15 | message ScreenData {
16 | string device_id = 1;
17 | string device_name = 2;
18 | string display_name = 3;
19 | int32 h_monitor = 4;
20 | int32 index = 5;
21 | bool is_primary = 6;
22 | Rectangle bounds = 7;
23 | Rectangle working_area = 8;
24 | }
25 |
26 | message Rectangle {
27 | int32 x = 1;
28 | int32 y = 2;
29 | int32 width = 3;
30 | int32 height = 4;
31 | //int32 bottom = 1;
32 | //int32 left = 3;
33 | //int32 right = 4;
34 | //int32 top = 5;
35 | }
36 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Grpc.Common/Proto/playlist.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 | package Lively.Grpc.Common.Proto.Commands;
3 | import "google/protobuf/empty.proto";
4 |
5 | service PlaylistService {
6 | rpc Start (google.protobuf.Empty) returns (google.protobuf.Empty);
7 | rpc Stop (google.protobuf.Empty) returns (google.protobuf.Empty);
8 | }
--------------------------------------------------------------------------------
/src/Lively/Lively.Grpc.Common/Proto/update.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 | package Lively.Grpc.Common.Proto.Update;
3 | import "google/protobuf/empty.proto";
4 | import "google/protobuf/timestamp.proto";
5 |
6 | service UpdateService {
7 | rpc CheckUpdate (google.protobuf.Empty) returns (google.protobuf.Empty);
8 | rpc GetUpdateStatus (google.protobuf.Empty) returns (UpdateResponse);
9 | rpc StartUpdate (google.protobuf.Empty) returns (google.protobuf.Empty);
10 | rpc SubscribeUpdateChecked (google.protobuf.Empty) returns (stream google.protobuf.Empty);
11 | }
12 |
13 | message UpdateResponse {
14 | UpdateStatus status = 1;
15 | string version = 2;
16 | string url = 3;
17 | string changelog = 4;
18 | google.protobuf.Timestamp time = 5;
19 | string file_name = 6;
20 | }
21 |
22 | enum UpdateStatus {
23 | uptodate = 0;
24 | available = 1;
25 | invalid = 2;
26 | notchecked = 3;
27 | error = 4;
28 | }
--------------------------------------------------------------------------------
/src/Lively/Lively.ML/DepthEstimate/IDepthEstimate.cs:
--------------------------------------------------------------------------------
1 | namespace Lively.ML.DepthEstimate
2 | {
3 | public interface IDepthEstimate : IDisposable
4 | {
5 | void LoadModel(string path);
6 | ModelOutput Run(string imagePath);
7 | string ModelPath { get; }
8 | }
9 | }
--------------------------------------------------------------------------------
/src/Lively/Lively.ML/DepthEstimate/ModelInput.cs:
--------------------------------------------------------------------------------
1 | namespace Lively.ML.DepthEstimate
2 | {
3 | public class ModelInput
4 | {
5 | public ModelInput(string imagePath, int width, int height)
6 | {
7 | ImagePath = imagePath;
8 | Width = width;
9 | Height = height;
10 | }
11 |
12 | public string ImagePath { get; set; }
13 | public int Width { get; set; }
14 | public int Height { get; set; }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/Lively/Lively.ML/DepthEstimate/ModelOutput.cs:
--------------------------------------------------------------------------------
1 | namespace Lively.ML.DepthEstimate
2 | {
3 | public class ModelOutput
4 | {
5 | public ModelOutput(float[] depth, int width, int height, int originalWidth, int originalHeight)
6 | {
7 | Depth = depth;
8 | Width = width;
9 | Height = height;
10 | OriginalWidth = originalWidth;
11 | OriginalHeight = originalHeight;
12 | }
13 |
14 | public float[] Depth { get; set; }
15 | public int Width { get; set; }
16 | public int Height { get; set; }
17 | public int OriginalWidth { get; set; }
18 | public int OriginalHeight { get; set; }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/Lively/Lively.ML/Lively.ML.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net8.0
5 | enable
6 | enable
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/AddWallpaperCreateModel.cs:
--------------------------------------------------------------------------------
1 | using CommunityToolkit.Mvvm.ComponentModel;
2 | using Lively.Models.Enums;
3 |
4 | namespace Lively.Models
5 | {
6 | public partial class AddWallpaperCreateModel : ObservableObject
7 | {
8 | [ObservableProperty]
9 | private string title;
10 |
11 | [ObservableProperty]
12 | private string description;
13 |
14 | [ObservableProperty]
15 | private string icon;
16 |
17 | [ObservableProperty]
18 | private WallpaperType typeSupported;
19 |
20 | [ObservableProperty]
21 | private WallpaperCreateType createType;
22 | }
23 |
24 | public enum WallpaperCreateType
25 | {
26 | none,
27 | depthmap,
28 | //videotranscode,
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/AppMusicExclusionRuleModel.cs:
--------------------------------------------------------------------------------
1 | using CommunityToolkit.Mvvm.ComponentModel;
2 |
3 | namespace Lively.Models
4 | {
5 | public partial class AppMusicExclusionRuleModel : ObservableObject
6 | {
7 | public AppMusicExclusionRuleModel(string appName, string appPath)
8 | {
9 | this.AppName = appName;
10 | this.AppPath = appPath;
11 | }
12 |
13 | [ObservableProperty]
14 | private string appName;
15 |
16 | [ObservableProperty]
17 | private string appPath;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/ApplicationModel.cs:
--------------------------------------------------------------------------------
1 | using CommunityToolkit.Mvvm.ComponentModel;
2 |
3 | namespace Lively.Models
4 | {
5 | public partial class ApplicationModel : ObservableObject
6 | {
7 | [ObservableProperty]
8 | private string appName;
9 |
10 | [ObservableProperty]
11 | private string appPath;
12 |
13 | [ObservableProperty]
14 | private string appIcon;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/ApplicationRulesModel.cs:
--------------------------------------------------------------------------------
1 | using CommunityToolkit.Mvvm.ComponentModel;
2 | using Lively.Models.Enums;
3 |
4 | namespace Lively.Models
5 | {
6 | public partial class ApplicationRulesModel : ObservableObject
7 | {
8 | public ApplicationRulesModel(string appName, AppRules rule)
9 | {
10 | AppName = appName;
11 | Rule = rule;
12 | }
13 |
14 | [ObservableProperty]
15 | private string appName;
16 |
17 | [ObservableProperty]
18 | private AppRules rule;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Enums/AppRules.cs:
--------------------------------------------------------------------------------
1 | namespace Lively.Models.Enums;
2 |
3 | public enum AppRules
4 | {
5 | pause,
6 | ignore,
7 | kill
8 | }
9 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Enums/AppTheme.cs:
--------------------------------------------------------------------------------
1 | namespace Lively.Models.Enums;
2 |
3 | public enum AppTheme
4 | {
5 | Auto,
6 | Light,
7 | Dark,
8 | }
9 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Enums/AppThemeBackground.cs:
--------------------------------------------------------------------------------
1 | namespace Lively.Models.Enums;
2 |
3 | ///
4 | /// Combines with
5 | ///
6 | public enum AppThemeBackground
7 | {
8 | default_mica,
9 | default_acrylic,
10 | dynamic,
11 | custom
12 | }
13 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Enums/AudioPauseAlgorithm.cs:
--------------------------------------------------------------------------------
1 | namespace Lively.Models.Enums;
2 |
3 | public enum AudioPauseAlgorithm
4 | {
5 | none,
6 | cursor,
7 | primaryscreen,
8 | }
9 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Enums/ContentPageType.cs:
--------------------------------------------------------------------------------
1 | namespace Lively.Models.Enums
2 | {
3 | public enum ContentPageType
4 | {
5 | library,
6 | gallery,
7 | appupdate,
8 | settingsGeneral,
9 | settingsPerformance,
10 | settingsWallpaper,
11 | settingsScreensaver,
12 | settingsSystem
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Enums/DisplayIdentificationMode.cs:
--------------------------------------------------------------------------------
1 | namespace Lively.Models.Enums;
2 |
3 | public enum DisplayIdentificationMode
4 | {
5 | deviceName,
6 | deviceId,
7 | screenLayout
8 | }
9 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Enums/DisplayPause.cs:
--------------------------------------------------------------------------------
1 | namespace Lively.Models.Enums;
2 |
3 | public enum DisplayPause
4 | {
5 | perdisplay,
6 | all
7 | }
8 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Enums/InputForwardMode.cs:
--------------------------------------------------------------------------------
1 | namespace Lively.Models.Enums;
2 |
3 | public enum InputForwardMode
4 | {
5 | off,
6 | mouse,
7 | mousekeyboard,
8 | }
9 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Enums/LivelyGUIState.cs:
--------------------------------------------------------------------------------
1 | namespace Lively.Models.Enums;
2 |
3 | public enum LivelyGUIState
4 | {
5 | normal,
6 | lite,
7 | headless
8 | }
9 |
10 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Enums/LivelyGifPlayer.cs:
--------------------------------------------------------------------------------
1 | namespace Lively.Models.Enums;
2 |
3 | public enum LivelyGifPlayer
4 | {
5 | win10Img,
6 | libmpvExt,
7 | mpv
8 | }
9 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Enums/LivelyMediaPlayer.cs:
--------------------------------------------------------------------------------
1 | namespace Lively.Models.Enums;
2 |
3 | public enum LivelyMediaPlayer
4 | {
5 | wmf,
6 | //depreciated
7 | libvlc,
8 | libvlcExt,
9 | //depreciated
10 | libmpv,
11 | libmpvExt,
12 | mpv,
13 | vlc
14 | }
15 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Enums/LivelyPicturePlayer.cs:
--------------------------------------------------------------------------------
1 | namespace Lively.Models.Enums;
2 |
3 | public enum LivelyPicturePlayer
4 | {
5 | picture,
6 | winApi,
7 | mpv,
8 | wmf
9 | }
10 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Enums/LivelyWebBrowser.cs:
--------------------------------------------------------------------------------
1 | namespace Lively.Models.Enums;
2 |
3 | public enum LivelyWebBrowser
4 | {
5 | cef,
6 | webview2
7 | }
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Enums/PlaybackState.cs:
--------------------------------------------------------------------------------
1 | namespace Lively.Models.Enums;
2 |
3 | public enum PlaybackState
4 | {
5 | play,
6 | paused
7 | }
8 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Enums/ProcessMonitorAlgorithm.cs:
--------------------------------------------------------------------------------
1 | namespace Lively.Models.Enums;
2 |
3 | public enum ProcessMonitorAlgorithm
4 | {
5 | foreground,
6 | all,
7 | gamemode
8 | }
9 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Enums/ScreensaverIdleTime.cs:
--------------------------------------------------------------------------------
1 | namespace Lively.Models.Enums;
2 |
3 | public enum ScreensaverIdleTime
4 | {
5 | none,
6 | min1,
7 | min2,
8 | min3,
9 | min5,
10 | min10,
11 | min15,
12 | min20,
13 | min25,
14 | min30,
15 | min45,
16 | min60,
17 | min120
18 | }
19 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Enums/ScreensaverType.cs:
--------------------------------------------------------------------------------
1 | namespace Lively.Models.Enums;
2 |
3 | public enum ScreensaverType
4 | {
5 | ///
6 | /// Mirror the current wallpaper(s.)
7 | ///
8 | wallpaper,
9 | ///
10 | /// Different screensaver from running wallpaper.
11 | ///
12 | different
13 | }
14 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Enums/StreamQualitySuggestion.cs:
--------------------------------------------------------------------------------
1 | namespace Lively.Models.Enums;
2 |
3 | ///
4 | /// Represents suggested stream quality levels.
5 | ///
6 | public enum StreamQualitySuggestion
7 | {
8 | ///
9 | /// Lowest stream quality (144p).
10 | ///
11 | Lowest,
12 | ///
13 | /// Low stream quality (240p).
14 | ///
15 | Low,
16 | ///
17 | /// Low-medium stream quality (360p).
18 | ///
19 | LowMedium,
20 | ///
21 | /// Medium stream quality (480p).
22 | ///
23 | Medium,
24 | ///
25 | /// Medium-high stream quality (720p).
26 | ///
27 | MediumHigh,
28 | ///
29 | /// High stream quality (1080p).
30 | ///
31 | High,
32 | ///
33 | /// Highest stream quality (1081p).
34 | ///
35 | Highest
36 | }
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Enums/TaskbarTheme.cs:
--------------------------------------------------------------------------------
1 | namespace Lively.Models.Enums;
2 |
3 | public enum TaskbarTheme
4 | {
5 | ///
6 | /// System default theme.
7 | ///
8 | none,
9 | ///
10 | /// Fully transparent taskbar.
11 | ///
12 | clear,
13 | ///
14 | /// Blurred taskbar effect.
15 | ///
16 | blur,
17 | ///
18 | /// Fluent design theme for the taskbar.
19 | ///
20 | fluent,
21 | ///
22 | /// User-defined color for the taskbar.
23 | ///
24 | color,
25 | ///
26 | /// Average color of the live wallpaper applied to the taskbar.
27 | ///
28 | wallpaper,
29 | ///
30 | /// Fluent style using the average color of the live wallpaper.
31 | ///
32 | wallpaperFluent,
33 | }
34 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Enums/UpdateWallpaperType.cs:
--------------------------------------------------------------------------------
1 | namespace Lively.Models.Enums;
2 |
3 | public enum UpdateWallpaperType
4 | {
5 | changed,
6 | remove,
7 | done
8 | }
9 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Enums/WallpaperArrangement.cs:
--------------------------------------------------------------------------------
1 | namespace Lively.Models.Enums;
2 |
3 | public enum WallpaperArrangement
4 | {
5 | ///
6 | /// Per display
7 | ///
8 | per,
9 | ///
10 | /// Span Across All Display(s)
11 | ///
12 | span,
13 | ///
14 | /// Same wp for all Display(s)
15 | ///
16 | duplicate
17 | }
18 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Enums/WallpaperScaler.cs:
--------------------------------------------------------------------------------
1 | namespace Lively.Models.Enums;
2 |
3 | ///
4 | /// Similar to System.Media.Stretch
5 | ///
6 | public enum WallpaperScaler
7 | {
8 | none,
9 | fill,
10 | uniform,
11 | uniformFill,
12 | auto
13 | }
14 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Enums/WebPageType.cs:
--------------------------------------------------------------------------------
1 | namespace Lively.Models.Enums
2 | {
3 | public enum WebPageType
4 | {
5 | shadertoy,
6 | yt,
7 | online,
8 | local,
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/FileTypeModel.cs:
--------------------------------------------------------------------------------
1 | using Lively.Models.Enums;
2 |
3 | namespace Lively.Models
4 | {
5 | public class FileTypeModel
6 | {
7 | public WallpaperType Type { get; set; }
8 | public string[] Extentions { get; set; }
9 |
10 | public FileTypeModel(WallpaperType type, string[] extensions)
11 | {
12 | Type = type;
13 | Extentions = extensions;
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Gallery/API/ApiErrors.cs:
--------------------------------------------------------------------------------
1 | namespace Lively.Models.Gallery.API
2 | {
3 | public static class ApiErrors
4 | {
5 | public static readonly string NotFound = "NOT_FOUND";
6 | public static readonly string CodeCannotBeNullOrEmpty = "CODE_CANNOT_BE_NULL_OR_EMPTY";
7 | public static readonly string InvalidAccessToken = "INVALID_ACCESS_TOKEN";
8 | public static readonly string RefreshTokensDoesntMatch = "REFRESH_TOKENS_DOESNT_MATCH";
9 | public static readonly string InvalidSortingType = "INVALID_SORTING_TYPE";
10 | public static readonly string InvalidPageIndex = "INVALID_PAGE_INDEX";
11 | public static readonly string InvalidContentType = "INVALID_CONTENT_TYPE";
12 | public static readonly string MalformedArchive = "MALFORMED_WALLPAPER_ARCHIVE";
13 | public static readonly string AlreadySubscribedToWallpaper = "ALREADY_SUBSCRIBED_TO_WALLPAPER";
14 | public static readonly string NotSubscribedToWallpaper = "NOT_SUBSCRIBED_TO_WALLPAPER";
15 | public static readonly string TokensExpired = "TOKENS_EXPIRED";
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Gallery/API/HealthInfo.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | namespace Lively.Models.Gallery.API
3 | {
4 | public class HealthInfo
5 | {
6 | public string Key { get; set; }
7 | public string Description { get; set; }
8 | public TimeSpan Duration { get; set; }
9 | public string Status { get; set; }
10 | public string Error { get; set; }
11 | }
12 | }
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Gallery/API/HealthResult.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 |
4 | namespace Lively.Models.Gallery.API
5 | {
6 | public class HealthResult
7 | {
8 | public string Name { get; set; }
9 | public string Status { get; set; }
10 | public TimeSpan Duration { get; set; }
11 | public ICollection Info { get; set; }
12 | }
13 |
14 | }
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Gallery/API/Page.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | namespace Lively.Models.Gallery.API
4 | {
5 | public class Page
6 | {
7 | public int Number { get; set; }
8 | public bool NextPageAvailable { get; set; }
9 | public List Data { get; set; }
10 | }
11 | }
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Gallery/API/ProfileDto.cs:
--------------------------------------------------------------------------------
1 | namespace Lively.Models.Gallery.API
2 | {
3 | public class ProfileDto
4 | {
5 | public string Id { get; set; }
6 | public string DisplayName { get; set; }
7 | public string AvatarUrl { get; set; }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Gallery/API/ReportModel.cs:
--------------------------------------------------------------------------------
1 | namespace Lively.Models.Gallery.API
2 | {
3 | public class ReportModel
4 | {
5 | public ReportType Report { get; set; }
6 | public string Message { get; set; }
7 |
8 | public enum ReportType
9 | {
10 | Other,
11 | WrongGenre,
12 | NudityViolence,
13 | CopyrightViolation,
14 | Spam
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Gallery/API/SortingType.cs:
--------------------------------------------------------------------------------
1 | namespace Lively.Models.Gallery.API
2 | {
3 | public enum SortingType
4 | {
5 | AllTimeTop,
6 | Newest,
7 | Trending
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Gallery/API/TokensModel.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Lively.Models.Gallery.API
4 | {
5 | public class TokensModel
6 | {
7 | public string AccessToken { get; set; }
8 | public string RefreshToken { get; set; }
9 | public string Provider { get; set; }
10 | public DateTime Expiration { get; set; }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Gallery/API/VoteType.cs:
--------------------------------------------------------------------------------
1 | namespace Lively.Models.Gallery.API
2 | {
3 | public enum VoteType
4 | {
5 | Downvote,
6 | Upvote
7 | }
8 | }
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Gallery/API/WallpaperDto.cs:
--------------------------------------------------------------------------------
1 | using Lively.Models.Enums;
2 | using System.Collections.Generic;
3 |
4 | namespace Lively.Models.Gallery.API
5 | {
6 | public partial class WallpaperDto
7 | {
8 | public string Id { get; set; }
9 | public string AppVersion { get; set; }
10 | public string Title { get; set; }
11 | public ProfileDto Author { get; set; }
12 | public string License { get; set; }
13 | public string Contact { get; set; }
14 | public bool IsPreviewAvailable { get; set; }
15 | //Assigned in GalleryClient.cs:SearchWallpapersAsync()
16 | public string Thumbnail { get; set; }
17 | public string Preview { get; set; }
18 | public WallpaperType Type { get; set; }
19 | public int VoteCount { get; set; }
20 | public string Description { get; set; }
21 | public List Tags { get; set; }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Gallery/ApiResponse.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | namespace Lively.Models.Gallery
4 | {
5 | public class ApiResponse
6 | {
7 | public bool Success { get; set; }
8 | public T Data { get; set; }
9 | public List Errors { get; set; }
10 | public int StatusCode { get; set; }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/InAppNotificationModel.cs:
--------------------------------------------------------------------------------
1 | using CommunityToolkit.Mvvm.ComponentModel;
2 |
3 | namespace Lively.Models
4 | {
5 | public partial class InAppNotificationModel : ObservableObject
6 | {
7 | [ObservableProperty]
8 | private bool isOpen;
9 |
10 | [ObservableProperty]
11 | private string message;
12 |
13 | [ObservableProperty]
14 | private string title;
15 |
16 | [ObservableProperty]
17 | private int progress;
18 |
19 | [ObservableProperty]
20 | private bool isProgressIndeterminate;
21 | }
22 | }
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/LanguageModel.cs:
--------------------------------------------------------------------------------
1 | namespace Lively.Models
2 | {
3 | public class LanguageModel
4 | {
5 | public string DisplayName { get; set; }
6 | public string Code { get; set; }
7 |
8 | public LanguageModel(string displayName, string code)
9 | {
10 | DisplayName = displayName;
11 | Code = code;
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Lively.Models.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netstandard2.0
5 | latest
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/LivelyControls/ButtonModel.cs:
--------------------------------------------------------------------------------
1 | using Newtonsoft.Json;
2 |
3 | namespace Lively.Models.LivelyControls
4 | {
5 | public class ButtonModel : ControlModel
6 | {
7 | [JsonProperty("value")]
8 | public string Value { get; set; }
9 |
10 | public ButtonModel() : base("button") { }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/LivelyControls/CheckboxModel.cs:
--------------------------------------------------------------------------------
1 | using Newtonsoft.Json;
2 |
3 | namespace Lively.Models.LivelyControls
4 | {
5 | public class CheckboxModel : ControlModel
6 | {
7 | [JsonProperty("value")]
8 | public bool Value { get; set; }
9 |
10 | public CheckboxModel() : base("checkbox") { }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/LivelyControls/ColorPickerModel.cs:
--------------------------------------------------------------------------------
1 | using Newtonsoft.Json;
2 |
3 | namespace Lively.Models.LivelyControls
4 | {
5 | public class ColorPickerModel : ControlModel
6 | {
7 | [JsonProperty("value")]
8 | public string Value { get; set; }
9 |
10 | public ColorPickerModel() : base("color") { }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/LivelyControls/ControlModel.cs:
--------------------------------------------------------------------------------
1 | using Newtonsoft.Json;
2 |
3 | namespace Lively.Models.LivelyControls
4 | {
5 | public class ControlModel
6 | {
7 | [JsonIgnore]
8 | [JsonProperty("name")]
9 | public string Name { get; set; }
10 |
11 | [JsonProperty("text")]
12 | public string Text { get; set; }
13 |
14 | [JsonProperty("type")]
15 | public string Type { get; }
16 |
17 | [JsonProperty("help")]
18 | public string Help { get; set; }
19 |
20 | protected ControlModel(string Type)
21 | {
22 | this.Type = Type;
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/LivelyControls/DropdownModel.cs:
--------------------------------------------------------------------------------
1 | using Newtonsoft.Json;
2 |
3 | namespace Lively.Models.LivelyControls
4 | {
5 | public class DropdownModel : ControlModel
6 | {
7 | [JsonProperty("value")]
8 | public int Value { get; set; }
9 |
10 | [JsonProperty("items")]
11 | public string[] Items { get; set; }
12 |
13 | public DropdownModel() : base("dropdown") { }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/LivelyControls/FolderDropdownModel.cs:
--------------------------------------------------------------------------------
1 | using Newtonsoft.Json;
2 |
3 | namespace Lively.Models.LivelyControls
4 | {
5 | public class FolderDropdownModel : ControlModel
6 | {
7 | [JsonProperty("value")]
8 | public string Value { get; set; }
9 |
10 | [JsonProperty("folder")]
11 | public string Folder { get; set; }
12 |
13 | [JsonProperty("filter")]
14 | public string Filter { get; set; }
15 |
16 | public FolderDropdownModel() : base("folderDropdown") { }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/LivelyControls/LabelModel.cs:
--------------------------------------------------------------------------------
1 | using Newtonsoft.Json;
2 |
3 | namespace Lively.Models.LivelyControls
4 | {
5 | public class LabelModel : ControlModel
6 | {
7 | [JsonProperty("value")]
8 | public string Value { get; set; }
9 |
10 | public LabelModel() : base("label") { }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/LivelyControls/LocalizationFile.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | namespace Lively.Models.LivelyControls;
4 |
5 | public class LocalizationFile
6 | {
7 | public Dictionary Languages { get; set; }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/LivelyControls/LocalizationLanguage.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | namespace Lively.Models.LivelyControls;
4 |
5 | public class LocalizationLanguage : Dictionary { }
6 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/LivelyControls/LocalizedStrings.cs:
--------------------------------------------------------------------------------
1 | using Newtonsoft.Json;
2 |
3 | namespace Lively.Models.LivelyControls;
4 |
5 | public class LocalizedStrings
6 | {
7 | [JsonProperty("text")]
8 | public string Text { get; set; }
9 |
10 | [JsonProperty("value")]
11 | public string Value { get; set; }
12 |
13 | [JsonProperty("help")]
14 | public string Help { get; set; }
15 | }
16 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/LivelyControls/ScalerDropdownModel.cs:
--------------------------------------------------------------------------------
1 | using Newtonsoft.Json;
2 |
3 | namespace Lively.Models.LivelyControls
4 | {
5 | public class ScalerDropdownModel : ControlModel
6 | {
7 | [JsonProperty("value")]
8 | public int Value { get; set; }
9 |
10 | [JsonProperty("items")]
11 | public string[] Items { get; set; }
12 |
13 | public ScalerDropdownModel() : base("scalerDropdown") { }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/LivelyControls/SliderModel.cs:
--------------------------------------------------------------------------------
1 | using Newtonsoft.Json;
2 |
3 | namespace Lively.Models.LivelyControls
4 | {
5 | public class SliderModel : ControlModel
6 | {
7 | [JsonIgnore]
8 | [JsonProperty("tick")]
9 | public int Tick { get; set; }
10 |
11 | [JsonProperty("min")]
12 | public double Min { get; set; }
13 |
14 | [JsonProperty("max")]
15 | public double Max { get; set; }
16 |
17 | [JsonProperty("value")]
18 | public double Value { get; set; }
19 |
20 | // Default value 1, otherwise if missing it will be 0 and crash on moving slider.
21 | [JsonProperty("step")]
22 | public double Step { get; set; } = 1f;
23 |
24 | public SliderModel() : base("slider") { }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/LivelyControls/TextboxModel.cs:
--------------------------------------------------------------------------------
1 | using Newtonsoft.Json;
2 |
3 | namespace Lively.Models.LivelyControls
4 | {
5 | public class TextboxModel : ControlModel
6 | {
7 | [JsonProperty("value")]
8 | public string Value { get; set; }
9 |
10 | public TextboxModel() : base("textbox") { }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/LivelyInfoLocalizationFile.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | namespace Lively.Models;
4 |
5 | public class LivelyInfoLocalizationFile
6 | {
7 | public Dictionary Languages { get; set; }
8 | }
9 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Message/ConsoleMessageType.cs:
--------------------------------------------------------------------------------
1 | namespace Lively.Models.Message
2 | {
3 | public enum ConsoleMessageType
4 | {
5 | log,
6 | error,
7 | console
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Message/IpcMessage.cs:
--------------------------------------------------------------------------------
1 | using Newtonsoft.Json;
2 | using System;
3 |
4 | namespace Lively.Models.Message
5 | {
6 |
7 | [Serializable]
8 | public abstract class IpcMessage
9 | {
10 | [JsonProperty(Order = -2)]
11 | public MessageType Type { get; }
12 | public IpcMessage(MessageType type)
13 | {
14 | Type = type;
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Message/LivelyButton.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Lively.Models.Message
4 | {
5 | [Serializable]
6 | public class LivelyButton : IpcMessage
7 | {
8 | public string Name { get; set; }
9 | public bool IsDefault { get; set; }
10 | public LivelyButton() : base(MessageType.lp_button)
11 | {
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Message/LivelyCheckbox.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Lively.Models.Message
4 | {
5 | [Serializable]
6 | public class LivelyCheckbox : IpcMessage
7 | {
8 | public string Name { get; set; }
9 | public bool Value { get; set; }
10 | public LivelyCheckbox() : base(MessageType.lp_chekbox)
11 | {
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Message/LivelyCloseCmd.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Lively.Models.Message
4 | {
5 | [Serializable]
6 | public class LivelyCloseCmd : IpcMessage
7 | {
8 | public LivelyCloseCmd() : base(MessageType.cmd_close)
9 | {
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Message/LivelyColorPicker.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Lively.Models.Message
4 | {
5 | [Serializable]
6 | public class LivelyColorPicker : IpcMessage
7 | {
8 | public string Name { get; set; }
9 | public string Value { get; set; }
10 | public LivelyColorPicker() : base(MessageType.lp_cpicker)
11 | {
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Message/LivelyDropdown.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Lively.Models.Message
4 | {
5 | [Serializable]
6 | public class LivelyDropdown : IpcMessage
7 | {
8 | public string Name { get; set; }
9 | public int Value { get; set; }
10 | public LivelyDropdown() : base(MessageType.lp_dropdown)
11 | {
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Message/LivelyDropdownScaler.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Lively.Models.Message
4 | {
5 | [Serializable]
6 | public class LivelyDropdownScaler : IpcMessage
7 | {
8 | public string Name { get; set; }
9 | public int Value { get; set; }
10 | public LivelyDropdownScaler() : base(MessageType.lp_dropdown_scaler)
11 | {
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Message/LivelyFolderDropdown.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Lively.Models.Message
4 | {
5 | [Serializable]
6 | public class LivelyFolderDropdown : IpcMessage
7 | {
8 | public string Name { get; set; }
9 | public string Value { get; set; }
10 | public LivelyFolderDropdown() : base(MessageType.lp_fdropdown)
11 | {
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Message/LivelyMessageConsole.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Lively.Models.Message
4 | {
5 | [Serializable]
6 | public class LivelyMessageConsole : IpcMessage
7 | {
8 | public string Message { get; set; }
9 | public ConsoleMessageType Category { get; set; }
10 | public LivelyMessageConsole() : base(MessageType.msg_console)
11 | {
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Message/LivelyMessageHwnd.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Lively.Models.Message
4 | {
5 | [Serializable]
6 | public class LivelyMessageHwnd : IpcMessage
7 | {
8 | public long Hwnd { get; set; }
9 | public LivelyMessageHwnd() : base(MessageType.msg_hwnd)
10 | {
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Message/LivelyMessageScreenshot.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Lively.Models.Message
4 | {
5 | [Serializable]
6 | public class LivelyMessageScreenshot : IpcMessage
7 | {
8 | public string FileName { get; set; }
9 | public bool Success { get; set; }
10 | public LivelyMessageScreenshot() : base(MessageType.msg_screenshot)
11 | {
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Message/LivelyMessageWallpaperLoaded.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Lively.Models.Message
4 | {
5 | [Serializable]
6 | public class LivelyMessageWallpaperLoaded : IpcMessage
7 | {
8 | public bool Success { get; set; }
9 | public LivelyMessageWallpaperLoaded() : base(MessageType.msg_wploaded)
10 | {
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Message/LivelyReloadCmd.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Lively.Models.Message
4 | {
5 | [Serializable]
6 | public class LivelyReloadCmd : IpcMessage
7 | {
8 | public LivelyReloadCmd() : base(MessageType.cmd_reload)
9 | {
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Message/LivelyResumeCmd.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Lively.Models.Message
4 | {
5 | [Serializable]
6 | public class LivelyResumeCmd : IpcMessage
7 | {
8 | public LivelyResumeCmd() : base(MessageType.cmd_resume)
9 | {
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Message/LivelyScreenshotCmd.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Lively.Models.Message
4 | {
5 | [Serializable]
6 | public class LivelyScreenshotCmd : IpcMessage
7 | {
8 | public ScreenshotFormat Format { get; set; }
9 | public string FilePath { get; set; }
10 | public uint Delay { get; set; }
11 | public LivelyScreenshotCmd() : base(MessageType.cmd_screenshot)
12 | {
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Message/LivelySlider.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Lively.Models.Message
4 | {
5 | [Serializable]
6 | public class LivelySlider : IpcMessage
7 | {
8 | public string Name { get; set; }
9 | public double Value { get; set; }
10 | public double Step { get; set; }
11 | public LivelySlider() : base(MessageType.lp_slider)
12 | {
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Message/LivelySuspendCmd.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Lively.Models.Message
4 | {
5 | [Serializable]
6 | public class LivelySuspendCmd : IpcMessage
7 | {
8 | public LivelySuspendCmd() : base(MessageType.cmd_suspend)
9 | {
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Message/LivelySystemInformation.cs:
--------------------------------------------------------------------------------
1 | using Lively.Models.Services;
2 | using System;
3 |
4 | namespace Lively.Models.Message
5 | {
6 | [Serializable]
7 | public class LivelySystemInformation : IpcMessage
8 | {
9 | public HardwareUsageEventArgs Info { get; set; }
10 | public LivelySystemInformation() : base(MessageType.cmd_reload)
11 | {
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Message/LivelySystemNowPlaying.cs:
--------------------------------------------------------------------------------
1 | using Lively.Models.Services;
2 | using System;
3 |
4 | namespace Lively.Models.Message
5 | {
6 | [Serializable]
7 | public class LivelySystemNowPlaying : IpcMessage
8 | {
9 | public NowPlayingEventArgs Info { get; set; }
10 | public LivelySystemNowPlaying() : base(MessageType.lsp_nowplaying)
11 | {
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Message/LivelyTextBox.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Lively.Models.Message
4 | {
5 | [Serializable]
6 | public class LivelyTextBox : IpcMessage
7 | {
8 | public string Name { get; set; }
9 | public string Value { get; set; }
10 | public LivelyTextBox() : base(MessageType.lp_textbox)
11 | {
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Message/LivelyVolumeCmd.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Lively.Models.Message
4 | {
5 | [Serializable]
6 | public class LivelyVolumeCmd : IpcMessage
7 | {
8 | public int Volume { get; set; }
9 | public LivelyVolumeCmd() : base(MessageType.cmd_volume)
10 | {
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Message/MessageType.cs:
--------------------------------------------------------------------------------
1 | namespace Lively.Models.Message
2 | {
3 | public enum MessageType
4 | {
5 | msg_hwnd,
6 | msg_console,
7 | msg_wploaded,
8 | msg_screenshot,
9 | cmd_reload,
10 | cmd_close,
11 | cmd_screenshot,
12 | cmd_suspend,
13 | cmd_resume,
14 | cmd_volume,
15 | lsp_perfcntr,
16 | lsp_nowplaying,
17 | lp_slider,
18 | lp_textbox,
19 | lp_dropdown,
20 | lp_fdropdown,
21 | lp_button,
22 | lp_cpicker,
23 | lp_chekbox,
24 | lp_dropdown_scaler,
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Message/ScreenshotFormat.cs:
--------------------------------------------------------------------------------
1 | namespace Lively.Models.Message
2 | {
3 | public enum ScreenshotFormat
4 | {
5 | jpeg,
6 | png,
7 | webp,
8 | bmp
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/ScreenLayoutModel.cs:
--------------------------------------------------------------------------------
1 | using CommunityToolkit.Mvvm.ComponentModel;
2 | using System.Drawing;
3 |
4 | namespace Lively.Models
5 | {
6 | public partial class ScreenLayoutModel : ObservableObject
7 | {
8 | public ScreenLayoutModel(DisplayMonitor screen, string screenImagePath, string livelypropertyFilePath, string screenTitle)
9 | {
10 | this.Screen = screen;
11 | this.ScreenImagePath = screenImagePath;
12 | this.LivelyPropertyPath = livelypropertyFilePath;
13 | this.ScreenTitle = screenTitle;
14 | }
15 |
16 | [ObservableProperty]
17 | private DisplayMonitor screen;
18 |
19 | [ObservableProperty]
20 | private Rectangle normalizedBounds;
21 |
22 | [ObservableProperty]
23 | private bool isSelected;
24 |
25 | [ObservableProperty]
26 | private string screenImagePath;
27 |
28 | [ObservableProperty]
29 | private string livelyPropertyPath;
30 |
31 | [ObservableProperty]
32 | private string screenTitle;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/ScreenSaverLayoutModel.cs:
--------------------------------------------------------------------------------
1 | using Lively.Models.Enums;
2 | using System.Collections.Generic;
3 |
4 | namespace Lively.Models
5 | {
6 | public class ScreenSaverLayoutModel
7 | {
8 | public WallpaperArrangement Layout { get; set; }
9 | public List Wallpapers { get; set; }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Services/AppUpdaterEventArgs.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.ComponentModel;
3 |
4 | namespace Lively.Models.Services
5 | {
6 | public class AppUpdaterEventArgs : EventArgs
7 | {
8 | public AppUpdaterEventArgs(AppUpdateStatus updateStatus, Version updateVersion, DateTime updateDate, Uri updateUri, string fileName)
9 | {
10 | UpdateStatus = updateStatus;
11 | UpdateVersion = updateVersion;
12 | UpdateUri = updateUri;
13 | UpdateDate = updateDate;
14 | FileName = fileName;
15 | }
16 |
17 | public AppUpdateStatus UpdateStatus { get; }
18 | public Version UpdateVersion { get; }
19 | public Uri UpdateUri { get; }
20 | public DateTime UpdateDate { get; }
21 | public string FileName { get; }
22 | }
23 |
24 | public enum AppUpdateStatus
25 | {
26 | [Description("Software is up-to-date.")]
27 | uptodate,
28 | [Description("Update available.")]
29 | available,
30 | [Description("Installed software version higher than whats available online.")]
31 | invalid,
32 | [Description("Update not checked yet.")]
33 | notchecked,
34 | [Description("Update check failed.")]
35 | error,
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Services/ColorProperties.cs:
--------------------------------------------------------------------------------
1 | namespace Lively.Models.Services
2 | {
3 | public class ColorProperties
4 | {
5 | public string PrimaryColor { get; set; }
6 | public string SecondaryColor { get; set; }
7 | public string TertiaryColor { get; set; }
8 | public string TextColor { get; set; }
9 | public string ComplementaryColor { get; set; }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/Services/NowPlayingEventArgs.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 |
4 | namespace Lively.Models.Services
5 | {
6 | public class NowPlayingEventArgs : EventArgs
7 | {
8 | public string AlbumArtist { get; set; }
9 | public string AlbumTitle { get; set; }
10 | public int AlbumTrackCount { get; set; }
11 | public string Artist { get; set; }
12 | public List Genres { get; set; }
13 | public string PlaybackType { get; set; }
14 | public string Subtitle { get; set; }
15 | public string Thumbnail { get; set; }
16 | public string Title { get; set; }
17 | public int TrackNumber { get; set; }
18 | //public ColorProperties Colors { get; set; }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/UserControls/FolderDropdownUserControlModel.cs:
--------------------------------------------------------------------------------
1 | using CommunityToolkit.Mvvm.ComponentModel;
2 |
3 | namespace Lively.Models.UserControls
4 | {
5 | public partial class FolderDropdownUserControlModel : ObservableObject
6 | {
7 | [ObservableProperty]
8 | private string fileName;
9 |
10 | [ObservableProperty]
11 | private string filePath;
12 |
13 | [ObservableProperty]
14 | private string imagePath;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/UserControls/NavigationItem.cs:
--------------------------------------------------------------------------------
1 | using CommunityToolkit.Mvvm.ComponentModel;
2 | using Lively.Models.Enums;
3 |
4 | namespace Lively.Models.UserControls
5 | {
6 | public partial class NavigationItem : ObservableObject
7 | {
8 | [ObservableProperty]
9 | private string name;
10 |
11 | [ObservableProperty]
12 | private string glyph;
13 |
14 | [ObservableProperty]
15 | private bool isAlert;
16 |
17 | [ObservableProperty]
18 | private int alert;
19 |
20 | [ObservableProperty]
21 | private ContentPageType pageType;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Models/WallpaperLayoutModel.cs:
--------------------------------------------------------------------------------
1 | using Newtonsoft.Json;
2 |
3 | namespace Lively.Models
4 | {
5 | ///
6 | /// Wallpaper arragement on display.
7 | ///
8 | public class WallpaperLayoutModel
9 | {
10 | [JsonProperty(PropertyName = "LivelyScreen")] //backward compatibility < v1.9
11 | public DisplayMonitor Display { get; set; }
12 | public string LivelyInfoPath { get; set; }
13 |
14 | /*
15 | [JsonConstructor]
16 | public WallpaperLayoutModel(string DeviceId, string DeviceName, int BitsPerPixel, Rectangle Bounds, Rectangle WorkingArea, string livelyInfoPath)
17 | {
18 | Display = new DisplayMonitor(DeviceId, DeviceName, BitsPerPixel, Bounds, WorkingArea);
19 | this.LivelyInfoPath = livelyInfoPath;
20 | }
21 | */
22 |
23 | public WallpaperLayoutModel(DisplayMonitor Display, string livelyInfoPath)
24 | {
25 | this.Display = Display;
26 | this.LivelyInfoPath = livelyInfoPath;
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Player.CefSharp/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Player.CefSharp/Extensions/CefSharp/MenuHandler.cs:
--------------------------------------------------------------------------------
1 | using CefSharp;
2 |
3 | namespace Lively.Player.CefSharp.Extensions.CefSharp
4 | {
5 | ///
6 | /// Cef right click contextmenu disable.
7 | ///
8 | class MenuHandler : IContextMenuHandler
9 | {
10 | public void OnBeforeContextMenu(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model)
11 | {
12 | //Disable right-click menu, conflicting with windows desktop contextmenu.
13 | model.Clear();
14 | }
15 |
16 | public bool OnContextMenuCommand(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IContextMenuParams parameters, CefMenuCommand commandId, CefEventFlags eventFlags)
17 | {
18 | return false;
19 | }
20 |
21 | public void OnContextMenuDismissed(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame)
22 | {
23 |
24 | }
25 |
26 | public bool RunContextMenu(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model, IRunContextMenuCallback callback)
27 | {
28 | return false;
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Player.CefSharp/Extensions/CefSharp/PopUpHandle.cs:
--------------------------------------------------------------------------------
1 | using CefSharp;
2 |
3 | namespace Lively.Player.CefSharp.Extensions.CefSharp
4 | {
5 | class PopUpHandle : ILifeSpanHandler
6 | {
7 | public bool DoClose(IWebBrowser chromiumWebBrowser, IBrowser browser)
8 | {
9 | return false;
10 | }
11 |
12 | public void OnAfterCreated(IWebBrowser chromiumWebBrowser, IBrowser browser)
13 | {
14 |
15 | }
16 |
17 | public void OnBeforeClose(IWebBrowser chromiumWebBrowser, IBrowser browser)
18 | {
19 |
20 | }
21 |
22 | public bool OnBeforePopup(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, string targetUrl, string targetFrameName, WindowOpenDisposition targetDisposition, bool userGesture, IPopupFeatures popupFeatures, IWindowInfo windowInfo, IBrowserSettings browserSettings, ref bool noJavascriptAccess, out IWebBrowser newBrowser)
23 | {
24 | //load hyperlinks on the same instance.
25 | browser.MainFrame.LoadUrl(targetUrl);
26 | newBrowser = null;
27 | return true;
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Player.CefSharp/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.IO;
3 | using System.Windows.Forms;
4 |
5 | namespace Lively.Player.CefSharp
6 | {
7 | internal static class Program
8 | {
9 | ///
10 | /// The main entry point for the application.
11 | ///
12 | [STAThread]
13 | static void Main()
14 | {
15 | try
16 | {
17 | //Deleting old CEF logfile if any.
18 | File.Delete(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),
19 | "Lively Wallpaper", "Cef", "logfile.txt"));
20 | }
21 | catch { }
22 |
23 | Application.EnableVisualStyles();
24 | Application.SetCompatibleTextRenderingDefault(false);
25 | Application.Run(new Form1());
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Player.CefSharp/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace Lively.Player.CefSharp.Properties
12 | {
13 |
14 |
15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
18 | {
19 |
20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
21 |
22 | public static Settings Default
23 | {
24 | get
25 | {
26 | return defaultInstance;
27 | }
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Player.CefSharp/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Player.CefSharp/appicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.Player.CefSharp/appicon.ico
--------------------------------------------------------------------------------
/src/Lively/Lively.Player.WebView2/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Player.WebView2/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows.Forms;
3 | using Microsoft.Web.WebView2.Core;
4 |
5 | namespace Lively.Player.WebView2
6 | {
7 | internal static class Program
8 | {
9 | ///
10 | /// The main entry point for the application.
11 | ///
12 | [STAThread]
13 | static void Main()
14 | {
15 | // ERROR_FILE_NOT_FOUND
16 | // Ref:
17 | if (!IsWebView2Available())
18 | Environment.Exit(2);
19 |
20 | Application.EnableVisualStyles();
21 | Application.SetCompatibleTextRenderingDefault(false);
22 | Application.Run(new Form1());
23 | }
24 |
25 | private static bool IsWebView2Available()
26 | {
27 | try
28 | {
29 | return !string.IsNullOrEmpty(CoreWebView2Environment.GetAvailableBrowserVersionString());
30 | }
31 | catch (Exception)
32 | {
33 | return false;
34 | }
35 | }
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Player.WebView2/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace Lively.Player.WebView2.Properties
12 | {
13 |
14 |
15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
18 | {
19 |
20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
21 |
22 | public static Settings Default
23 | {
24 | get
25 | {
26 | return defaultInstance;
27 | }
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Player.WebView2/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Player.Wmf/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Player.Wmf/App.xaml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Player.Wmf/MainWindow.xaml:
--------------------------------------------------------------------------------
1 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Player.Wmf/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace Lively.Player.Wmf.Properties {
12 |
13 |
14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.12.0.0")]
16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
17 |
18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
19 |
20 | public static Settings Default {
21 | get {
22 | return defaultInstance;
23 | }
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Player.Wmf/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Player.Wmf/StartArgs.cs:
--------------------------------------------------------------------------------
1 | using CommandLine;
2 |
3 | namespace Lively.Player.Wmf
4 | {
5 | public class StartArgs
6 | {
7 | [Option("path",
8 | Required = true,
9 | HelpText = "The file/video stream path.")]
10 | public string FilePath { get; set; }
11 |
12 | [Option("stretch",
13 | Required = false,
14 | Default = 0,
15 | HelpText = "Video Scaling algorithm.")]
16 | public int StretchMode { get; set; }
17 |
18 | [Option("volume",
19 | Required = false,
20 | Default = 100,
21 | HelpText = "Audio volume")]
22 | public int Volume { get; set; }
23 |
24 | [Option("property",
25 | Required = false,
26 | Default = null,
27 | HelpText = "LivelyProperties.json filepath.")]
28 | public string Properties { get; set; }
29 |
30 | [Option("verbose-log",
31 | Required = false,
32 | HelpText = "Verbose Logging")]
33 | public bool VerboseLog { get; set; }
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.Shared/Lively.UI.Shared.shproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 0c64467b-8ef0-4896-85b1-0d8020eceab3
5 | 14.0
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.Shared/ViewModels/AboutViewModel.cs:
--------------------------------------------------------------------------------
1 | using CommunityToolkit.Mvvm.ComponentModel;
2 | using CommunityToolkit.Mvvm.Input;
3 | using Lively.Common;
4 |
5 | namespace Lively.UI.Shared.ViewModels
6 | {
7 | public partial class AboutViewModel : ObservableObject
8 | {
9 | [RelayCommand]
10 | private void OpenPersonalWebsite()
11 | {
12 | LinkUtil.OpenBrowser("https://rocksdanister.com");
13 | }
14 |
15 | [RelayCommand]
16 | private void OpenGithub()
17 | {
18 | LinkUtil.OpenBrowser("https://github.com/rocksdanister");
19 | }
20 |
21 | [RelayCommand]
22 | private void OpenTwitter()
23 | {
24 | LinkUtil.OpenBrowser("https://twitter.com/rocksdanister");
25 | }
26 |
27 | [RelayCommand]
28 | private void OpenYoutube()
29 | {
30 | LinkUtil.OpenBrowser("https://www.youtube.com/channel/UClep84ofxC41H8-R9UfNPSQ");
31 | }
32 |
33 | [RelayCommand]
34 | private void OpenReddit()
35 | {
36 | LinkUtil.OpenBrowser("https://reddit.com/u/rocksdanister");
37 | }
38 |
39 | [RelayCommand]
40 | private void OpenEmail()
41 | {
42 | LinkUtil.OpenBrowser("mailto:awoo.git@gmail.com");
43 | }
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.Shared/ViewModels/Gallery/ReportWallpaperViewModel.cs:
--------------------------------------------------------------------------------
1 | using CommunityToolkit.Mvvm.ComponentModel;
2 | using Lively.Models;
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace Lively.UI.Shared.ViewModels
10 | {
11 | public partial class ReportWallpaperViewModel : ObservableObject
12 | {
13 | public ReportWallpaperViewModel(LibraryModel obj)
14 | {
15 | this.Model = obj;
16 | }
17 |
18 | [ObservableProperty]
19 | private LibraryModel model;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/CustomIcons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/CustomIcons.ttf
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/Icons/icons8-info.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/Icons/icons8-ok.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/Icons/icons8-warn.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/LargeTile.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/LargeTile.scale-100.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/LargeTile.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/LargeTile.scale-125.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/LargeTile.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/LargeTile.scale-150.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/LargeTile.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/LargeTile.scale-200.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/LargeTile.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/LargeTile.scale-400.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/LockScreenLogo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/LockScreenLogo.scale-200.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/SmallTile.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/SmallTile.scale-100.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/SmallTile.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/SmallTile.scale-125.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/SmallTile.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/SmallTile.scale-150.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/SmallTile.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/SmallTile.scale-200.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/SmallTile.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/SmallTile.scale-400.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/SplashScreen.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/SplashScreen.scale-100.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/SplashScreen.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/SplashScreen.scale-125.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/SplashScreen.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/SplashScreen.scale-150.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/SplashScreen.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/SplashScreen.scale-200.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/SplashScreen.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/SplashScreen.scale-400.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/Square150x150Logo.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/Square150x150Logo.scale-100.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/Square150x150Logo.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/Square150x150Logo.scale-125.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/Square150x150Logo.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/Square150x150Logo.scale-150.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/Square150x150Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/Square150x150Logo.scale-200.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/Square150x150Logo.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/Square150x150Logo.scale-400.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/Square44x44Logo.altform-lightunplated_targetsize-16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/Square44x44Logo.altform-lightunplated_targetsize-16.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/Square44x44Logo.altform-lightunplated_targetsize-24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/Square44x44Logo.altform-lightunplated_targetsize-24.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/Square44x44Logo.altform-lightunplated_targetsize-256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/Square44x44Logo.altform-lightunplated_targetsize-256.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/Square44x44Logo.altform-lightunplated_targetsize-32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/Square44x44Logo.altform-lightunplated_targetsize-32.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/Square44x44Logo.altform-lightunplated_targetsize-48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/Square44x44Logo.altform-lightunplated_targetsize-48.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/Square44x44Logo.altform-unplated_targetsize-16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/Square44x44Logo.altform-unplated_targetsize-16.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/Square44x44Logo.altform-unplated_targetsize-256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/Square44x44Logo.altform-unplated_targetsize-256.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/Square44x44Logo.altform-unplated_targetsize-32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/Square44x44Logo.altform-unplated_targetsize-32.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/Square44x44Logo.altform-unplated_targetsize-48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/Square44x44Logo.altform-unplated_targetsize-48.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/Square44x44Logo.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/Square44x44Logo.scale-100.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/Square44x44Logo.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/Square44x44Logo.scale-125.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/Square44x44Logo.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/Square44x44Logo.scale-150.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/Square44x44Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/Square44x44Logo.scale-200.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/Square44x44Logo.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/Square44x44Logo.scale-400.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/Square44x44Logo.targetsize-16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/Square44x44Logo.targetsize-16.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/Square44x44Logo.targetsize-24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/Square44x44Logo.targetsize-24.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/Square44x44Logo.targetsize-24_altform-unplated.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/Square44x44Logo.targetsize-24_altform-unplated.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/Square44x44Logo.targetsize-256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/Square44x44Logo.targetsize-256.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/Square44x44Logo.targetsize-32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/Square44x44Logo.targetsize-32.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/Square44x44Logo.targetsize-48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/Square44x44Logo.targetsize-48.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/StoreLogo.backup.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/StoreLogo.backup.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/StoreLogo.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/StoreLogo.scale-100.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/StoreLogo.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/StoreLogo.scale-125.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/StoreLogo.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/StoreLogo.scale-150.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/StoreLogo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/StoreLogo.scale-200.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/StoreLogo.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/StoreLogo.scale-400.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/Wide310x150Logo.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/Wide310x150Logo.scale-100.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/Wide310x150Logo.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/Wide310x150Logo.scale-125.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/Wide310x150Logo.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/Wide310x150Logo.scale-150.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/Wide310x150Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/Wide310x150Logo.scale-200.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/Wide310x150Logo.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/Wide310x150Logo.scale-400.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/banner-lively-1080.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/banner-lively-1080.jpg
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/changelog-page-preview.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/changelog-page-preview.jpg
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/icon-lively-48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/icon-lively-48.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/icons8-application-window-96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/icons8-application-window-96.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/icons8-artificial-intelligence-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/icons8-artificial-intelligence-100.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/icons8-cat-back-view-64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/icons8-cat-back-view-64.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/icons8-depth-effect-96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/icons8-depth-effect-96.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/icons8-github-96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/icons8-github-96.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/icons8-google-96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/icons8-google-96.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/icons8-landscape-64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/icons8-landscape-64.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/icons8-mail-96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/icons8-mail-96.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/icons8-panorama-96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/icons8-panorama-96.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/icons8-reddit-96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/icons8-reddit-96.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/icons8-twitter-96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/icons8-twitter-96.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/icons8-wallpaper-96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/icons8-wallpaper-96.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/icons8-youtube-96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/icons8-youtube-96.png
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/patreon-page-preview.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/patreon-page-preview.jpg
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Assets/tray-tutorial.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/Assets/tray-tutorial.gif
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Directory.Build.props:
--------------------------------------------------------------------------------
1 |
2 |
3 | false
4 |
5 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Extensions/ColorExtensions.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using Windows.UI;
7 |
8 | namespace Lively.UI.WinUI.Extensions
9 | {
10 | public static class ColorExtensions
11 | {
12 | public static Color ToColor(this string hexaColor)
13 | {
14 | // Remove alpha channel if exists
15 | if (hexaColor.Length == 9 && hexaColor.StartsWith('#'))
16 | hexaColor = hexaColor.Substring(3);
17 |
18 | return Color.FromArgb(
19 | 255,
20 | System.Convert.ToByte(hexaColor.Substring(1, 2), 16),
21 | System.Convert.ToByte(hexaColor.Substring(3, 2), 16),
22 | System.Convert.ToByte(hexaColor.Substring(5, 2), 16)
23 | );
24 | }
25 |
26 | public static string ToHex(this Color color)
27 | {
28 | return "#" + color.R.ToString("X2") +
29 | color.G.ToString("X2") +
30 | color.B.ToString("X2");
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Factories/IAppThemeFactory.cs:
--------------------------------------------------------------------------------
1 | using Lively.Models;
2 |
3 | namespace Lively.UI.WinUI.Factories
4 | {
5 | public interface IAppThemeFactory
6 | {
7 | ThemeModel CreateFromDirectory(string themeDir);
8 | ThemeModel CreateFromFile(string filePath, string name, string description);
9 | }
10 | }
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Helpers/Converters/AudioVolumeGlyphConverter.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.UI.Xaml.Controls;
2 | using Microsoft.UI.Xaml.Data;
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace Lively.UI.WinUI.Helpers.Converters
10 | {
11 | class AudioVolumeGlyphConverter : IValueConverter
12 | {
13 | public object Convert(object value, Type targetType, object parameter, string language)
14 | {
15 | double volume;
16 | if (value is double)
17 | volume = (double)value;
18 | else if (value is int)
19 | volume = (int)value;
20 | else
21 | volume = 0;
22 | return audioIcons[(int)Math.Ceiling((audioIcons.Length - 1) * volume / 100)];
23 | }
24 |
25 | public object ConvertBack(object value, Type targetType, object parameter, string language)
26 | {
27 | throw new NotImplementedException();
28 | }
29 |
30 | private readonly FontIcon[] audioIcons =
31 | {
32 | new FontIcon(){ Glyph = "\uE74F" },
33 | new FontIcon(){ Glyph = "\uE992" },
34 | new FontIcon(){ Glyph = "\uE993" },
35 | new FontIcon(){ Glyph = "\uE994" },
36 | new FontIcon(){ Glyph = "\uE995" },
37 | };
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Helpers/Converters/BoolToBackButtonVisibilityConverter.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.UI.Xaml.Controls;
2 | using Microsoft.UI.Xaml.Data;
3 | using System;
4 |
5 | namespace Lively.UI.WinUI.Helpers.Converters
6 | {
7 | public class BoolToBackButtonVisibilityConverter : IValueConverter
8 | {
9 | public object Convert(object value, Type targetType, object parameter, string language)
10 | {
11 | if (value is bool isBackEnabled)
12 | {
13 | return isBackEnabled ? NavigationViewBackButtonVisible.Visible : NavigationViewBackButtonVisible.Collapsed;
14 | }
15 | return NavigationViewBackButtonVisible.Auto;
16 | }
17 |
18 | public object ConvertBack(object value, Type targetType, object parameter, string language)
19 | {
20 | if (value is NavigationViewBackButtonVisible visibility)
21 | {
22 | return visibility == NavigationViewBackButtonVisible.Visible;
23 | }
24 | return false;
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Helpers/Converters/BoolToVisibilityConverter.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.UI.Xaml;
2 | using Microsoft.UI.Xaml.Data;
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace Lively.UI.WinUI.Helpers.Converters
10 | {
11 | public class BooleanToVisibilityConverter : IValueConverter
12 | {
13 | public object Convert(object value, Type targetType, object parameter, string language)
14 | {
15 | if (value is bool)
16 | {
17 | return (bool)value ^ (parameter as string ?? string.Empty).Equals("Reverse") ?
18 | Visibility.Visible : Visibility.Collapsed;
19 | }
20 | else
21 | {
22 | return value is not null ^ (parameter as string ?? string.Empty).Equals("Reverse") ?
23 | Visibility.Visible : Visibility.Collapsed;
24 | }
25 |
26 | }
27 |
28 |
29 | public object ConvertBack(object value, Type targetType, object parameter, string language) => throw new NotSupportedException();
30 | }
31 | }
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Helpers/Converters/FloatToBoolConverter.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.UI.Xaml.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace Lively.UI.WinUI.Helpers.Converters
9 | {
10 | public class FloatToBoolConverter : IValueConverter
11 | {
12 | public object Convert(object value, Type targetType, object parameter, string language)
13 | {
14 | return value is float val && val == 0;
15 | }
16 |
17 | public object ConvertBack(object value, Type targetType, object parameter, string language)
18 | {
19 | throw new NotImplementedException();
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Helpers/Converters/HexStringToColorConverter.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.UI;
2 | using Microsoft.UI.Xaml.Data;
3 | using System;
4 | using Windows.UI;
5 | using Lively.UI.WinUI.Extensions;
6 |
7 | namespace Lively.UI.WinUI.Helpers.Converters
8 | {
9 | public class HexStringToColorConverter : IValueConverter
10 | {
11 | public object Convert(object value, Type targetType, object parameter, string language)
12 | {
13 | try
14 | {
15 | return (value as string).ToColor();
16 | }
17 | catch
18 | {
19 | return "#FFC0CB".ToColor();
20 | }
21 | }
22 |
23 | public object ConvertBack(object value, Type targetType, object parameter, string language)
24 | {
25 | try
26 | {
27 | return ((Color)value).ToHex();
28 | }
29 | catch
30 | {
31 | return Colors.Pink.ToHex();
32 | }
33 | }
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Helpers/Converters/ListViewSelectionModeStringToEnumConverter.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.UI.Xaml.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 | using Microsoft.UI.Xaml;
8 | using Microsoft.UI.Xaml.Controls;
9 |
10 | namespace Lively.UI.WinUI.Helpers.Converters
11 | {
12 | public class ListViewSelectionModeStringToEnumConverter : IValueConverter
13 | {
14 | public object Convert(object value, Type targetType, object parameter, string language)
15 | {
16 | return value.ToString().ToLower() switch
17 | {
18 | "none" => ListViewSelectionMode.None,
19 | "single" => ListViewSelectionMode.Single,
20 | "multiple" => ListViewSelectionMode.Multiple,
21 | "extended" => ListViewSelectionMode.Extended,
22 | _ => ListViewSelectionMode.Single,
23 | };
24 | }
25 |
26 | public object ConvertBack(object value, Type targetType, object parameter, string language)
27 | {
28 | throw new NotImplementedException();
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Helpers/Converters/NullVisibilityConverter.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.UI.Xaml;
2 | using Microsoft.UI.Xaml.Data;
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace Lively.UI.WinUI.Helpers.Converters
10 | {
11 | class NullVisibilityConverter : IValueConverter
12 | {
13 | public object Convert(object value, Type targetType, object parameter, string language)
14 | {
15 | return value is not null ^ (parameter as string ?? string.Empty).Equals("Reverse") ?
16 | Visibility.Visible : Visibility.Collapsed;
17 | }
18 |
19 | public object ConvertBack(object value, Type targetType, object parameter, string language)
20 | {
21 | throw new NotImplementedException();
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Helpers/Converters/StringToInfoBarSeverityConverter.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.UI.Xaml.Controls;
2 | using Microsoft.UI.Xaml.Data;
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace Lively.UI.WinUI.Helpers.Converters
10 | {
11 | public class StringToInfoBarSeverityConverter : IValueConverter
12 | {
13 | public object Convert(object value, Type targetType, object parameter, string language)
14 | {
15 | return (value as string) switch
16 | {
17 | "Informational" => InfoBarSeverity.Informational,
18 | "Success" => InfoBarSeverity.Success,
19 | "Warning" => InfoBarSeverity.Warning,
20 | "Error" => InfoBarSeverity.Error,
21 | _ => InfoBarSeverity.Error,
22 | };
23 | }
24 |
25 | public object ConvertBack(object value, Type targetType, object parameter, string language)
26 | {
27 | throw new NotImplementedException();
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Helpers/Converters/StringToInfoBarSeverityIconConverter.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.UI.Xaml.Controls;
2 | using Microsoft.UI.Xaml.Data;
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace Lively.UI.WinUI.Helpers.Converters
10 | {
11 | class StringToInfoBarSeverityIconConverter : IValueConverter
12 | {
13 | public object Convert(object value, Type targetType, object parameter, string language)
14 | {
15 | return (value as string) switch
16 | {
17 | "Informational" => $"ms-appx:///Assets/Icons/icons8-info.svg",
18 | "Success" => $"ms-appx:///Assets/Icons/icons8-ok.svg",
19 | "Warning" => $"ms-appx:///Assets/Icons/icons8-warn.svg",
20 | "Error" => $"ms-appx:///Assets/Icons/icons8-error.svg",
21 | _ => $"ms-appx:///Assets/Icons/icons8-error.svg",
22 | };
23 | }
24 |
25 | public object ConvertBack(object value, Type targetType, object parameter, string language)
26 | {
27 | throw new NotImplementedException();
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Helpers/Converters/StringTruncateConverter.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.UI.Xaml.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace Lively.UI.WinUI.Helpers.Converters
9 | {
10 | public class StringTruncateConverter : IValueConverter
11 | {
12 | public object Convert(object value, Type targetType, object parameter, string language)
13 | {
14 | if (value is string str && parameter is int maxLength && str.Length > maxLength)
15 | {
16 | return string.Concat(str.AsSpan(0, maxLength), "...");
17 | }
18 | return value;
19 | }
20 |
21 | public object ConvertBack(object value, Type targetType, object parameter, string language)
22 | {
23 | throw new NotImplementedException();
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Helpers/Converters/UriToBitmapImageConverter.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.UI.Xaml.Data;
2 | using Microsoft.UI.Xaml.Media.Imaging;
3 | using System;
4 |
5 | namespace Lively.UI.WinUI.Helpers.Converters
6 | {
7 | public class UriToBitmapImageConverter : IValueConverter
8 | {
9 | public object Convert(object value, Type targetType, object parameter, string language)
10 | {
11 | return value is Uri uri ? new BitmapImage(uri) : null;
12 | }
13 |
14 | public object ConvertBack(object value, Type targetType, object parameter, string language)
15 | {
16 | return (value as BitmapImage)?.UriSource?.ToString();
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Helpers/Converters/WallpaperTypeEnumToStringConverter.cs:
--------------------------------------------------------------------------------
1 | using Lively.Common.Services;
2 | using Lively.Models.Enums;
3 | using Microsoft.Extensions.DependencyInjection;
4 | using Microsoft.UI.Xaml.Data;
5 | using System;
6 |
7 | namespace Lively.UI.WinUI.Helpers.Converters
8 | {
9 | public sealed class WallpaperTypeEnumToStringConverter : IValueConverter
10 | {
11 | public object Convert(object value, Type targetType, object parameter, string language)
12 | {
13 | var targetValue = string.Empty;
14 | try
15 | {
16 | var type = (WallpaperType)value;
17 | targetValue = App.Services.GetRequiredService().GetString(type);
18 | }
19 | catch { }
20 | return targetValue;
21 | }
22 |
23 | public object ConvertBack(object value, Type targetType, object parameter, string language)
24 | {
25 | throw new NotImplementedException();
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Helpers/NavigationMenuItemTemplateSelector.cs:
--------------------------------------------------------------------------------
1 | using Lively.Models.UserControls;
2 | using Microsoft.UI.Xaml;
3 | using Microsoft.UI.Xaml.Controls;
4 |
5 | namespace Lively.UI.WinUI.Helpers
6 | {
7 | public class NavigationMenuItemTemplateSelector : DataTemplateSelector
8 | {
9 | public DataTemplate MainTemplate { get; set; }
10 | public DataTemplate SettingsTemplate { get; set; }
11 |
12 | protected override DataTemplate SelectTemplateCore(object item)
13 | {
14 | return item is NavigationItem navItem && !string.IsNullOrEmpty(navItem.Glyph) ?
15 | MainTemplate : SettingsTemplate;
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Nlog.config:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Services/DispatcherService.cs:
--------------------------------------------------------------------------------
1 | using Lively.Common.Services;
2 | using Microsoft.UI.Dispatching;
3 | using System;
4 |
5 | namespace Lively.UI.WinUI.Services
6 | {
7 | public class DispatcherService : IDispatcherService
8 | {
9 | private readonly DispatcherQueue dispatcherQueue;
10 |
11 | public DispatcherService()
12 | {
13 | // MainWindow dispatcher may not be ready yet, creating our own instead.
14 | dispatcherQueue = DispatcherQueue.GetForCurrentThread() ?? DispatcherQueueController.CreateOnCurrentThread().DispatcherQueue;
15 | }
16 |
17 | public bool TryEnqueue(Action action)
18 | {
19 | return dispatcherQueue.TryEnqueue(() => action());
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/StartArgs.cs:
--------------------------------------------------------------------------------
1 | using CommandLine;
2 |
3 | namespace Lively.UI.WinUI
4 | {
5 | public class StartArgs
6 | {
7 | [Option("trayWidget",
8 | Required = false,
9 | HelpText = "Run customise-traymenu without initializing MainWindow.")]
10 | public bool TrayWidget { get; set; }
11 |
12 | [Option("appUpdate",
13 | Required = false,
14 | HelpText = "Open update page.")]
15 | public bool AppUpdate { get; set; }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Views/LivelyProperty/LivelyPropertiesTray.xaml:
--------------------------------------------------------------------------------
1 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Views/LivelyProperty/LivelyPropertiesView.xaml.cs:
--------------------------------------------------------------------------------
1 | using Lively.UI.Shared.ViewModels;
2 | using Microsoft.UI.Xaml.Controls;
3 | using Microsoft.UI.Xaml.Navigation;
4 |
5 | namespace Lively.UI.WinUI.Views.LivelyProperty
6 | {
7 | public sealed partial class LivelyPropertiesView : Page
8 | {
9 | private CustomiseWallpaperViewModel viewModel;
10 |
11 | // Default constructor for Frame.
12 | public LivelyPropertiesView()
13 | {
14 | this.InitializeComponent();
15 | }
16 |
17 | // Dialog constructor.
18 | public LivelyPropertiesView(CustomiseWallpaperViewModel viewModel) : this()
19 | {
20 | this.viewModel = viewModel;
21 | this.DataContext = this.viewModel;
22 | }
23 |
24 | // Frame constructor.
25 | protected override void OnNavigatedTo(NavigationEventArgs e)
26 | {
27 | this.viewModel = e.Parameter as CustomiseWallpaperViewModel;
28 | this.DataContext = this.viewModel;
29 | }
30 |
31 | //protected override void OnNavigatedFrom(NavigationEventArgs e)
32 | //{
33 | // viewModel.OnClose();
34 | //}
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Views/Pages/AboutView.xaml.cs:
--------------------------------------------------------------------------------
1 | using Lively.UI.Shared.ViewModels;
2 | using Microsoft.Extensions.DependencyInjection;
3 | using Microsoft.UI.Xaml.Controls;
4 |
5 | namespace Lively.UI.WinUI.Views.Pages
6 | {
7 | ///
8 | /// An empty page that can be used on its own or navigated to within a Frame.
9 | ///
10 | public sealed partial class AboutView : Page
11 | {
12 | public AboutView()
13 | {
14 | this.InitializeComponent();
15 | this.DataContext = App.Services.GetRequiredService();
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Views/Pages/AddWallpaperCreateView.xaml.cs:
--------------------------------------------------------------------------------
1 | using Lively.UI.Shared.ViewModels;
2 | using Microsoft.UI.Xaml.Controls;
3 |
4 | // To learn more about WinUI, the WinUI project structure,
5 | // and more about our project templates, see: http://aka.ms/winui-project-info.
6 |
7 | namespace Lively.UI.WinUI.Views.Pages
8 | {
9 | ///
10 | /// An empty page that can be used on its own or navigated to within a Frame.
11 | ///
12 | public sealed partial class AddWallpaperCreateView : Page
13 | {
14 | public AddWallpaperCreateView(AddWallpaperCreateViewModel vm)
15 | {
16 | this.InitializeComponent();
17 | this.DataContext = vm;
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Views/Pages/AddWallpaperDataView.xaml.cs:
--------------------------------------------------------------------------------
1 | using Lively.UI.Shared.ViewModels;
2 | using Microsoft.UI.Xaml.Controls;
3 |
4 | // To learn more about WinUI, the WinUI project structure,
5 | // and more about our project templates, see: http://aka.ms/winui-project-info.
6 |
7 | namespace Lively.UI.WinUI.Views.Pages
8 | {
9 | ///
10 | /// An empty page that can be used on its own or navigated to within a Frame.
11 | ///
12 | public sealed partial class AddWallpaperDataView : Page
13 | {
14 | public AddWallpaperDataView(AddWallpaperDataViewModel vm)
15 | {
16 | this.InitializeComponent();
17 | this.DataContext = vm;
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Views/Pages/AppThemeView.xaml.cs:
--------------------------------------------------------------------------------
1 | using Lively.Common;
2 | using Lively.UI.Shared.ViewModels;
3 | using Microsoft.Extensions.DependencyInjection;
4 | using Microsoft.UI.Xaml;
5 | using Microsoft.UI.Xaml.Controls;
6 | using System;
7 |
8 | // To learn more about WinUI, the WinUI project structure,
9 | // and more about our project templates, see: http://aka.ms/winui-project-info.
10 |
11 | namespace Lively.UI.WinUI.Views.Pages
12 | {
13 | ///
14 | /// An empty page that can be used on its own or navigated to within a Frame.
15 | ///
16 | public sealed partial class AppThemeView : Page
17 | {
18 | public AppThemeView()
19 | {
20 | this.InitializeComponent();
21 | this.DataContext = App.Services.GetRequiredService();
22 | }
23 |
24 | //NavigateUri not working, Issue: https://github.com/microsoft/microsoft-ui-xaml/issues/5630
25 | private void Color_HyperlinkButton_Click(object sender, RoutedEventArgs e) => LinkUtil.OpenBrowser("ms-settings:colors");
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Views/Pages/ChooseDisplayView.xaml:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Views/Pages/ChooseDisplayView.xaml.cs:
--------------------------------------------------------------------------------
1 | using Lively.UI.Shared.ViewModels;
2 | using Microsoft.UI.Xaml.Controls;
3 |
4 | // To learn more about WinUI, the WinUI project structure,
5 | // and more about our project templates, see: http://aka.ms/winui-project-info.
6 |
7 | namespace Lively.UI.WinUI.Views.Pages
8 | {
9 | ///
10 | /// An empty page that can be used on its own or navigated to within a Frame.
11 | ///
12 | public sealed partial class ChooseDisplayView : Page
13 | {
14 | public ChooseDisplayView(ChooseDisplayViewModel vm)
15 | {
16 | this.InitializeComponent();
17 | this.DataContext = vm;
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Views/Pages/ControlPanel/ScreensaverLayoutView.xaml.cs:
--------------------------------------------------------------------------------
1 | using Lively.UI.Shared.ViewModels;
2 | using Microsoft.UI.Xaml.Controls;
3 | using Microsoft.UI.Xaml.Navigation;
4 |
5 | namespace Lively.UI.WinUI.Views.Pages.ControlPanel
6 | {
7 | public sealed partial class ScreensaverLayoutView : Page
8 | {
9 | private ScreensaverLayoutViewModel viewModel;
10 |
11 | public ScreensaverLayoutView()
12 | {
13 | this.InitializeComponent();
14 | }
15 |
16 | protected override void OnNavigatedTo(NavigationEventArgs e)
17 | {
18 | this.viewModel ??= (DataContext as ControlPanelViewModel)?.ScreensaverVm;
19 | this.DataContext = this.viewModel;
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Views/Pages/ControlPanel/WallpaperLayoutCustomiseView.xaml:
--------------------------------------------------------------------------------
1 |
10 |
11 |
15 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Views/Pages/ControlPanel/WallpaperLayoutView.xaml.cs:
--------------------------------------------------------------------------------
1 | using Lively.UI.Shared.ViewModels;
2 | using Microsoft.UI.Xaml.Controls;
3 | using Microsoft.UI.Xaml.Navigation;
4 |
5 | namespace Lively.UI.WinUI.Views.Pages.ControlPanel
6 | {
7 | public sealed partial class WallpaperLayoutView : Page
8 | {
9 | private WallpaperLayoutViewModel viewModel;
10 |
11 | public WallpaperLayoutView()
12 | {
13 | this.InitializeComponent();
14 | }
15 |
16 | protected override void OnNavigatedTo(NavigationEventArgs e)
17 | {
18 | this.viewModel ??= (DataContext as ControlPanelViewModel)?.WallpaperVm;
19 | this.DataContext = this.viewModel;
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Views/Pages/DepthEstimateWallpaperView.xaml.cs:
--------------------------------------------------------------------------------
1 | using Lively.UI.Shared.ViewModels;
2 | using Microsoft.UI.Xaml.Controls;
3 |
4 | // To learn more about WinUI, the WinUI project structure,
5 | // and more about our project templates, see: http://aka.ms/winui-project-info.
6 |
7 | namespace Lively.UI.WinUI.Views.Pages
8 | {
9 | ///
10 | /// An empty page that can be used on its own or navigated to within a Frame.
11 | ///
12 | public sealed partial class DepthEstimateWallpaperView : Page
13 | {
14 | public DepthEstimateWallpaperView(DepthEstimateWallpaperViewModel vm)
15 | {
16 | this.InitializeComponent();
17 | this.DataContext = vm;
18 |
19 | this.Loaded += (_, _) =>
20 | {
21 | BackgroundGridShadow.Receivers.Add(BackgroundGrid);
22 | };
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Views/Pages/Gallery/GalleryFeaturedView.xaml:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Views/Pages/Gallery/GalleryFeaturedView.xaml.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.UI.Xaml;
2 | using Microsoft.UI.Xaml.Controls;
3 | using Microsoft.UI.Xaml.Controls.Primitives;
4 | using Microsoft.UI.Xaml.Data;
5 | using Microsoft.UI.Xaml.Input;
6 | using Microsoft.UI.Xaml.Media;
7 | using Microsoft.UI.Xaml.Navigation;
8 | using System;
9 | using System.Collections.Generic;
10 | using System.IO;
11 | using System.Linq;
12 | using System.Runtime.InteropServices.WindowsRuntime;
13 | using Windows.Foundation;
14 | using Windows.Foundation.Collections;
15 |
16 | // To learn more about WinUI, the WinUI project structure,
17 | // and more about our project templates, see: http://aka.ms/winui-project-info.
18 |
19 | namespace Lively.UI.WinUI.Views.Pages.Gallery
20 | {
21 | ///
22 | /// An empty page that can be used on its own or navigated to within a Frame.
23 | ///
24 | public sealed partial class GalleryFeaturedView : Page
25 | {
26 | public GalleryFeaturedView()
27 | {
28 | this.InitializeComponent();
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Views/Pages/Gallery/GalleryLoginView.xaml.cs:
--------------------------------------------------------------------------------
1 | using Lively.UI.Shared.ViewModels;
2 | using Microsoft.Extensions.DependencyInjection;
3 | using Microsoft.UI.Xaml.Controls;
4 | using System;
5 |
6 | // To learn more about WinUI, the WinUI project structure,
7 | // and more about our project templates, see: http://aka.ms/winui-project-info.
8 |
9 | namespace Lively.UI.WinUI.Views.Pages.Gallery
10 | {
11 | ///
12 | /// An empty page that can be used on its own or navigated to within a Frame.
13 | ///
14 | public sealed partial class GalleryLoginView : Page
15 | {
16 | public GalleryLoginView()
17 | {
18 | this.InitializeComponent();
19 | this.DataContext = App.Services.GetRequiredService();
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Views/Pages/Gallery/GallerySubscriptionView.xaml.cs:
--------------------------------------------------------------------------------
1 | using Lively.UI.Shared.ViewModels;
2 | using Microsoft.Extensions.DependencyInjection;
3 | using Microsoft.UI.Xaml.Controls;
4 | using System;
5 |
6 | // To learn more about WinUI, the WinUI project structure,
7 | // and more about our project templates, see: http://aka.ms/winui-project-info.
8 |
9 | namespace Lively.UI.WinUI.Views.Pages.Gallery
10 | {
11 | ///
12 | /// An empty page that can be used on its own or navigated to within a Frame.
13 | ///
14 | public sealed partial class GallerySubscriptionView : Page
15 | {
16 | public GallerySubscriptionView()
17 | {
18 | this.InitializeComponent();
19 | this.DataContext = App.Services.GetRequiredService();
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Views/Pages/Gallery/ManageAccountView.xaml.cs:
--------------------------------------------------------------------------------
1 | using Lively.UI.Shared.ViewModels;
2 | using Microsoft.Extensions.DependencyInjection;
3 | using Microsoft.UI.Xaml.Controls;
4 | using System;
5 |
6 | // To learn more about WinUI, the WinUI project structure,
7 | // and more about our project templates, see: http://aka.ms/winui-project-info.
8 |
9 | namespace Lively.UI.WinUI.Views.Pages.Gallery
10 | {
11 | ///
12 | /// An empty page that can be used on its own or navigated to within a Frame.
13 | ///
14 | public sealed partial class ManageAccountView : Page
15 | {
16 | public ManageAccountView()
17 | {
18 | this.InitializeComponent();
19 | this.DataContext = App.Services.GetRequiredService();
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Views/Pages/Gallery/ReportWallpaperView.xaml.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.UI.Xaml;
2 | using Microsoft.UI.Xaml.Controls;
3 | using Microsoft.UI.Xaml.Controls.Primitives;
4 | using Microsoft.UI.Xaml.Data;
5 | using Microsoft.UI.Xaml.Input;
6 | using Microsoft.UI.Xaml.Media;
7 | using Microsoft.UI.Xaml.Navigation;
8 | using System;
9 | using System.Collections.Generic;
10 | using System.IO;
11 | using System.Linq;
12 | using System.Runtime.InteropServices.WindowsRuntime;
13 | using Windows.Foundation;
14 | using Windows.Foundation.Collections;
15 |
16 | // To learn more about WinUI, the WinUI project structure,
17 | // and more about our project templates, see: http://aka.ms/winui-project-info.
18 |
19 | namespace Lively.UI.WinUI.Views.Pages.Gallery
20 | {
21 | ///
22 | /// An empty page that can be used on its own or navigated to within a Frame.
23 | ///
24 | public sealed partial class ReportWallpaperView : Page
25 | {
26 | public ReportWallpaperView()
27 | {
28 | this.InitializeComponent();
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Views/Pages/Gallery/RestoreWallpaperView.xaml.cs:
--------------------------------------------------------------------------------
1 | using Lively.UI.Shared.ViewModels;
2 | using Microsoft.UI.Xaml.Controls;
3 |
4 | // To learn more about WinUI, the WinUI project structure,
5 | // and more about our project templates, see: http://aka.ms/winui-project-info.
6 |
7 | namespace Lively.UI.WinUI.Views.Pages.Gallery
8 | {
9 | ///
10 | /// An empty page that can be used on its own or navigated to within a Frame.
11 | ///
12 | public sealed partial class RestoreWallpaperView : Page
13 | {
14 | public RestoreWallpaperView(RestoreWallpaperViewModel vm)
15 | {
16 | this.InitializeComponent();
17 | this.DataContext = vm;
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Views/Pages/Gallery/ShareWallpaperView.xaml.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.UI.Xaml;
2 | using Microsoft.UI.Xaml.Controls;
3 | using Microsoft.UI.Xaml.Controls.Primitives;
4 | using Microsoft.UI.Xaml.Data;
5 | using Microsoft.UI.Xaml.Input;
6 | using Microsoft.UI.Xaml.Media;
7 | using Microsoft.UI.Xaml.Navigation;
8 | using System;
9 | using System.Collections.Generic;
10 | using System.IO;
11 | using System.Linq;
12 | using System.Runtime.InteropServices.WindowsRuntime;
13 | using Windows.Foundation;
14 | using Windows.Foundation.Collections;
15 |
16 | // To learn more about WinUI, the WinUI project structure,
17 | // and more about our project templates, see: http://aka.ms/winui-project-info.
18 |
19 | namespace Lively.UI.WinUI.Views.Pages.Gallery
20 | {
21 | ///
22 | /// An empty page that can be used on its own or navigated to within a Frame.
23 | ///
24 | public sealed partial class ShareWallpaperView : Page
25 | {
26 | public ShareWallpaperView()
27 | {
28 | this.InitializeComponent();
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Views/Pages/LibraryAboutView.xaml.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.UI.Xaml;
2 | using Microsoft.UI.Xaml.Controls;
3 | using Microsoft.UI.Xaml.Controls.Primitives;
4 | using Microsoft.UI.Xaml.Data;
5 | using Microsoft.UI.Xaml.Input;
6 | using Microsoft.UI.Xaml.Media;
7 | using Microsoft.UI.Xaml.Navigation;
8 | using System;
9 | using System.Collections.Generic;
10 | using System.IO;
11 | using System.Linq;
12 | using System.Runtime.InteropServices.WindowsRuntime;
13 | using Windows.Foundation;
14 | using Windows.Foundation.Collections;
15 |
16 | // To learn more about WinUI, the WinUI project structure,
17 | // and more about our project templates, see: http://aka.ms/winui-project-info.
18 |
19 | namespace Lively.UI.WinUI.Views.Pages
20 | {
21 | ///
22 | /// An empty page that can be used on its own or navigated to within a Frame.
23 | ///
24 | public sealed partial class LibraryAboutView : Page
25 | {
26 | public LibraryAboutView()
27 | {
28 | this.InitializeComponent();
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Views/Pages/Settings/FindMoreAppsView.xaml.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.UI.Xaml;
2 | using Microsoft.UI.Xaml.Controls;
3 | using Microsoft.UI.Xaml.Controls.Primitives;
4 | using Microsoft.UI.Xaml.Data;
5 | using Microsoft.UI.Xaml.Input;
6 | using Microsoft.UI.Xaml.Media;
7 | using Microsoft.UI.Xaml.Navigation;
8 | using System;
9 | using System.Collections.Generic;
10 | using System.IO;
11 | using System.Linq;
12 | using System.Runtime.InteropServices.WindowsRuntime;
13 | using Windows.Foundation;
14 | using Windows.Foundation.Collections;
15 |
16 | // To learn more about WinUI, the WinUI project structure,
17 | // and more about our project templates, see: http://aka.ms/winui-project-info.
18 |
19 | namespace Lively.UI.WinUI.Views.Pages.Settings
20 | {
21 | ///
22 | /// An empty page that can be used on its own or navigated to within a Frame.
23 | ///
24 | public sealed partial class FindMoreAppsView : Page
25 | {
26 | public FindMoreAppsView()
27 | {
28 | this.InitializeComponent();
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Views/Pages/Settings/SettingsGeneralView.xaml.cs:
--------------------------------------------------------------------------------
1 | using Lively.UI.Shared.ViewModels;
2 | using Microsoft.Extensions.DependencyInjection;
3 | using Microsoft.UI.Xaml.Controls;
4 | using System;
5 |
6 | namespace Lively.UI.WinUI.Views.Pages.Settings
7 | {
8 | public sealed partial class SettingsGeneralView : Page
9 | {
10 | public SettingsGeneralView()
11 | {
12 | this.InitializeComponent();
13 | this.DataContext = App.Services.GetRequiredService();
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Views/Pages/Settings/SettingsPerformanceView.xaml.cs:
--------------------------------------------------------------------------------
1 | using Lively.UI.Shared.ViewModels;
2 | using Microsoft.Extensions.DependencyInjection;
3 | using Microsoft.UI.Xaml.Controls;
4 | using System;
5 |
6 | namespace Lively.UI.WinUI.Views.Pages.Settings
7 | {
8 | public sealed partial class SettingsPerformanceView : Page
9 | {
10 | public SettingsPerformanceView()
11 | {
12 | this.InitializeComponent();
13 | this.DataContext = App.Services.GetRequiredService();
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Views/Pages/Settings/SettingsScreensaverView.xaml.cs:
--------------------------------------------------------------------------------
1 | using Lively.UI.Shared.ViewModels;
2 | using Microsoft.Extensions.DependencyInjection;
3 | using Microsoft.UI.Xaml.Controls;
4 | using System;
5 |
6 | namespace Lively.UI.WinUI.Views.Pages.Settings
7 | {
8 | public sealed partial class SettingsScreensaverView : Page
9 | {
10 | public SettingsScreensaverView()
11 | {
12 | this.InitializeComponent();
13 | this.DataContext = App.Services.GetRequiredService();
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Views/Pages/Settings/SettingsSystemView.xaml.cs:
--------------------------------------------------------------------------------
1 | using Lively.UI.Shared.ViewModels;
2 | using Microsoft.Extensions.DependencyInjection;
3 | using Microsoft.UI.Xaml.Controls;
4 | using System;
5 |
6 | namespace Lively.UI.WinUI.Views.Pages.Settings
7 | {
8 | public sealed partial class SettingsSystemView : Page
9 | {
10 | public SettingsSystemView()
11 | {
12 | this.InitializeComponent();
13 | this.DataContext = App.Services.GetRequiredService();
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Views/Pages/TrayMenuHelp.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/Views/Pages/TrayMenuHelp.xaml.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.UI.Xaml;
2 | using Microsoft.UI.Xaml.Controls;
3 | using Microsoft.UI.Xaml.Controls.Primitives;
4 | using Microsoft.UI.Xaml.Data;
5 | using Microsoft.UI.Xaml.Input;
6 | using Microsoft.UI.Xaml.Media;
7 | using Microsoft.UI.Xaml.Navigation;
8 | using System;
9 | using System.Collections.Generic;
10 | using System.IO;
11 | using System.Linq;
12 | using System.Runtime.InteropServices.WindowsRuntime;
13 | using Windows.Foundation;
14 | using Windows.Foundation.Collections;
15 |
16 | // To learn more about WinUI, the WinUI project structure,
17 | // and more about our project templates, see: http://aka.ms/winui-project-info.
18 |
19 | namespace Lively.UI.WinUI.Views.Pages
20 | {
21 | ///
22 | /// An empty page that can be used on its own or navigated to within a Frame.
23 | ///
24 | public sealed partial class TrayMenuHelp : Page
25 | {
26 | public TrayMenuHelp()
27 | {
28 | this.InitializeComponent();
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/app.manifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
11 | true/PM
12 | PerMonitorV2, PerMonitor
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/src/Lively/Lively.UI.WinUI/appicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively.UI.WinUI/appicon.ico
--------------------------------------------------------------------------------
/src/Lively/Lively.Utility.Commandline/Lively.Utility.Commandline.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Exe
5 | net8.0
6 | true
7 | false
8 | true
9 | AnyCPU;x64
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Utility.ConsoleDemo/Lively.Utility.ConsoleDemo.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Exe
5 | net8.0
6 | AnyCPU;x64
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Utility.Screensaver/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Utility.Screensaver/Com/IApplicationActivationManager.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Runtime.InteropServices;
3 |
4 | // Copyright (c) Microsoft Corporation
5 | // The Microsoft Corporation licenses this file to you under the MIT license.
6 | // See the LICENSE file in the project root for more information.
7 | // Ref: https://github.com/microsoft/PowerToys/blob/main/src/modules/launcher/Plugins/Microsoft.Plugin.Program/Programs/IApplicationActivationManager.cs
8 | namespace Lively.Utility.Screensaver.Com
9 | {
10 | [ComImport]
11 | [Guid("2e941141-7f97-4756-ba1d-9decde894a3d")]
12 | [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
13 | internal interface IApplicationActivationManager
14 | {
15 | IntPtr ActivateApplication([In] string appUserModelId, [In] string arguments, [In] ActivateOptions options, [Out] out uint processId);
16 | IntPtr ActivateForFile([In] string appUserModelId, [In] IntPtr /*IShellItemArray* */ itemArray, [In] string verb, [Out] out uint processId);
17 | IntPtr ActivateForProtocol([In] string appUserModelId, [In] IntPtr /* IShellItemArray* */itemArray, [Out] out uint processId);
18 | }
19 |
20 | [Flags]
21 | internal enum ActivateOptions
22 | {
23 | None = 0x00000000,
24 | DesignMode = 0x00000001,
25 | NoErrorUI = 0x00000002,
26 | NoSplashScreen = 0x00000004,
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/Lively/Lively.Utility.Watchdog/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/Lively/Lively/App.xaml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/src/Lively/Lively/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 |
3 | [assembly: ThemeInfo(
4 | ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
5 | //(used if a resource is not found in the page,
6 | // or application resource dictionaries)
7 | ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
8 | //(used if a resource is not found in the page,
9 | // app, or any theme specific resource dictionaries)
10 | )]
11 |
--------------------------------------------------------------------------------
/src/Lively/Lively/Commandline/ICommandHandler.cs:
--------------------------------------------------------------------------------
1 | namespace Lively.Commandline
2 | {
3 | public interface ICommandHandler
4 | {
5 | ///
6 | /// Parse commandline args.
7 | ///
8 | ///
9 | void ParseArgs(string[] args);
10 | }
11 | }
--------------------------------------------------------------------------------
/src/Lively/Lively/Converters/BoolToVisibilityConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Windows.Data;
7 | using System.Windows;
8 | using System.Globalization;
9 |
10 | namespace Lively.Converters
11 | {
12 | public class BooleanToVisibilityConverter : IValueConverter
13 | {
14 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
15 | {
16 | if (value is bool)
17 | {
18 | return (bool)value ^ (parameter as string ?? string.Empty).Equals("Reverse") ?
19 | Visibility.Visible : Visibility.Collapsed;
20 | }
21 | else
22 | {
23 | return value is not null ^ (parameter as string ?? string.Empty).Equals("Reverse") ?
24 | Visibility.Visible : Visibility.Collapsed;
25 | }
26 |
27 | }
28 |
29 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) => throw new NotSupportedException();
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/src/Lively/Lively/Converters/TaskbarProgressConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Globalization;
4 | using System.Text;
5 | using System.Windows.Data;
6 |
7 | namespace Lively.Converters
8 | {
9 | public class TaskbarProgressConverter : IValueConverter
10 | {
11 | public object Convert(object value, Type targetType, object parameter,
12 | System.Globalization.CultureInfo culture)
13 | {
14 | double progressValue = 0f;
15 | if (targetType == typeof(double))
16 | {
17 | progressValue = ((double)value) / 100f;
18 | }
19 | return progressValue;
20 | }
21 |
22 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
23 | {
24 | throw new NotImplementedException();
25 | }
26 | }
27 | }
--------------------------------------------------------------------------------
/src/Lively/Lively/Core/Display/IDisplayManager.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2020 Shankar
2 | // The Shankar licenses this file to you under the MIT license.
3 | // See the LICENSE file in the project root for more information.
4 | // Source: https://github.com/ModernFlyouts-Community/ModernFlyouts
5 |
6 | using Lively.Models;
7 | using System;
8 | using System.Collections.ObjectModel;
9 | using System.Drawing;
10 |
11 | namespace Lively.Core.Display
12 | {
13 | public interface IDisplayManager
14 | {
15 | ObservableCollection DisplayMonitors { get; }
16 | DisplayMonitor PrimaryDisplayMonitor { get; }
17 | Rectangle VirtualScreenBounds { get; }
18 |
19 | event EventHandler DisplayUpdated;
20 |
21 | DisplayMonitor GetDisplayMonitorFromHWnd(IntPtr hWnd);
22 | DisplayMonitor GetDisplayMonitorFromPoint(Point point);
23 | bool IsMultiScreen();
24 | uint OnHwndCreated(IntPtr hWnd, out bool register);
25 | IntPtr OnWndProc(IntPtr hwnd, uint msg, IntPtr wParam, IntPtr lParam);
26 | bool ScreenExists(DisplayMonitor display);
27 | }
28 | }
--------------------------------------------------------------------------------
/src/Lively/Lively/Core/Suspend/IPlayback.cs:
--------------------------------------------------------------------------------
1 | using Lively.Models.Enums;
2 | using System;
3 |
4 | namespace Lively.Core.Suspend
5 | {
6 | public interface IPlayback : IDisposable
7 | {
8 | void Start();
9 | void Stop();
10 | PlaybackState WallpaperPlayback { get; set; }
11 |
12 | event EventHandler PlaybackStateChanged;
13 | }
14 | }
--------------------------------------------------------------------------------
/src/Lively/Lively/Core/Watchdog/IWatchdogService.cs:
--------------------------------------------------------------------------------
1 | namespace Lively.Core.Watchdog
2 | {
3 | ///
4 | /// External service to monitor and close wallpaper plugins in the event of failure.
5 | ///
6 | public interface IWatchdogService
7 | {
8 | public bool IsRunning { get; }
9 | ///
10 | /// Add program to monitor.
11 | ///
12 | /// processid of program.
13 | void Add(int pid);
14 | ///
15 | /// Clear programs currently being monitored.
16 | ///
17 | void Clear();
18 | ///
19 | /// Remove the given program from being monitored.
20 | ///
21 | /// processid of program.
22 | void Remove(int pid);
23 | ///
24 | /// Start watchdog service.
25 | ///
26 | void Start();
27 | }
28 | }
--------------------------------------------------------------------------------
/src/Lively/Lively/Extensions/LocalizedStringExtension.cs:
--------------------------------------------------------------------------------
1 | using Lively.Common.Services;
2 | using Microsoft.Extensions.DependencyInjection;
3 | using System;
4 | using System.Windows.Markup;
5 |
6 | namespace Lively.Extensions
7 | {
8 | public class LocalizedStringExtension : MarkupExtension
9 | {
10 | public string ResourceKey { get; set; }
11 |
12 | public LocalizedStringExtension(string resourceKey)
13 | {
14 | ResourceKey = resourceKey;
15 | }
16 |
17 | public override object ProvideValue(IServiceProvider serviceProvider)
18 | {
19 | if (string.IsNullOrEmpty(ResourceKey))
20 | return string.Empty;
21 |
22 | // Return placeholder if in design mode
23 | if (System.ComponentModel.DesignerProperties.GetIsInDesignMode(new System.Windows.DependencyObject()))
24 | return $"[{ResourceKey}]";
25 |
26 | try
27 | {
28 | var resourceService = App.Services?.GetRequiredService();
29 | return resourceService?.GetString(ResourceKey) ?? $"!{ResourceKey}";
30 | }
31 | catch
32 | {
33 | return $"!{ResourceKey}";
34 | }
35 | }
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/src/Lively/Lively/Factories/ILivelyPropertyFactory.cs:
--------------------------------------------------------------------------------
1 | using Lively.Common.Services;
2 | using Lively.Models;
3 | using Lively.Models.Enums;
4 |
5 | namespace Lively.Factories
6 | {
7 | public interface ILivelyPropertyFactory
8 | {
9 | string CreateLivelyPropertyFolder(LibraryModel model, DisplayMonitor display, WallpaperArrangement arrangement, IUserSettingsService userSettings);
10 | }
11 | }
--------------------------------------------------------------------------------
/src/Lively/Lively/Factories/IWallpaperPluginFactory.cs:
--------------------------------------------------------------------------------
1 | using Lively.Common.Services;
2 | using Lively.Core;
3 | using Lively.Models;
4 | using Lively.Models.Enums;
5 | using System;
6 | using System.Drawing;
7 |
8 | namespace Lively.Factories
9 | {
10 | public interface IWallpaperPluginFactory
11 | {
12 | IWallpaper CreateWallpaper(LibraryModel model, DisplayMonitor display, WallpaperArrangement arrangement, IUserSettingsService userSettings, bool isPreview = false);
13 | IWallpaper CreateDwmThumbnailWallpaper(LibraryModel model, IntPtr thumbnailSrc, Rectangle targetRect, DisplayMonitor display);
14 | }
15 | }
--------------------------------------------------------------------------------
/src/Lively/Lively/Helpers/ThemeUtil.cs:
--------------------------------------------------------------------------------
1 | using Lively.Models.Enums;
2 | using Microsoft.Win32;
3 |
4 | namespace Lively.Helpers
5 | {
6 | public static class ThemeUtil
7 | {
8 | public static AppTheme GetWindowsTheme()
9 | {
10 | try
11 | {
12 | using var key = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Themes\Personalize");
13 | var registryValueObject = key?.GetValue("AppsUseLightTheme");
14 | if (registryValueObject == null)
15 | {
16 | return AppTheme.Light;
17 | }
18 | var registryValue = (int)registryValueObject;
19 | return registryValue > 0 ? AppTheme.Light : AppTheme.Dark;
20 | }
21 | catch
22 | {
23 | return AppTheme.Dark;
24 | }
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/Lively/Lively/Nlog.config:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/src/Lively/Lively/RPC/WallpaperPlaylistServer.cs:
--------------------------------------------------------------------------------
1 | using Google.Protobuf.WellKnownTypes;
2 | using Grpc.Core;
3 | using Lively.Grpc.Common.Proto.Commands;
4 | using Octokit;
5 | using System;
6 | using System.Collections.Generic;
7 | using System.Linq;
8 | using System.Text;
9 | using System.Threading.Tasks;
10 |
11 | namespace Lively.RPC
12 | {
13 | internal class WallpaperPlaylistServer : PlaylistService.PlaylistServiceBase
14 | {
15 | public WallpaperPlaylistServer()
16 | {
17 |
18 | }
19 |
20 | public override Task Start(Empty _, ServerCallContext context)
21 | {
22 | return Task.FromResult(new Empty());
23 | }
24 |
25 | public override Task Stop(Empty _, ServerCallContext context)
26 | {
27 | return Task.FromResult(new Empty());
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/src/Lively/Lively/Resources/appicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively/Resources/appicon.ico
--------------------------------------------------------------------------------
/src/Lively/Lively/Resources/appicon_96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively/Resources/appicon_96.png
--------------------------------------------------------------------------------
/src/Lively/Lively/Resources/icons8-application-window-96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively/Resources/icons8-application-window-96.png
--------------------------------------------------------------------------------
/src/Lively/Lively/Resources/icons8-close-96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively/Resources/icons8-close-96.png
--------------------------------------------------------------------------------
/src/Lively/Lively/Resources/icons8-home-screen-96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively/Resources/icons8-home-screen-96.png
--------------------------------------------------------------------------------
/src/Lively/Lively/Resources/icons8-website-bug-96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively/Resources/icons8-website-bug-96.png
--------------------------------------------------------------------------------
/src/Lively/Lively/Resources/splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively/Resources/splash.png
--------------------------------------------------------------------------------
/src/Lively/Lively/Services/WallpaperPlaylistService.cs:
--------------------------------------------------------------------------------
1 | using Lively.Common.Services;
2 | using Lively.Core;
3 | using Lively.Core.Display;
4 | using System.Timers;
5 |
6 | namespace Lively.Services
7 | {
8 | public class WallpaperPlaylistService
9 | {
10 | private static readonly NLog.Logger Logger = NLog.LogManager.GetCurrentClassLogger();
11 | private readonly Timer idleTimer = new Timer();
12 |
13 | private readonly IUserSettingsService userSettings;
14 | private readonly IDesktopCore desktopCore;
15 | private readonly IDisplayManager displayManager;
16 |
17 | public WallpaperPlaylistService(IUserSettingsService userSettings,
18 | IDisplayManager displayManager,
19 | IDesktopCore desktopCore)
20 | {
21 | this.userSettings = userSettings;
22 | this.desktopCore = desktopCore;
23 | this.displayManager = displayManager;
24 |
25 | idleTimer.Elapsed += IdleCheckTimer;
26 | idleTimer.Interval = 30000;
27 | }
28 |
29 | public bool IsRunning { get; private set; } = false;
30 |
31 | private void IdleCheckTimer(object sender, ElapsedEventArgs e)
32 | {
33 |
34 | }
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/src/Lively/Lively/Views/BlankWindow.xaml:
--------------------------------------------------------------------------------
1 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/src/Lively/Lively/Views/DebugLog.xaml:
--------------------------------------------------------------------------------
1 |
15 |
16 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/src/Lively/Lively/Views/DebugLog.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 | using System.Windows;
5 | using System.Windows.Controls;
6 | using System.Windows.Data;
7 | using System.Windows.Documents;
8 | using System.Windows.Input;
9 | using System.Windows.Media;
10 | using System.Windows.Media.Imaging;
11 | using System.Windows.Shapes;
12 |
13 | namespace Lively.Views
14 | {
15 | ///
16 | /// Interaction logic for DebugLog.xaml
17 | ///
18 | public partial class DebugLog : Window
19 | {
20 | public DebugLog()
21 | {
22 | InitializeComponent();
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/Lively/Lively/Views/DwmThumbnailWindow.xaml:
--------------------------------------------------------------------------------
1 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/src/Lively/Lively/Views/ScreenSaverPreview.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 | using System.Windows;
5 | using System.Windows.Controls;
6 | using System.Windows.Data;
7 | using System.Windows.Documents;
8 | using System.Windows.Input;
9 | using System.Windows.Media;
10 | using System.Windows.Media.Imaging;
11 | using System.Windows.Shapes;
12 |
13 | namespace Lively.Views
14 | {
15 | ///
16 | /// Interaction logic for ScreenSaverPreview.xaml
17 | ///
18 | public partial class ScreenSaverPreview : Window
19 | {
20 | public ScreenSaverPreview()
21 | {
22 | InitializeComponent();
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/Lively/Lively/Views/SplashWindow.xaml:
--------------------------------------------------------------------------------
1 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/src/Lively/Lively/Views/TransparentWindow.xaml:
--------------------------------------------------------------------------------
1 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/src/Lively/Lively/Views/TransparentWindow.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Windows;
7 | using System.Windows.Controls;
8 | using System.Windows.Data;
9 | using System.Windows.Documents;
10 | using System.Windows.Input;
11 | using System.Windows.Media;
12 | using System.Windows.Media.Imaging;
13 | using System.Windows.Shapes;
14 |
15 | namespace Lively.Views
16 | {
17 | ///
18 | /// Interaction logic for Transparent.xaml
19 | ///
20 | public partial class TransparentWindow : Window
21 | {
22 | public TransparentWindow()
23 | {
24 | InitializeComponent();
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/Lively/Lively/Views/WindowMsg/RawInputMsgWindow.xaml:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/src/Lively/Lively/Views/WindowMsg/WndProcMsgWindow.xaml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/src/Lively/Lively/appicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/Lively/Lively/appicon.ico
--------------------------------------------------------------------------------
/src/installer/Icons/appicon_96.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/installer/Icons/appicon_96.ico
--------------------------------------------------------------------------------
/src/installer/Languages/Lithuanian.isl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/installer/Languages/Lithuanian.isl
--------------------------------------------------------------------------------
/src/installer/Languages/SerbianCyrillic.isl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/installer/Languages/SerbianCyrillic.isl
--------------------------------------------------------------------------------
/src/installer/Languages/SerbianLatin.isl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/installer/Languages/SerbianLatin.isl
--------------------------------------------------------------------------------
/src/installer/Languages/Swedish.isl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/installer/Languages/Swedish.isl
--------------------------------------------------------------------------------
/src/installer/Theme/wizard_large.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/installer/Theme/wizard_large.bmp
--------------------------------------------------------------------------------
/src/installer/Theme/wizard_small.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rocksdanister/lively/f514dc295489bd1cb37d116f4e037870e76adf71/src/installer/Theme/wizard_small.bmp
--------------------------------------------------------------------------------