* Architecture and (#7267) * Added debugging steps for PT Run * Updated architecture markdown for launcher * updated project architecture markdown for launcher * Added telemetry docs for launcher * Added the basic folder structure and files * Added a basic overview of all common functionalities of the plugins * Added information about the functioning of the calculator plugin * update score section of overview * added information about the uri plugin * added info about the indexer plugin * Added the documentation for the indexer plugin * Added information about the program plugin * Added info about the shell plugin * updated some plugin info and added information about the ww plugin * documenting the folder plugin * updated window walker docs * dev docs for the folder plugin * added images to each of the plugins * Added link to pt run documents * fix typos and some minor corrections * Add table of contents for pt run dev docs * Fix image path and project link for Wox.plugin Co-authored-by: Divyansh Srivastava <somm14divi@gmail.com>
2.9 KiB
Project Structure
Overview
PowerToys Run
is divided across several projects to keep a logical separation between plugins and core functionality. The following sections provide a brief overview of each project.
Fig 1. Project along with their dependencies in PowerToys Run
ecosystem.
Project Description
PowerLauncher
This is the startup project for the PowerToys Run.
It is a WPF desktop application and follows the Model-View-ViewModel (MVVM)
design pattern. Plugins play the role of Model
and provide data to ViewModel.
PowerLauncher.Telemetry
PowerLauncher.Telemetry
is a .net core project that contains telemetry events generated by PowerLauncher.
These events have been discussed in detail here.
Wox.Core
Wox.Core
is a .net core project that contains helper classes required by the PowerLauncher
project. Two major functionalities encapsulated in this project are PluginManager
and Query Builder.
PluginManager
provides an interface for managing C# plugins. Query Builder.
decimate user-typed query string and creates a Query
object. Query
object contains the action keyword and cleaned query, which is then sent to all plugins.
Wox.Infrastructure
Wox.Infrastructure
is a .net core project that contains helper classes required for logging, image manipulation, and storage by the PowerLauncher
project and the plugins. ImageLoader.cs
class is used to load icons for Win32
program. It also provides caching functionality to speed up image loading for frequently queried programs. Log.cs
provides an abstraction for logging error, information, and output to text files. These files are stored at %userprofile%/appdata/local/microsoft/powertoys/powertoys run/Logs.
Wox.Plugin
Wox.Plugin
contains interfaces that facilitate communication between PowerLauncher
and plugins. These interfaces have been discussed in detail here.