diff --git a/.gitignore b/.gitignore
index 9491a2f..5e3ca80 100644
--- a/.gitignore
+++ b/.gitignore
@@ -360,4 +360,7 @@ MigrationBackup/
.ionide/
# Fody - auto-generated XML schema
-FodyWeavers.xsd
\ No newline at end of file
+FodyWeavers.xsd
+
+# build output
+/build
diff --git a/CurvaLauncher/Utilities/Models/GithubRelease.cs b/CurvaLauncher/Utilities/Models/GithubRelease.cs
deleted file mode 100644
index f11c201..0000000
--- a/CurvaLauncher/Utilities/Models/GithubRelease.cs
+++ /dev/null
@@ -1,336 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Text.Json.Serialization;
-using System.Threading.Tasks;
-
-namespace CurvaLauncher.Utilities.Models
-{
- public partial class GithubRelease
- {
- public GithubRelease(
- Uri url,
- Uri assetsUrl,
- string uploadUrl,
- Uri htmlUrl,
- long id,
- Author author,
- string nodeId,
- string tagName,
- string targetCommitish,
- string name,
- bool draft,
- bool prerelease,
- DateTimeOffset createdAt,
- DateTimeOffset publishedAt,
- Asset[] assets,
- Uri tarballUrl,
- Uri zipballUrl,
- string body,
- Reactions reactions)
- {
- Url = url;
- AssetsUrl = assetsUrl;
- UploadUrl = uploadUrl;
- HtmlUrl = htmlUrl;
- Id = id;
- Author = author;
- NodeId = nodeId;
- TagName = tagName;
- TargetCommitish = targetCommitish;
- Name = name;
- Draft = draft;
- Prerelease = prerelease;
- CreatedAt = createdAt;
- PublishedAt = publishedAt;
- Assets = assets;
- TarballUrl = tarballUrl;
- ZipballUrl = zipballUrl;
- Body = body;
- Reactions = reactions;
- }
-
- [JsonPropertyName("url")]
- public Uri Url { get; set; }
-
- [JsonPropertyName("assets_url")]
- public Uri AssetsUrl { get; set; }
-
- [JsonPropertyName("upload_url")]
- public string UploadUrl { get; set; }
-
- [JsonPropertyName("html_url")]
- public Uri HtmlUrl { get; set; }
-
- [JsonPropertyName("id")]
- public long Id { get; set; }
-
- [JsonPropertyName("author")]
- public Author Author { get; set; }
-
- [JsonPropertyName("node_id")]
- public string NodeId { get; set; }
-
- [JsonPropertyName("tag_name")]
- public string TagName { get; set; }
-
- [JsonPropertyName("target_commitish")]
- public string TargetCommitish { get; set; }
-
- [JsonPropertyName("name")]
- public string Name { get; set; }
-
- [JsonPropertyName("draft")]
- public bool Draft { get; set; }
-
- [JsonPropertyName("prerelease")]
- public bool Prerelease { get; set; }
-
- [JsonPropertyName("created_at")]
- public DateTimeOffset CreatedAt { get; set; }
-
- [JsonPropertyName("published_at")]
- public DateTimeOffset PublishedAt { get; set; }
-
- [JsonPropertyName("assets")]
- public Asset[] Assets { get; set; }
-
- [JsonPropertyName("tarball_url")]
- public Uri TarballUrl { get; set; }
-
- [JsonPropertyName("zipball_url")]
- public Uri ZipballUrl { get; set; }
-
- [JsonPropertyName("body")]
- public string Body { get; set; }
-
- [JsonPropertyName("reactions")]
- public Reactions Reactions { get; set; }
- }
-
- public partial class Asset
- {
- public Asset(Uri url,
- long id,
- string nodeId,
- string name,
- object label,
- Author uploader,
- string contentType,
- string state,
- long size,
- long downloadCount,
- DateTimeOffset createdAt,
- DateTimeOffset updatedAt,
- Uri browserDownloadUrl)
- {
- Url = url;
- Id = id;
- NodeId = nodeId;
- Name = name;
- Label = label;
- Uploader = uploader;
- ContentType = contentType;
- State = state;
- Size = size;
- DownloadCount = downloadCount;
- CreatedAt = createdAt;
- UpdatedAt = updatedAt;
- BrowserDownloadUrl = browserDownloadUrl;
- }
-
- [JsonPropertyName("url")]
- public Uri Url { get; set; }
-
- [JsonPropertyName("id")]
- public long Id { get; set; }
-
- [JsonPropertyName("node_id")]
- public string NodeId { get; set; }
-
- [JsonPropertyName("name")]
- public string Name { get; set; }
-
- [JsonPropertyName("label")]
- public object Label { get; set; }
-
- [JsonPropertyName("uploader")]
- public Author Uploader { get; set; }
-
- [JsonPropertyName("content_type")]
- public string ContentType { get; set; }
-
- [JsonPropertyName("state")]
- public string State { get; set; }
-
- [JsonPropertyName("size")]
- public long Size { get; set; }
-
- [JsonPropertyName("download_count")]
- public long DownloadCount { get; set; }
-
- [JsonPropertyName("created_at")]
- public DateTimeOffset CreatedAt { get; set; }
-
- [JsonPropertyName("updated_at")]
- public DateTimeOffset UpdatedAt { get; set; }
-
- [JsonPropertyName("browser_download_url")]
- public Uri BrowserDownloadUrl { get; set; }
- }
-
- public partial class Author
- {
- public Author(
- string login,
- long id,
- string nodeId,
- Uri avatarUrl,
- string gravatarId,
- Uri url,
- Uri htmlUrl,
- Uri followersUrl,
- string followingUrl,
- string gistsUrl,
- string starredUrl,
- Uri subscriptionsUrl,
- Uri organizationsUrl,
- Uri reposUrl,
- string eventsUrl,
- Uri receivedEventsUrl,
- string type,
- bool siteAdmin)
- {
- Login = login;
- Id = id;
- NodeId = nodeId;
- AvatarUrl = avatarUrl;
- GravatarId = gravatarId;
- Url = url;
- HtmlUrl = htmlUrl;
- FollowersUrl = followersUrl;
- FollowingUrl = followingUrl;
- GistsUrl = gistsUrl;
- StarredUrl = starredUrl;
- SubscriptionsUrl = subscriptionsUrl;
- OrganizationsUrl = organizationsUrl;
- ReposUrl = reposUrl;
- EventsUrl = eventsUrl;
- ReceivedEventsUrl = receivedEventsUrl;
- Type = type;
- SiteAdmin = siteAdmin;
- }
-
- [JsonPropertyName("login")]
- public string Login { get; set; }
-
- [JsonPropertyName("id")]
- public long Id { get; set; }
-
- [JsonPropertyName("node_id")]
- public string NodeId { get; set; }
-
- [JsonPropertyName("avatar_url")]
- public Uri AvatarUrl { get; set; }
-
- [JsonPropertyName("gravatar_id")]
- public string GravatarId { get; set; }
-
- [JsonPropertyName("url")]
- public Uri Url { get; set; }
-
- [JsonPropertyName("html_url")]
- public Uri HtmlUrl { get; set; }
-
- [JsonPropertyName("followers_url")]
- public Uri FollowersUrl { get; set; }
-
- [JsonPropertyName("following_url")]
- public string FollowingUrl { get; set; }
-
- [JsonPropertyName("gists_url")]
- public string GistsUrl { get; set; }
-
- [JsonPropertyName("starred_url")]
- public string StarredUrl { get; set; }
-
- [JsonPropertyName("subscriptions_url")]
- public Uri SubscriptionsUrl { get; set; }
-
- [JsonPropertyName("organizations_url")]
- public Uri OrganizationsUrl { get; set; }
-
- [JsonPropertyName("repos_url")]
- public Uri ReposUrl { get; set; }
-
- [JsonPropertyName("events_url")]
- public string EventsUrl { get; set; }
-
- [JsonPropertyName("received_events_url")]
- public Uri ReceivedEventsUrl { get; set; }
-
- [JsonPropertyName("type")]
- public string Type { get; set; }
-
- [JsonPropertyName("site_admin")]
- public bool SiteAdmin { get; set; }
- }
-
- public partial class Reactions
- {
- public Reactions(
- Uri url,
- long totalCount,
- long the1,
- long reactions1,
- long laugh,
- long hooray,
- long confused,
- long heart,
- long rocket,
- long eyes)
- {
- Url = url;
- TotalCount = totalCount;
- The1 = the1;
- Reactions1 = reactions1;
- Laugh = laugh;
- Hooray = hooray;
- Confused = confused;
- Heart = heart;
- Rocket = rocket;
- Eyes = eyes;
- }
-
- [JsonPropertyName("url")]
- public Uri Url { get; set; }
-
- [JsonPropertyName("total_count")]
- public long TotalCount { get; set; }
-
- [JsonPropertyName("+1")]
- public long The1 { get; set; }
-
- [JsonPropertyName("-1")]
- public long Reactions1 { get; set; }
-
- [JsonPropertyName("laugh")]
- public long Laugh { get; set; }
-
- [JsonPropertyName("hooray")]
- public long Hooray { get; set; }
-
- [JsonPropertyName("confused")]
- public long Confused { get; set; }
-
- [JsonPropertyName("heart")]
- public long Heart { get; set; }
-
- [JsonPropertyName("rocket")]
- public long Rocket { get; set; }
-
- [JsonPropertyName("eyes")]
- public long Eyes { get; set; }
- }
-}
diff --git a/README.md b/README.md
index 7737137..a77b348 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
-![Icon](/Assets/Icon128.png)
+![Icon](/assets/Icon128.png)
# CurvaLauncher
@@ -96,8 +96,8 @@ Most of CurvaLauncher's features are available in the form of plugins
Preview
-![](/Assets/preview2.png)
+![](/assets/preview2.png)
-![](/Assets/preview4.png)
+![](/assets/preview4.png)
\ No newline at end of file
diff --git a/README.zh.md b/README.zh.md
index 9b0c025..51c548c 100644
--- a/README.zh.md
+++ b/README.zh.md
@@ -1,6 +1,6 @@
-![图标](/Assets/Icon128.png)
+![图标](/assets/Icon128.png)
# CurvaLauncher
@@ -97,9 +97,9 @@ CurvaLauncher 的大多功能都以插件形式提供
预览
-![](/Assets/preview2.png)
+![](/assets/preview2.png)
-![](/Assets/preview4.png)
+![](/assets/preview4.png)
diff --git a/Assets/Icon.png b/assets/Icon.png
similarity index 100%
rename from Assets/Icon.png
rename to assets/Icon.png
diff --git a/Assets/Icon.psd b/assets/Icon.psd
similarity index 100%
rename from Assets/Icon.psd
rename to assets/Icon.psd
diff --git a/Assets/Icon128.ico b/assets/Icon128.ico
similarity index 100%
rename from Assets/Icon128.ico
rename to assets/Icon128.ico
diff --git a/Assets/Icon128.png b/assets/Icon128.png
similarity index 100%
rename from Assets/Icon128.png
rename to assets/Icon128.png
diff --git a/Assets/Icon32.ico b/assets/Icon32.ico
similarity index 100%
rename from Assets/Icon32.ico
rename to assets/Icon32.ico
diff --git a/Assets/Icon32.png b/assets/Icon32.png
similarity index 100%
rename from Assets/Icon32.png
rename to assets/Icon32.png
diff --git a/Assets/Icon64.png b/assets/Icon64.png
similarity index 100%
rename from Assets/Icon64.png
rename to assets/Icon64.png
diff --git a/Assets/preview1.png b/assets/preview1.png
similarity index 100%
rename from Assets/preview1.png
rename to assets/preview1.png
diff --git a/Assets/preview2.png b/assets/preview2.png
similarity index 100%
rename from Assets/preview2.png
rename to assets/preview2.png
diff --git a/Assets/preview3.png b/assets/preview3.png
similarity index 100%
rename from Assets/preview3.png
rename to assets/preview3.png
diff --git a/Assets/preview4.png b/assets/preview4.png
similarity index 100%
rename from Assets/preview4.png
rename to assets/preview4.png
diff --git a/build.ps1 b/build.ps1
new file mode 100644
index 0000000..7dae51a
--- /dev/null
+++ b/build.ps1
@@ -0,0 +1,21 @@
+mkdir -Force build
+mkdir -Force build/tmp
+mkdir -Force build/Plugins
+
+foreach ($proj in ls "src/CurvaLauncher.Plugins.*") {
+ if ($proj.Name.Contains("Test")) {
+ continue
+ }
+
+ dotnet build $proj -c Release -o build/tmp
+ copy "build/tmp/$($proj.Name).dll" "build/Plugins/"
+}
+
+
+dotnet publish src/CurvaLauncher -c Release -o build -r win-x64 --self-contained false /p:PublishSingleFile=true
+
+# clean up
+rm -Recurse -Force build/tmp
+rm build/*.pdb
+
+# Compress-Archive @("build/CurvaLauncher.exe", "build/Plugins") "build/CurvaLauncher.zip"
\ No newline at end of file
diff --git a/CurvaLauncher.Common/Apis/CommandLineSegment.cs b/src/CurvaLauncher.Common/Apis/CommandLineSegment.cs
similarity index 100%
rename from CurvaLauncher.Common/Apis/CommandLineSegment.cs
rename to src/CurvaLauncher.Common/Apis/CommandLineSegment.cs
diff --git a/CurvaLauncher.Common/Apis/ICommandLineApi.cs b/src/CurvaLauncher.Common/Apis/ICommandLineApi.cs
similarity index 100%
rename from CurvaLauncher.Common/Apis/ICommandLineApi.cs
rename to src/CurvaLauncher.Common/Apis/ICommandLineApi.cs
diff --git a/CurvaLauncher.Common/Apis/ICommonApi.cs b/src/CurvaLauncher.Common/Apis/ICommonApi.cs
similarity index 100%
rename from CurvaLauncher.Common/Apis/ICommonApi.cs
rename to src/CurvaLauncher.Common/Apis/ICommonApi.cs
diff --git a/CurvaLauncher.Common/Apis/IFileApi.cs b/src/CurvaLauncher.Common/Apis/IFileApi.cs
similarity index 100%
rename from CurvaLauncher.Common/Apis/IFileApi.cs
rename to src/CurvaLauncher.Common/Apis/IFileApi.cs
diff --git a/CurvaLauncher.Common/Apis/IImageApi.cs b/src/CurvaLauncher.Common/Apis/IImageApi.cs
similarity index 100%
rename from CurvaLauncher.Common/Apis/IImageApi.cs
rename to src/CurvaLauncher.Common/Apis/IImageApi.cs
diff --git a/CurvaLauncher.Common/Apis/IStringApi.cs b/src/CurvaLauncher.Common/Apis/IStringApi.cs
similarity index 100%
rename from CurvaLauncher.Common/Apis/IStringApi.cs
rename to src/CurvaLauncher.Common/Apis/IStringApi.cs
diff --git a/CurvaLauncher.Common/Apis/ShortcutTarget.cs b/src/CurvaLauncher.Common/Apis/ShortcutTarget.cs
similarity index 100%
rename from CurvaLauncher.Common/Apis/ShortcutTarget.cs
rename to src/CurvaLauncher.Common/Apis/ShortcutTarget.cs
diff --git a/CurvaLauncher.Common/CurvaLauncher.Common.csproj b/src/CurvaLauncher.Common/CurvaLauncher.Common.csproj
similarity index 85%
rename from CurvaLauncher.Common/CurvaLauncher.Common.csproj
rename to src/CurvaLauncher.Common/CurvaLauncher.Common.csproj
index dd3e53f..283f26a 100644
--- a/CurvaLauncher.Common/CurvaLauncher.Common.csproj
+++ b/src/CurvaLauncher.Common/CurvaLauncher.Common.csproj
@@ -7,6 +7,7 @@
true
true
CurvaLauncher
+ true
diff --git a/CurvaLauncher.Common/CurvaLauncherContext.cs b/src/CurvaLauncher.Common/CurvaLauncherContext.cs
similarity index 100%
rename from CurvaLauncher.Common/CurvaLauncherContext.cs
rename to src/CurvaLauncher.Common/CurvaLauncherContext.cs
diff --git a/CurvaLauncher.Common/EmptyQueryResult.cs b/src/CurvaLauncher.Common/EmptyQueryResult.cs
similarity index 100%
rename from CurvaLauncher.Common/EmptyQueryResult.cs
rename to src/CurvaLauncher.Common/EmptyQueryResult.cs
diff --git a/CurvaLauncher.Common/IAsyncQueryResult.cs b/src/CurvaLauncher.Common/IAsyncQueryResult.cs
similarity index 100%
rename from CurvaLauncher.Common/IAsyncQueryResult.cs
rename to src/CurvaLauncher.Common/IAsyncQueryResult.cs
diff --git a/CurvaLauncher.Common/IQueryResult.cs b/src/CurvaLauncher.Common/IQueryResult.cs
similarity index 100%
rename from CurvaLauncher.Common/IQueryResult.cs
rename to src/CurvaLauncher.Common/IQueryResult.cs
diff --git a/CurvaLauncher.Common/ISyncQueryResult.cs b/src/CurvaLauncher.Common/ISyncQueryResult.cs
similarity index 100%
rename from CurvaLauncher.Common/ISyncQueryResult.cs
rename to src/CurvaLauncher.Common/ISyncQueryResult.cs
diff --git a/CurvaLauncher.Common/Utilities/ResourceUtils.cs b/src/CurvaLauncher.Common/Utilities/ResourceUtils.cs
similarity index 100%
rename from CurvaLauncher.Common/Utilities/ResourceUtils.cs
rename to src/CurvaLauncher.Common/Utilities/ResourceUtils.cs
diff --git a/CurvaLauncher.Plugins.Calculator/CalculatorPlugin.cs b/src/CurvaLauncher.Plugins.Calculator/CalculatorPlugin.cs
similarity index 100%
rename from CurvaLauncher.Plugins.Calculator/CalculatorPlugin.cs
rename to src/CurvaLauncher.Plugins.Calculator/CalculatorPlugin.cs
diff --git a/CurvaLauncher.Plugins.Calculator/CalculatorQueryResult.cs b/src/CurvaLauncher.Plugins.Calculator/CalculatorQueryResult.cs
similarity index 100%
rename from CurvaLauncher.Plugins.Calculator/CalculatorQueryResult.cs
rename to src/CurvaLauncher.Plugins.Calculator/CalculatorQueryResult.cs
diff --git a/CurvaLauncher.Plugins.Calculator/CurvaLauncher.Plugins.Calculator.csproj b/src/CurvaLauncher.Plugins.Calculator/CurvaLauncher.Plugins.Calculator.csproj
similarity index 95%
rename from CurvaLauncher.Plugins.Calculator/CurvaLauncher.Plugins.Calculator.csproj
rename to src/CurvaLauncher.Plugins.Calculator/CurvaLauncher.Plugins.Calculator.csproj
index 33fed52..859fc9d 100644
--- a/CurvaLauncher.Plugins.Calculator/CurvaLauncher.Plugins.Calculator.csproj
+++ b/src/CurvaLauncher.Plugins.Calculator/CurvaLauncher.Plugins.Calculator.csproj
@@ -5,6 +5,7 @@
enable
enable
true
+ true
diff --git a/CurvaLauncher.Plugins.Calculator/I18n/EnUs.xaml b/src/CurvaLauncher.Plugins.Calculator/I18n/EnUs.xaml
similarity index 100%
rename from CurvaLauncher.Plugins.Calculator/I18n/EnUs.xaml
rename to src/CurvaLauncher.Plugins.Calculator/I18n/EnUs.xaml
diff --git a/CurvaLauncher.Plugins.Calculator/I18n/JaJp.xaml b/src/CurvaLauncher.Plugins.Calculator/I18n/JaJp.xaml
similarity index 100%
rename from CurvaLauncher.Plugins.Calculator/I18n/JaJp.xaml
rename to src/CurvaLauncher.Plugins.Calculator/I18n/JaJp.xaml
diff --git a/CurvaLauncher.Plugins.Calculator/I18n/ZhHans.xaml b/src/CurvaLauncher.Plugins.Calculator/I18n/ZhHans.xaml
similarity index 100%
rename from CurvaLauncher.Plugins.Calculator/I18n/ZhHans.xaml
rename to src/CurvaLauncher.Plugins.Calculator/I18n/ZhHans.xaml
diff --git a/CurvaLauncher.Plugins.Calculator/I18n/ZhHant.xaml b/src/CurvaLauncher.Plugins.Calculator/I18n/ZhHant.xaml
similarity index 100%
rename from CurvaLauncher.Plugins.Calculator/I18n/ZhHant.xaml
rename to src/CurvaLauncher.Plugins.Calculator/I18n/ZhHant.xaml
diff --git a/CurvaLauncher.Plugins.Calculator/IconSvg.txt b/src/CurvaLauncher.Plugins.Calculator/IconSvg.txt
similarity index 100%
rename from CurvaLauncher.Plugins.Calculator/IconSvg.txt
rename to src/CurvaLauncher.Plugins.Calculator/IconSvg.txt
diff --git a/CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcBinExpr.cs b/src/CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcBinExpr.cs
similarity index 100%
rename from CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcBinExpr.cs
rename to src/CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcBinExpr.cs
diff --git a/CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcBinTailExpr.cs b/src/CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcBinTailExpr.cs
similarity index 100%
rename from CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcBinTailExpr.cs
rename to src/CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcBinTailExpr.cs
diff --git a/CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcCondExpr.cs b/src/CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcCondExpr.cs
similarity index 100%
rename from CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcCondExpr.cs
rename to src/CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcCondExpr.cs
diff --git a/CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcConstExpr.cs b/src/CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcConstExpr.cs
similarity index 100%
rename from CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcConstExpr.cs
rename to src/CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcConstExpr.cs
diff --git a/CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcEqExpr.cs b/src/CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcEqExpr.cs
similarity index 100%
rename from CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcEqExpr.cs
rename to src/CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcEqExpr.cs
diff --git a/CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcExpr.cs b/src/CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcExpr.cs
similarity index 100%
rename from CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcExpr.cs
rename to src/CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcExpr.cs
diff --git a/CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcExprSeqExpr.cs b/src/CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcExprSeqExpr.cs
similarity index 100%
rename from CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcExprSeqExpr.cs
rename to src/CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcExprSeqExpr.cs
diff --git a/CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcFunExpr.cs b/src/CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcFunExpr.cs
similarity index 100%
rename from CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcFunExpr.cs
rename to src/CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcFunExpr.cs
diff --git a/CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcMulExpr.cs b/src/CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcMulExpr.cs
similarity index 100%
rename from CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcMulExpr.cs
rename to src/CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcMulExpr.cs
diff --git a/CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcMulTailExpr.cs b/src/CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcMulTailExpr.cs
similarity index 100%
rename from CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcMulTailExpr.cs
rename to src/CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcMulTailExpr.cs
diff --git a/CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcNumExpr.cs b/src/CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcNumExpr.cs
similarity index 100%
rename from CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcNumExpr.cs
rename to src/CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcNumExpr.cs
diff --git a/CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcPlusExpr.cs b/src/CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcPlusExpr.cs
similarity index 100%
rename from CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcPlusExpr.cs
rename to src/CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcPlusExpr.cs
diff --git a/CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcPlusTailExpr.cs b/src/CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcPlusTailExpr.cs
similarity index 100%
rename from CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcPlusTailExpr.cs
rename to src/CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcPlusTailExpr.cs
diff --git a/CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcRelExpr.cs b/src/CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcRelExpr.cs
similarity index 100%
rename from CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcRelExpr.cs
rename to src/CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcRelExpr.cs
diff --git a/CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcUnitExpr.cs b/src/CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcUnitExpr.cs
similarity index 100%
rename from CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcUnitExpr.cs
rename to src/CurvaLauncher.Plugins.Calculator/NCalculatorLib/Exprs/NCalcUnitExpr.cs
diff --git a/CurvaLauncher.Plugins.Calculator/NCalculatorLib/NCalc.cs b/src/CurvaLauncher.Plugins.Calculator/NCalculatorLib/NCalc.cs
similarity index 100%
rename from CurvaLauncher.Plugins.Calculator/NCalculatorLib/NCalc.cs
rename to src/CurvaLauncher.Plugins.Calculator/NCalculatorLib/NCalc.cs
diff --git a/CurvaLauncher.Plugins.Calculator/NCalculatorLib/NCalcContext.FunctionDefinition.cs b/src/CurvaLauncher.Plugins.Calculator/NCalculatorLib/NCalcContext.FunctionDefinition.cs
similarity index 100%
rename from CurvaLauncher.Plugins.Calculator/NCalculatorLib/NCalcContext.FunctionDefinition.cs
rename to src/CurvaLauncher.Plugins.Calculator/NCalculatorLib/NCalcContext.FunctionDefinition.cs
diff --git a/CurvaLauncher.Plugins.Calculator/NCalculatorLib/NCalcContext.cs b/src/CurvaLauncher.Plugins.Calculator/NCalculatorLib/NCalcContext.cs
similarity index 100%
rename from CurvaLauncher.Plugins.Calculator/NCalculatorLib/NCalcContext.cs
rename to src/CurvaLauncher.Plugins.Calculator/NCalculatorLib/NCalcContext.cs
diff --git a/CurvaLauncher.Plugins.Calculator/NCalculatorLib/NCalcLexer.cs b/src/CurvaLauncher.Plugins.Calculator/NCalculatorLib/NCalcLexer.cs
similarity index 100%
rename from CurvaLauncher.Plugins.Calculator/NCalculatorLib/NCalcLexer.cs
rename to src/CurvaLauncher.Plugins.Calculator/NCalculatorLib/NCalcLexer.cs
diff --git a/CurvaLauncher.Plugins.Calculator/NCalculatorLib/NCalcParser.cs b/src/CurvaLauncher.Plugins.Calculator/NCalculatorLib/NCalcParser.cs
similarity index 100%
rename from CurvaLauncher.Plugins.Calculator/NCalculatorLib/NCalcParser.cs
rename to src/CurvaLauncher.Plugins.Calculator/NCalculatorLib/NCalcParser.cs
diff --git a/CurvaLauncher.Plugins.Calculator/NCalculatorLib/NCalcToken.cs b/src/CurvaLauncher.Plugins.Calculator/NCalculatorLib/NCalcToken.cs
similarity index 100%
rename from CurvaLauncher.Plugins.Calculator/NCalculatorLib/NCalcToken.cs
rename to src/CurvaLauncher.Plugins.Calculator/NCalculatorLib/NCalcToken.cs
diff --git a/CurvaLauncher.Plugins.Calculator/NCalculatorLib/NCalcTokenKind.cs b/src/CurvaLauncher.Plugins.Calculator/NCalculatorLib/NCalcTokenKind.cs
similarity index 100%
rename from CurvaLauncher.Plugins.Calculator/NCalculatorLib/NCalcTokenKind.cs
rename to src/CurvaLauncher.Plugins.Calculator/NCalculatorLib/NCalcTokenKind.cs
diff --git a/CurvaLauncher.Plugins.Calculator/NCalculatorLib/NCalculatorLib.csproj b/src/CurvaLauncher.Plugins.Calculator/NCalculatorLib/NCalculatorLib.csproj
similarity index 100%
rename from CurvaLauncher.Plugins.Calculator/NCalculatorLib/NCalculatorLib.csproj
rename to src/CurvaLauncher.Plugins.Calculator/NCalculatorLib/NCalculatorLib.csproj
diff --git a/CurvaLauncher.Plugins.Calculator/Properties/Resources.Designer.cs b/src/CurvaLauncher.Plugins.Calculator/Properties/Resources.Designer.cs
similarity index 100%
rename from CurvaLauncher.Plugins.Calculator/Properties/Resources.Designer.cs
rename to src/CurvaLauncher.Plugins.Calculator/Properties/Resources.Designer.cs
diff --git a/CurvaLauncher.Plugins.Calculator/Properties/Resources.resx b/src/CurvaLauncher.Plugins.Calculator/Properties/Resources.resx
similarity index 100%
rename from CurvaLauncher.Plugins.Calculator/Properties/Resources.resx
rename to src/CurvaLauncher.Plugins.Calculator/Properties/Resources.resx
diff --git a/CurvaLauncher.Plugins.Hashing/CurvaLauncher.Plugins.Hashing.csproj b/src/CurvaLauncher.Plugins.Hashing/CurvaLauncher.Plugins.Hashing.csproj
similarity index 95%
rename from CurvaLauncher.Plugins.Hashing/CurvaLauncher.Plugins.Hashing.csproj
rename to src/CurvaLauncher.Plugins.Hashing/CurvaLauncher.Plugins.Hashing.csproj
index ca250d4..4124141 100644
--- a/CurvaLauncher.Plugins.Hashing/CurvaLauncher.Plugins.Hashing.csproj
+++ b/src/CurvaLauncher.Plugins.Hashing/CurvaLauncher.Plugins.Hashing.csproj
@@ -5,6 +5,7 @@
enable
enable
true
+ true
diff --git a/CurvaLauncher.Plugins.Hashing/HashingPlugin.cs b/src/CurvaLauncher.Plugins.Hashing/HashingPlugin.cs
similarity index 100%
rename from CurvaLauncher.Plugins.Hashing/HashingPlugin.cs
rename to src/CurvaLauncher.Plugins.Hashing/HashingPlugin.cs
diff --git a/CurvaLauncher.Plugins.Hashing/HashingQueryResult.cs b/src/CurvaLauncher.Plugins.Hashing/HashingQueryResult.cs
similarity index 100%
rename from CurvaLauncher.Plugins.Hashing/HashingQueryResult.cs
rename to src/CurvaLauncher.Plugins.Hashing/HashingQueryResult.cs
diff --git a/CurvaLauncher.Plugins.Hashing/I18n/EnUs.xaml b/src/CurvaLauncher.Plugins.Hashing/I18n/EnUs.xaml
similarity index 100%
rename from CurvaLauncher.Plugins.Hashing/I18n/EnUs.xaml
rename to src/CurvaLauncher.Plugins.Hashing/I18n/EnUs.xaml
diff --git a/CurvaLauncher.Plugins.Hashing/I18n/JaJp.xaml b/src/CurvaLauncher.Plugins.Hashing/I18n/JaJp.xaml
similarity index 100%
rename from CurvaLauncher.Plugins.Hashing/I18n/JaJp.xaml
rename to src/CurvaLauncher.Plugins.Hashing/I18n/JaJp.xaml
diff --git a/CurvaLauncher.Plugins.Hashing/I18n/ZhHans.xaml b/src/CurvaLauncher.Plugins.Hashing/I18n/ZhHans.xaml
similarity index 100%
rename from CurvaLauncher.Plugins.Hashing/I18n/ZhHans.xaml
rename to src/CurvaLauncher.Plugins.Hashing/I18n/ZhHans.xaml
diff --git a/CurvaLauncher.Plugins.Hashing/I18n/ZhHant.xaml b/src/CurvaLauncher.Plugins.Hashing/I18n/ZhHant.xaml
similarity index 100%
rename from CurvaLauncher.Plugins.Hashing/I18n/ZhHant.xaml
rename to src/CurvaLauncher.Plugins.Hashing/I18n/ZhHant.xaml
diff --git a/CurvaLauncher.Plugins.Hashing/IconSvg.txt b/src/CurvaLauncher.Plugins.Hashing/IconSvg.txt
similarity index 100%
rename from CurvaLauncher.Plugins.Hashing/IconSvg.txt
rename to src/CurvaLauncher.Plugins.Hashing/IconSvg.txt
diff --git a/CurvaLauncher.Plugins.Hashing/Properties/Resources.Designer.cs b/src/CurvaLauncher.Plugins.Hashing/Properties/Resources.Designer.cs
similarity index 100%
rename from CurvaLauncher.Plugins.Hashing/Properties/Resources.Designer.cs
rename to src/CurvaLauncher.Plugins.Hashing/Properties/Resources.Designer.cs
diff --git a/CurvaLauncher.Plugins.Hashing/Properties/Resources.resx b/src/CurvaLauncher.Plugins.Hashing/Properties/Resources.resx
similarity index 100%
rename from CurvaLauncher.Plugins.Hashing/Properties/Resources.resx
rename to src/CurvaLauncher.Plugins.Hashing/Properties/Resources.resx
diff --git a/CurvaLauncher.Plugins.OpenUrl/CurvaLauncher.Plugins.OpenUrl.csproj b/src/CurvaLauncher.Plugins.OpenUrl/CurvaLauncher.Plugins.OpenUrl.csproj
similarity index 95%
rename from CurvaLauncher.Plugins.OpenUrl/CurvaLauncher.Plugins.OpenUrl.csproj
rename to src/CurvaLauncher.Plugins.OpenUrl/CurvaLauncher.Plugins.OpenUrl.csproj
index ca250d4..4124141 100644
--- a/CurvaLauncher.Plugins.OpenUrl/CurvaLauncher.Plugins.OpenUrl.csproj
+++ b/src/CurvaLauncher.Plugins.OpenUrl/CurvaLauncher.Plugins.OpenUrl.csproj
@@ -5,6 +5,7 @@
enable
enable
true
+ true
diff --git a/CurvaLauncher.Plugins.OpenUrl/I18n/EnUs.xaml b/src/CurvaLauncher.Plugins.OpenUrl/I18n/EnUs.xaml
similarity index 100%
rename from CurvaLauncher.Plugins.OpenUrl/I18n/EnUs.xaml
rename to src/CurvaLauncher.Plugins.OpenUrl/I18n/EnUs.xaml
diff --git a/CurvaLauncher.Plugins.OpenUrl/I18n/JaJp.xaml b/src/CurvaLauncher.Plugins.OpenUrl/I18n/JaJp.xaml
similarity index 100%
rename from CurvaLauncher.Plugins.OpenUrl/I18n/JaJp.xaml
rename to src/CurvaLauncher.Plugins.OpenUrl/I18n/JaJp.xaml
diff --git a/CurvaLauncher.Plugins.OpenUrl/I18n/ZhHans.xaml b/src/CurvaLauncher.Plugins.OpenUrl/I18n/ZhHans.xaml
similarity index 100%
rename from CurvaLauncher.Plugins.OpenUrl/I18n/ZhHans.xaml
rename to src/CurvaLauncher.Plugins.OpenUrl/I18n/ZhHans.xaml
diff --git a/CurvaLauncher.Plugins.OpenUrl/I18n/ZhHant.xaml b/src/CurvaLauncher.Plugins.OpenUrl/I18n/ZhHant.xaml
similarity index 100%
rename from CurvaLauncher.Plugins.OpenUrl/I18n/ZhHant.xaml
rename to src/CurvaLauncher.Plugins.OpenUrl/I18n/ZhHant.xaml
diff --git a/CurvaLauncher.Plugins.OpenUrl/IconSvg.txt b/src/CurvaLauncher.Plugins.OpenUrl/IconSvg.txt
similarity index 100%
rename from CurvaLauncher.Plugins.OpenUrl/IconSvg.txt
rename to src/CurvaLauncher.Plugins.OpenUrl/IconSvg.txt
diff --git a/CurvaLauncher.Plugins.OpenUrl/OpenUrlPlugin.cs b/src/CurvaLauncher.Plugins.OpenUrl/OpenUrlPlugin.cs
similarity index 100%
rename from CurvaLauncher.Plugins.OpenUrl/OpenUrlPlugin.cs
rename to src/CurvaLauncher.Plugins.OpenUrl/OpenUrlPlugin.cs
diff --git a/CurvaLauncher.Plugins.OpenUrl/OpenUrlQueryResult.cs b/src/CurvaLauncher.Plugins.OpenUrl/OpenUrlQueryResult.cs
similarity index 100%
rename from CurvaLauncher.Plugins.OpenUrl/OpenUrlQueryResult.cs
rename to src/CurvaLauncher.Plugins.OpenUrl/OpenUrlQueryResult.cs
diff --git a/CurvaLauncher.Plugins.OpenUrl/Properties/Resources.Designer.cs b/src/CurvaLauncher.Plugins.OpenUrl/Properties/Resources.Designer.cs
similarity index 100%
rename from CurvaLauncher.Plugins.OpenUrl/Properties/Resources.Designer.cs
rename to src/CurvaLauncher.Plugins.OpenUrl/Properties/Resources.Designer.cs
diff --git a/CurvaLauncher.Plugins.OpenUrl/Properties/Resources.resx b/src/CurvaLauncher.Plugins.OpenUrl/Properties/Resources.resx
similarity index 100%
rename from CurvaLauncher.Plugins.OpenUrl/Properties/Resources.resx
rename to src/CurvaLauncher.Plugins.OpenUrl/Properties/Resources.resx
diff --git a/CurvaLauncher.Plugins.QuickWebSearch/CurvaLauncher.Plugins.QuickWebSearch.csproj b/src/CurvaLauncher.Plugins.QuickWebSearch/CurvaLauncher.Plugins.QuickWebSearch.csproj
similarity index 95%
rename from CurvaLauncher.Plugins.QuickWebSearch/CurvaLauncher.Plugins.QuickWebSearch.csproj
rename to src/CurvaLauncher.Plugins.QuickWebSearch/CurvaLauncher.Plugins.QuickWebSearch.csproj
index ca250d4..4124141 100644
--- a/CurvaLauncher.Plugins.QuickWebSearch/CurvaLauncher.Plugins.QuickWebSearch.csproj
+++ b/src/CurvaLauncher.Plugins.QuickWebSearch/CurvaLauncher.Plugins.QuickWebSearch.csproj
@@ -5,6 +5,7 @@
enable
enable
true
+ true
diff --git a/CurvaLauncher.Plugins.QuickWebSearch/I18n/EnUs.xaml b/src/CurvaLauncher.Plugins.QuickWebSearch/I18n/EnUs.xaml
similarity index 100%
rename from CurvaLauncher.Plugins.QuickWebSearch/I18n/EnUs.xaml
rename to src/CurvaLauncher.Plugins.QuickWebSearch/I18n/EnUs.xaml
diff --git a/CurvaLauncher.Plugins.QuickWebSearch/I18n/JaJp.xaml b/src/CurvaLauncher.Plugins.QuickWebSearch/I18n/JaJp.xaml
similarity index 100%
rename from CurvaLauncher.Plugins.QuickWebSearch/I18n/JaJp.xaml
rename to src/CurvaLauncher.Plugins.QuickWebSearch/I18n/JaJp.xaml
diff --git a/CurvaLauncher.Plugins.QuickWebSearch/I18n/ZhHans.xaml b/src/CurvaLauncher.Plugins.QuickWebSearch/I18n/ZhHans.xaml
similarity index 100%
rename from CurvaLauncher.Plugins.QuickWebSearch/I18n/ZhHans.xaml
rename to src/CurvaLauncher.Plugins.QuickWebSearch/I18n/ZhHans.xaml
diff --git a/CurvaLauncher.Plugins.QuickWebSearch/I18n/ZhHant.xaml b/src/CurvaLauncher.Plugins.QuickWebSearch/I18n/ZhHant.xaml
similarity index 100%
rename from CurvaLauncher.Plugins.QuickWebSearch/I18n/ZhHant.xaml
rename to src/CurvaLauncher.Plugins.QuickWebSearch/I18n/ZhHant.xaml
diff --git a/CurvaLauncher.Plugins.QuickWebSearch/IconBaiduSvg.txt b/src/CurvaLauncher.Plugins.QuickWebSearch/IconBaiduSvg.txt
similarity index 100%
rename from CurvaLauncher.Plugins.QuickWebSearch/IconBaiduSvg.txt
rename to src/CurvaLauncher.Plugins.QuickWebSearch/IconBaiduSvg.txt
diff --git a/CurvaLauncher.Plugins.QuickWebSearch/IconBingSvg.txt b/src/CurvaLauncher.Plugins.QuickWebSearch/IconBingSvg.txt
similarity index 100%
rename from CurvaLauncher.Plugins.QuickWebSearch/IconBingSvg.txt
rename to src/CurvaLauncher.Plugins.QuickWebSearch/IconBingSvg.txt
diff --git a/CurvaLauncher.Plugins.QuickWebSearch/IconDuckSvg.txt b/src/CurvaLauncher.Plugins.QuickWebSearch/IconDuckSvg.txt
similarity index 100%
rename from CurvaLauncher.Plugins.QuickWebSearch/IconDuckSvg.txt
rename to src/CurvaLauncher.Plugins.QuickWebSearch/IconDuckSvg.txt
diff --git a/CurvaLauncher.Plugins.QuickWebSearch/IconGoogleSvg.txt b/src/CurvaLauncher.Plugins.QuickWebSearch/IconGoogleSvg.txt
similarity index 100%
rename from CurvaLauncher.Plugins.QuickWebSearch/IconGoogleSvg.txt
rename to src/CurvaLauncher.Plugins.QuickWebSearch/IconGoogleSvg.txt
diff --git a/CurvaLauncher.Plugins.QuickWebSearch/IconSvg.txt b/src/CurvaLauncher.Plugins.QuickWebSearch/IconSvg.txt
similarity index 100%
rename from CurvaLauncher.Plugins.QuickWebSearch/IconSvg.txt
rename to src/CurvaLauncher.Plugins.QuickWebSearch/IconSvg.txt
diff --git a/CurvaLauncher.Plugins.QuickWebSearch/Properties/Resources.Designer.cs b/src/CurvaLauncher.Plugins.QuickWebSearch/Properties/Resources.Designer.cs
similarity index 100%
rename from CurvaLauncher.Plugins.QuickWebSearch/Properties/Resources.Designer.cs
rename to src/CurvaLauncher.Plugins.QuickWebSearch/Properties/Resources.Designer.cs
diff --git a/CurvaLauncher.Plugins.QuickWebSearch/Properties/Resources.resx b/src/CurvaLauncher.Plugins.QuickWebSearch/Properties/Resources.resx
similarity index 100%
rename from CurvaLauncher.Plugins.QuickWebSearch/Properties/Resources.resx
rename to src/CurvaLauncher.Plugins.QuickWebSearch/Properties/Resources.resx
diff --git a/CurvaLauncher.Plugins.QuickWebSearch/QuickWebSearchPlugin.cs b/src/CurvaLauncher.Plugins.QuickWebSearch/QuickWebSearchPlugin.cs
similarity index 100%
rename from CurvaLauncher.Plugins.QuickWebSearch/QuickWebSearchPlugin.cs
rename to src/CurvaLauncher.Plugins.QuickWebSearch/QuickWebSearchPlugin.cs
diff --git a/CurvaLauncher.Plugins.QuickWebSearch/QuickWebSearchQueryResult.cs b/src/CurvaLauncher.Plugins.QuickWebSearch/QuickWebSearchQueryResult.cs
similarity index 100%
rename from CurvaLauncher.Plugins.QuickWebSearch/QuickWebSearchQueryResult.cs
rename to src/CurvaLauncher.Plugins.QuickWebSearch/QuickWebSearchQueryResult.cs
diff --git a/CurvaLauncher.Plugins.RunApplication/AppInfo.cs b/src/CurvaLauncher.Plugins.RunApplication/AppInfo.cs
similarity index 100%
rename from CurvaLauncher.Plugins.RunApplication/AppInfo.cs
rename to src/CurvaLauncher.Plugins.RunApplication/AppInfo.cs
diff --git a/CurvaLauncher.Plugins.RunApplication/CurvaLauncher.Plugins.RunApplication.csproj b/src/CurvaLauncher.Plugins.RunApplication/CurvaLauncher.Plugins.RunApplication.csproj
similarity index 96%
rename from CurvaLauncher.Plugins.RunApplication/CurvaLauncher.Plugins.RunApplication.csproj
rename to src/CurvaLauncher.Plugins.RunApplication/CurvaLauncher.Plugins.RunApplication.csproj
index c16e076..f28f69c 100644
--- a/CurvaLauncher.Plugins.RunApplication/CurvaLauncher.Plugins.RunApplication.csproj
+++ b/src/CurvaLauncher.Plugins.RunApplication/CurvaLauncher.Plugins.RunApplication.csproj
@@ -6,6 +6,7 @@
enable
true
true
+ true
diff --git a/CurvaLauncher.Plugins.RunApplication/I18n/EnUs.xaml b/src/CurvaLauncher.Plugins.RunApplication/I18n/EnUs.xaml
similarity index 100%
rename from CurvaLauncher.Plugins.RunApplication/I18n/EnUs.xaml
rename to src/CurvaLauncher.Plugins.RunApplication/I18n/EnUs.xaml
diff --git a/CurvaLauncher.Plugins.RunApplication/I18n/JaJp.xaml b/src/CurvaLauncher.Plugins.RunApplication/I18n/JaJp.xaml
similarity index 100%
rename from CurvaLauncher.Plugins.RunApplication/I18n/JaJp.xaml
rename to src/CurvaLauncher.Plugins.RunApplication/I18n/JaJp.xaml
diff --git a/CurvaLauncher.Plugins.RunApplication/I18n/ZhHans.xaml b/src/CurvaLauncher.Plugins.RunApplication/I18n/ZhHans.xaml
similarity index 100%
rename from CurvaLauncher.Plugins.RunApplication/I18n/ZhHans.xaml
rename to src/CurvaLauncher.Plugins.RunApplication/I18n/ZhHans.xaml
diff --git a/CurvaLauncher.Plugins.RunApplication/I18n/ZhHant.xaml b/src/CurvaLauncher.Plugins.RunApplication/I18n/ZhHant.xaml
similarity index 100%
rename from CurvaLauncher.Plugins.RunApplication/I18n/ZhHant.xaml
rename to src/CurvaLauncher.Plugins.RunApplication/I18n/ZhHant.xaml
diff --git a/CurvaLauncher.Plugins.RunApplication/IconSvg.txt b/src/CurvaLauncher.Plugins.RunApplication/IconSvg.txt
similarity index 100%
rename from CurvaLauncher.Plugins.RunApplication/IconSvg.txt
rename to src/CurvaLauncher.Plugins.RunApplication/IconSvg.txt
diff --git a/CurvaLauncher.Plugins.RunApplication/IndexLocations.cs b/src/CurvaLauncher.Plugins.RunApplication/IndexLocations.cs
similarity index 100%
rename from CurvaLauncher.Plugins.RunApplication/IndexLocations.cs
rename to src/CurvaLauncher.Plugins.RunApplication/IndexLocations.cs
diff --git a/CurvaLauncher.Plugins.RunApplication/Properties/Resources.Designer.cs b/src/CurvaLauncher.Plugins.RunApplication/Properties/Resources.Designer.cs
similarity index 100%
rename from CurvaLauncher.Plugins.RunApplication/Properties/Resources.Designer.cs
rename to src/CurvaLauncher.Plugins.RunApplication/Properties/Resources.Designer.cs
diff --git a/CurvaLauncher.Plugins.RunApplication/Properties/Resources.resx b/src/CurvaLauncher.Plugins.RunApplication/Properties/Resources.resx
similarity index 100%
rename from CurvaLauncher.Plugins.RunApplication/Properties/Resources.resx
rename to src/CurvaLauncher.Plugins.RunApplication/Properties/Resources.resx
diff --git a/CurvaLauncher.Plugins.RunApplication/RegistryUtils/RegChangeNotifyFilter.cs b/src/CurvaLauncher.Plugins.RunApplication/RegistryUtils/RegChangeNotifyFilter.cs
similarity index 100%
rename from CurvaLauncher.Plugins.RunApplication/RegistryUtils/RegChangeNotifyFilter.cs
rename to src/CurvaLauncher.Plugins.RunApplication/RegistryUtils/RegChangeNotifyFilter.cs
diff --git a/CurvaLauncher.Plugins.RunApplication/RegistryUtils/RegistryMonitor.cs b/src/CurvaLauncher.Plugins.RunApplication/RegistryUtils/RegistryMonitor.cs
similarity index 100%
rename from CurvaLauncher.Plugins.RunApplication/RegistryUtils/RegistryMonitor.cs
rename to src/CurvaLauncher.Plugins.RunApplication/RegistryUtils/RegistryMonitor.cs
diff --git a/CurvaLauncher.Plugins.RunApplication/RegistryUtils/readme.md b/src/CurvaLauncher.Plugins.RunApplication/RegistryUtils/readme.md
similarity index 100%
rename from CurvaLauncher.Plugins.RunApplication/RegistryUtils/readme.md
rename to src/CurvaLauncher.Plugins.RunApplication/RegistryUtils/readme.md
diff --git a/CurvaLauncher.Plugins.RunApplication/RunApplicationPlugin.cs b/src/CurvaLauncher.Plugins.RunApplication/RunApplicationPlugin.cs
similarity index 100%
rename from CurvaLauncher.Plugins.RunApplication/RunApplicationPlugin.cs
rename to src/CurvaLauncher.Plugins.RunApplication/RunApplicationPlugin.cs
diff --git a/CurvaLauncher.Plugins.RunApplication/RunUwpApplicationQueryResult.cs b/src/CurvaLauncher.Plugins.RunApplication/RunUwpApplicationQueryResult.cs
similarity index 100%
rename from CurvaLauncher.Plugins.RunApplication/RunUwpApplicationQueryResult.cs
rename to src/CurvaLauncher.Plugins.RunApplication/RunUwpApplicationQueryResult.cs
diff --git a/CurvaLauncher.Plugins.RunApplication/RunWin32ApplicationQueryResult.cs b/src/CurvaLauncher.Plugins.RunApplication/RunWin32ApplicationQueryResult.cs
similarity index 100%
rename from CurvaLauncher.Plugins.RunApplication/RunWin32ApplicationQueryResult.cs
rename to src/CurvaLauncher.Plugins.RunApplication/RunWin32ApplicationQueryResult.cs
diff --git a/CurvaLauncher.Plugins.RunApplication/UwpAppInfo.cs b/src/CurvaLauncher.Plugins.RunApplication/UwpAppInfo.cs
similarity index 100%
rename from CurvaLauncher.Plugins.RunApplication/UwpAppInfo.cs
rename to src/CurvaLauncher.Plugins.RunApplication/UwpAppInfo.cs
diff --git a/CurvaLauncher.Plugins.RunApplication/Win32AppDistinctMode.cs b/src/CurvaLauncher.Plugins.RunApplication/Win32AppDistinctMode.cs
similarity index 100%
rename from CurvaLauncher.Plugins.RunApplication/Win32AppDistinctMode.cs
rename to src/CurvaLauncher.Plugins.RunApplication/Win32AppDistinctMode.cs
diff --git a/CurvaLauncher.Plugins.RunApplication/Win32AppInfo.cs b/src/CurvaLauncher.Plugins.RunApplication/Win32AppInfo.cs
similarity index 100%
rename from CurvaLauncher.Plugins.RunApplication/Win32AppInfo.cs
rename to src/CurvaLauncher.Plugins.RunApplication/Win32AppInfo.cs
diff --git a/CurvaLauncher.Plugins.RunProgram/CurvaLauncher.Plugins.RunProgram.csproj b/src/CurvaLauncher.Plugins.RunProgram/CurvaLauncher.Plugins.RunProgram.csproj
similarity index 95%
rename from CurvaLauncher.Plugins.RunProgram/CurvaLauncher.Plugins.RunProgram.csproj
rename to src/CurvaLauncher.Plugins.RunProgram/CurvaLauncher.Plugins.RunProgram.csproj
index 03a7ead..3022962 100644
--- a/CurvaLauncher.Plugins.RunProgram/CurvaLauncher.Plugins.RunProgram.csproj
+++ b/src/CurvaLauncher.Plugins.RunProgram/CurvaLauncher.Plugins.RunProgram.csproj
@@ -6,6 +6,7 @@
enable
true
latest
+ true
diff --git a/CurvaLauncher.Plugins.RunProgram/I18n/EnUs.xaml b/src/CurvaLauncher.Plugins.RunProgram/I18n/EnUs.xaml
similarity index 100%
rename from CurvaLauncher.Plugins.RunProgram/I18n/EnUs.xaml
rename to src/CurvaLauncher.Plugins.RunProgram/I18n/EnUs.xaml
diff --git a/CurvaLauncher.Plugins.RunProgram/I18n/JaJp.xaml b/src/CurvaLauncher.Plugins.RunProgram/I18n/JaJp.xaml
similarity index 100%
rename from CurvaLauncher.Plugins.RunProgram/I18n/JaJp.xaml
rename to src/CurvaLauncher.Plugins.RunProgram/I18n/JaJp.xaml
diff --git a/CurvaLauncher.Plugins.RunProgram/I18n/ZhHans.xaml b/src/CurvaLauncher.Plugins.RunProgram/I18n/ZhHans.xaml
similarity index 100%
rename from CurvaLauncher.Plugins.RunProgram/I18n/ZhHans.xaml
rename to src/CurvaLauncher.Plugins.RunProgram/I18n/ZhHans.xaml
diff --git a/CurvaLauncher.Plugins.RunProgram/I18n/ZhHant.xaml b/src/CurvaLauncher.Plugins.RunProgram/I18n/ZhHant.xaml
similarity index 100%
rename from CurvaLauncher.Plugins.RunProgram/I18n/ZhHant.xaml
rename to src/CurvaLauncher.Plugins.RunProgram/I18n/ZhHant.xaml
diff --git a/CurvaLauncher.Plugins.RunProgram/IconSvg.txt b/src/CurvaLauncher.Plugins.RunProgram/IconSvg.txt
similarity index 100%
rename from CurvaLauncher.Plugins.RunProgram/IconSvg.txt
rename to src/CurvaLauncher.Plugins.RunProgram/IconSvg.txt
diff --git a/CurvaLauncher.Plugins.RunProgram/Properties/Resources.Designer.cs b/src/CurvaLauncher.Plugins.RunProgram/Properties/Resources.Designer.cs
similarity index 100%
rename from CurvaLauncher.Plugins.RunProgram/Properties/Resources.Designer.cs
rename to src/CurvaLauncher.Plugins.RunProgram/Properties/Resources.Designer.cs
diff --git a/CurvaLauncher.Plugins.RunProgram/Properties/Resources.resx b/src/CurvaLauncher.Plugins.RunProgram/Properties/Resources.resx
similarity index 100%
rename from CurvaLauncher.Plugins.RunProgram/Properties/Resources.resx
rename to src/CurvaLauncher.Plugins.RunProgram/Properties/Resources.resx
diff --git a/CurvaLauncher.Plugins.RunProgram/RunProgramPlugin.cs b/src/CurvaLauncher.Plugins.RunProgram/RunProgramPlugin.cs
similarity index 100%
rename from CurvaLauncher.Plugins.RunProgram/RunProgramPlugin.cs
rename to src/CurvaLauncher.Plugins.RunProgram/RunProgramPlugin.cs
diff --git a/CurvaLauncher.Plugins.RunProgram/RunProgramQueryResult.cs b/src/CurvaLauncher.Plugins.RunProgram/RunProgramQueryResult.cs
similarity index 100%
rename from CurvaLauncher.Plugins.RunProgram/RunProgramQueryResult.cs
rename to src/CurvaLauncher.Plugins.RunProgram/RunProgramQueryResult.cs
diff --git a/CurvaLauncher.Plugins.Test/CurvaLauncher.Plugins.Test.csproj b/src/CurvaLauncher.Plugins.Test/CurvaLauncher.Plugins.Test.csproj
similarity index 93%
rename from CurvaLauncher.Plugins.Test/CurvaLauncher.Plugins.Test.csproj
rename to src/CurvaLauncher.Plugins.Test/CurvaLauncher.Plugins.Test.csproj
index 3f759b1..958c85e 100644
--- a/CurvaLauncher.Plugins.Test/CurvaLauncher.Plugins.Test.csproj
+++ b/src/CurvaLauncher.Plugins.Test/CurvaLauncher.Plugins.Test.csproj
@@ -5,6 +5,7 @@
enable
enable
true
+ true
@@ -18,5 +19,5 @@
-
+
diff --git a/CurvaLauncher.Plugins.Test/MyFlagEnums.cs b/src/CurvaLauncher.Plugins.Test/MyFlagEnums.cs
similarity index 100%
rename from CurvaLauncher.Plugins.Test/MyFlagEnums.cs
rename to src/CurvaLauncher.Plugins.Test/MyFlagEnums.cs
diff --git a/CurvaLauncher.Plugins.Test/TestPlugin.cs b/src/CurvaLauncher.Plugins.Test/TestPlugin.cs
similarity index 100%
rename from CurvaLauncher.Plugins.Test/TestPlugin.cs
rename to src/CurvaLauncher.Plugins.Test/TestPlugin.cs
diff --git a/CurvaLauncher.Plugins.Test/TestQueryResult.cs b/src/CurvaLauncher.Plugins.Test/TestQueryResult.cs
similarity index 100%
rename from CurvaLauncher.Plugins.Test/TestQueryResult.cs
rename to src/CurvaLauncher.Plugins.Test/TestQueryResult.cs
diff --git a/CurvaLauncher.Plugins.Translator/CurvaLauncher.Plugins.Translator.csproj b/src/CurvaLauncher.Plugins.Translator/CurvaLauncher.Plugins.Translator.csproj
similarity index 95%
rename from CurvaLauncher.Plugins.Translator/CurvaLauncher.Plugins.Translator.csproj
rename to src/CurvaLauncher.Plugins.Translator/CurvaLauncher.Plugins.Translator.csproj
index ca250d4..4124141 100644
--- a/CurvaLauncher.Plugins.Translator/CurvaLauncher.Plugins.Translator.csproj
+++ b/src/CurvaLauncher.Plugins.Translator/CurvaLauncher.Plugins.Translator.csproj
@@ -5,6 +5,7 @@
enable
enable
true
+ true
diff --git a/CurvaLauncher.Plugins.Translator/I18n/EnUs.xaml b/src/CurvaLauncher.Plugins.Translator/I18n/EnUs.xaml
similarity index 100%
rename from CurvaLauncher.Plugins.Translator/I18n/EnUs.xaml
rename to src/CurvaLauncher.Plugins.Translator/I18n/EnUs.xaml
diff --git a/CurvaLauncher.Plugins.Translator/I18n/JaJp.xaml b/src/CurvaLauncher.Plugins.Translator/I18n/JaJp.xaml
similarity index 100%
rename from CurvaLauncher.Plugins.Translator/I18n/JaJp.xaml
rename to src/CurvaLauncher.Plugins.Translator/I18n/JaJp.xaml
diff --git a/CurvaLauncher.Plugins.Translator/I18n/ZhHans.xaml b/src/CurvaLauncher.Plugins.Translator/I18n/ZhHans.xaml
similarity index 100%
rename from CurvaLauncher.Plugins.Translator/I18n/ZhHans.xaml
rename to src/CurvaLauncher.Plugins.Translator/I18n/ZhHans.xaml
diff --git a/CurvaLauncher.Plugins.Translator/I18n/ZhHant.xaml b/src/CurvaLauncher.Plugins.Translator/I18n/ZhHant.xaml
similarity index 100%
rename from CurvaLauncher.Plugins.Translator/I18n/ZhHant.xaml
rename to src/CurvaLauncher.Plugins.Translator/I18n/ZhHant.xaml
diff --git a/CurvaLauncher.Plugins.Translator/IconSvg.txt b/src/CurvaLauncher.Plugins.Translator/IconSvg.txt
similarity index 100%
rename from CurvaLauncher.Plugins.Translator/IconSvg.txt
rename to src/CurvaLauncher.Plugins.Translator/IconSvg.txt
diff --git a/CurvaLauncher.Plugins.Translator/MicrosoftEdge/EdgeApiResult.cs b/src/CurvaLauncher.Plugins.Translator/MicrosoftEdge/EdgeApiResult.cs
similarity index 100%
rename from CurvaLauncher.Plugins.Translator/MicrosoftEdge/EdgeApiResult.cs
rename to src/CurvaLauncher.Plugins.Translator/MicrosoftEdge/EdgeApiResult.cs
diff --git a/CurvaLauncher.Plugins.Translator/MicrosoftEdge/EdgeTranslationQueryResult.cs b/src/CurvaLauncher.Plugins.Translator/MicrosoftEdge/EdgeTranslationQueryResult.cs
similarity index 100%
rename from CurvaLauncher.Plugins.Translator/MicrosoftEdge/EdgeTranslationQueryResult.cs
rename to src/CurvaLauncher.Plugins.Translator/MicrosoftEdge/EdgeTranslationQueryResult.cs
diff --git a/CurvaLauncher.Plugins.Translator/Properties/Resources.Designer.cs b/src/CurvaLauncher.Plugins.Translator/Properties/Resources.Designer.cs
similarity index 100%
rename from CurvaLauncher.Plugins.Translator/Properties/Resources.Designer.cs
rename to src/CurvaLauncher.Plugins.Translator/Properties/Resources.Designer.cs
diff --git a/CurvaLauncher.Plugins.Translator/Properties/Resources.resx b/src/CurvaLauncher.Plugins.Translator/Properties/Resources.resx
similarity index 100%
rename from CurvaLauncher.Plugins.Translator/Properties/Resources.resx
rename to src/CurvaLauncher.Plugins.Translator/Properties/Resources.resx
diff --git a/CurvaLauncher.Plugins.Translator/TranslateException.cs b/src/CurvaLauncher.Plugins.Translator/TranslateException.cs
similarity index 100%
rename from CurvaLauncher.Plugins.Translator/TranslateException.cs
rename to src/CurvaLauncher.Plugins.Translator/TranslateException.cs
diff --git a/CurvaLauncher.Plugins.Translator/TranslatorAPI.cs b/src/CurvaLauncher.Plugins.Translator/TranslatorAPI.cs
similarity index 100%
rename from CurvaLauncher.Plugins.Translator/TranslatorAPI.cs
rename to src/CurvaLauncher.Plugins.Translator/TranslatorAPI.cs
diff --git a/CurvaLauncher.Plugins.Translator/TranslatorPlugin.cs b/src/CurvaLauncher.Plugins.Translator/TranslatorPlugin.cs
similarity index 100%
rename from CurvaLauncher.Plugins.Translator/TranslatorPlugin.cs
rename to src/CurvaLauncher.Plugins.Translator/TranslatorPlugin.cs
diff --git a/CurvaLauncher.Plugins.Translator/Youdao/YoudaoApiResult.cs b/src/CurvaLauncher.Plugins.Translator/Youdao/YoudaoApiResult.cs
similarity index 100%
rename from CurvaLauncher.Plugins.Translator/Youdao/YoudaoApiResult.cs
rename to src/CurvaLauncher.Plugins.Translator/Youdao/YoudaoApiResult.cs
diff --git a/CurvaLauncher.Plugins.Translator/Youdao/YoudaoTranslationQueryResult.cs b/src/CurvaLauncher.Plugins.Translator/Youdao/YoudaoTranslationQueryResult.cs
similarity index 100%
rename from CurvaLauncher.Plugins.Translator/Youdao/YoudaoTranslationQueryResult.cs
rename to src/CurvaLauncher.Plugins.Translator/Youdao/YoudaoTranslationQueryResult.cs
diff --git a/CurvaLauncher.Plugins/AsyncI18nPlugin.cs b/src/CurvaLauncher.Plugins/AsyncI18nPlugin.cs
similarity index 100%
rename from CurvaLauncher.Plugins/AsyncI18nPlugin.cs
rename to src/CurvaLauncher.Plugins/AsyncI18nPlugin.cs
diff --git a/CurvaLauncher.Plugins/AsyncPlugin.cs b/src/CurvaLauncher.Plugins/AsyncPlugin.cs
similarity index 100%
rename from CurvaLauncher.Plugins/AsyncPlugin.cs
rename to src/CurvaLauncher.Plugins/AsyncPlugin.cs
diff --git a/CurvaLauncher.Plugins/CommandAsyncI18nPlugin.cs b/src/CurvaLauncher.Plugins/CommandAsyncI18nPlugin.cs
similarity index 100%
rename from CurvaLauncher.Plugins/CommandAsyncI18nPlugin.cs
rename to src/CurvaLauncher.Plugins/CommandAsyncI18nPlugin.cs
diff --git a/CurvaLauncher.Plugins/CommandAsyncPlugin.cs b/src/CurvaLauncher.Plugins/CommandAsyncPlugin.cs
similarity index 100%
rename from CurvaLauncher.Plugins/CommandAsyncPlugin.cs
rename to src/CurvaLauncher.Plugins/CommandAsyncPlugin.cs
diff --git a/CurvaLauncher.Plugins/CommandPlugin.cs b/src/CurvaLauncher.Plugins/CommandPlugin.cs
similarity index 100%
rename from CurvaLauncher.Plugins/CommandPlugin.cs
rename to src/CurvaLauncher.Plugins/CommandPlugin.cs
diff --git a/CurvaLauncher.Plugins/CommandSyncI18nPlugin.cs b/src/CurvaLauncher.Plugins/CommandSyncI18nPlugin.cs
similarity index 100%
rename from CurvaLauncher.Plugins/CommandSyncI18nPlugin.cs
rename to src/CurvaLauncher.Plugins/CommandSyncI18nPlugin.cs
diff --git a/CurvaLauncher.Plugins/CommandSyncPlugin.cs b/src/CurvaLauncher.Plugins/CommandSyncPlugin.cs
similarity index 100%
rename from CurvaLauncher.Plugins/CommandSyncPlugin.cs
rename to src/CurvaLauncher.Plugins/CommandSyncPlugin.cs
diff --git a/CurvaLauncher.Plugins/CurvaLauncher.Plugins.csproj b/src/CurvaLauncher.Plugins/CurvaLauncher.Plugins.csproj
similarity index 87%
rename from CurvaLauncher.Plugins/CurvaLauncher.Plugins.csproj
rename to src/CurvaLauncher.Plugins/CurvaLauncher.Plugins.csproj
index d748949..fd26206 100644
--- a/CurvaLauncher.Plugins/CurvaLauncher.Plugins.csproj
+++ b/src/CurvaLauncher.Plugins/CurvaLauncher.Plugins.csproj
@@ -6,6 +6,7 @@
enable
true
CurvaLauncher
+ true
diff --git a/CurvaLauncher.Plugins/I18n/EnUs.xaml b/src/CurvaLauncher.Plugins/I18n/EnUs.xaml
similarity index 100%
rename from CurvaLauncher.Plugins/I18n/EnUs.xaml
rename to src/CurvaLauncher.Plugins/I18n/EnUs.xaml
diff --git a/CurvaLauncher.Plugins/I18n/JaJp.xaml b/src/CurvaLauncher.Plugins/I18n/JaJp.xaml
similarity index 100%
rename from CurvaLauncher.Plugins/I18n/JaJp.xaml
rename to src/CurvaLauncher.Plugins/I18n/JaJp.xaml
diff --git a/CurvaLauncher.Plugins/I18n/ZhHans.xaml b/src/CurvaLauncher.Plugins/I18n/ZhHans.xaml
similarity index 100%
rename from CurvaLauncher.Plugins/I18n/ZhHans.xaml
rename to src/CurvaLauncher.Plugins/I18n/ZhHans.xaml
diff --git a/CurvaLauncher.Plugins/I18n/ZhHant.xaml b/src/CurvaLauncher.Plugins/I18n/ZhHant.xaml
similarity index 100%
rename from CurvaLauncher.Plugins/I18n/ZhHant.xaml
rename to src/CurvaLauncher.Plugins/I18n/ZhHant.xaml
diff --git a/CurvaLauncher.Plugins/I18nResourceDictionary.cs b/src/CurvaLauncher.Plugins/I18nResourceDictionary.cs
similarity index 100%
rename from CurvaLauncher.Plugins/I18nResourceDictionary.cs
rename to src/CurvaLauncher.Plugins/I18nResourceDictionary.cs
diff --git a/CurvaLauncher.Plugins/IAsyncPlugin.cs b/src/CurvaLauncher.Plugins/IAsyncPlugin.cs
similarity index 100%
rename from CurvaLauncher.Plugins/IAsyncPlugin.cs
rename to src/CurvaLauncher.Plugins/IAsyncPlugin.cs
diff --git a/CurvaLauncher.Plugins/II18nPlugin.cs b/src/CurvaLauncher.Plugins/II18nPlugin.cs
similarity index 100%
rename from CurvaLauncher.Plugins/II18nPlugin.cs
rename to src/CurvaLauncher.Plugins/II18nPlugin.cs
diff --git a/CurvaLauncher.Plugins/IPlugin.cs b/src/CurvaLauncher.Plugins/IPlugin.cs
similarity index 100%
rename from CurvaLauncher.Plugins/IPlugin.cs
rename to src/CurvaLauncher.Plugins/IPlugin.cs
diff --git a/CurvaLauncher.Plugins/IPluginOptionAttribute.cs b/src/CurvaLauncher.Plugins/IPluginOptionAttribute.cs
similarity index 100%
rename from CurvaLauncher.Plugins/IPluginOptionAttribute.cs
rename to src/CurvaLauncher.Plugins/IPluginOptionAttribute.cs
diff --git a/CurvaLauncher.Plugins/ISyncPlugin.cs b/src/CurvaLauncher.Plugins/ISyncPlugin.cs
similarity index 100%
rename from CurvaLauncher.Plugins/ISyncPlugin.cs
rename to src/CurvaLauncher.Plugins/ISyncPlugin.cs
diff --git a/CurvaLauncher.Plugins/Plugin.cs b/src/CurvaLauncher.Plugins/Plugin.cs
similarity index 100%
rename from CurvaLauncher.Plugins/Plugin.cs
rename to src/CurvaLauncher.Plugins/Plugin.cs
diff --git a/CurvaLauncher.Plugins/PluginI18nOptionAttribute.cs b/src/CurvaLauncher.Plugins/PluginI18nOptionAttribute.cs
similarity index 100%
rename from CurvaLauncher.Plugins/PluginI18nOptionAttribute.cs
rename to src/CurvaLauncher.Plugins/PluginI18nOptionAttribute.cs
diff --git a/CurvaLauncher.Plugins/PluginOptionAttribute.cs b/src/CurvaLauncher.Plugins/PluginOptionAttribute.cs
similarity index 100%
rename from CurvaLauncher.Plugins/PluginOptionAttribute.cs
rename to src/CurvaLauncher.Plugins/PluginOptionAttribute.cs
diff --git a/CurvaLauncher.Plugins/SyncI18nPlugin.cs b/src/CurvaLauncher.Plugins/SyncI18nPlugin.cs
similarity index 100%
rename from CurvaLauncher.Plugins/SyncI18nPlugin.cs
rename to src/CurvaLauncher.Plugins/SyncI18nPlugin.cs
diff --git a/CurvaLauncher.Plugins/SyncPlugin.cs b/src/CurvaLauncher.Plugins/SyncPlugin.cs
similarity index 100%
rename from CurvaLauncher.Plugins/SyncPlugin.cs
rename to src/CurvaLauncher.Plugins/SyncPlugin.cs
diff --git a/CurvaLauncher.sln b/src/CurvaLauncher.sln
similarity index 100%
rename from CurvaLauncher.sln
rename to src/CurvaLauncher.sln
diff --git a/CurvaLauncher/Apis/CommandLineApi.cs b/src/CurvaLauncher/Apis/CommandLineApi.cs
similarity index 100%
rename from CurvaLauncher/Apis/CommandLineApi.cs
rename to src/CurvaLauncher/Apis/CommandLineApi.cs
diff --git a/CurvaLauncher/Apis/CommonApi.cs b/src/CurvaLauncher/Apis/CommonApi.cs
similarity index 100%
rename from CurvaLauncher/Apis/CommonApi.cs
rename to src/CurvaLauncher/Apis/CommonApi.cs
diff --git a/CurvaLauncher/Apis/FileApi.cs b/src/CurvaLauncher/Apis/FileApi.cs
similarity index 100%
rename from CurvaLauncher/Apis/FileApi.cs
rename to src/CurvaLauncher/Apis/FileApi.cs
diff --git a/CurvaLauncher/Apis/ImageUtils.FileIconHelper.cs b/src/CurvaLauncher/Apis/ImageUtils.FileIconHelper.cs
similarity index 100%
rename from CurvaLauncher/Apis/ImageUtils.FileIconHelper.cs
rename to src/CurvaLauncher/Apis/ImageUtils.FileIconHelper.cs
diff --git a/CurvaLauncher/Apis/ImageUtils.cs b/src/CurvaLauncher/Apis/ImageUtils.cs
similarity index 100%
rename from CurvaLauncher/Apis/ImageUtils.cs
rename to src/CurvaLauncher/Apis/ImageUtils.cs
diff --git a/CurvaLauncher/Apis/StringApi.cs b/src/CurvaLauncher/Apis/StringApi.cs
similarity index 100%
rename from CurvaLauncher/Apis/StringApi.cs
rename to src/CurvaLauncher/Apis/StringApi.cs
diff --git a/CurvaLauncher/App.xaml b/src/CurvaLauncher/App.xaml
similarity index 100%
rename from CurvaLauncher/App.xaml
rename to src/CurvaLauncher/App.xaml
diff --git a/CurvaLauncher/App.xaml.cs b/src/CurvaLauncher/App.xaml.cs
similarity index 86%
rename from CurvaLauncher/App.xaml.cs
rename to src/CurvaLauncher/App.xaml.cs
index 15a8b14..3b725db 100644
--- a/CurvaLauncher/App.xaml.cs
+++ b/src/CurvaLauncher/App.xaml.cs
@@ -1,8 +1,10 @@
using System;
using System.Reflection;
+using System.Runtime.CompilerServices;
using System.Threading;
using System.Threading.Tasks;
using System.Windows;
+using System.Windows.Interop;
using System.Windows.Threading;
using CommunityToolkit.Mvvm.Input;
using CommunityToolkit.Mvvm.Messaging;
@@ -13,6 +15,7 @@
using CurvaLauncher.Views;
using CurvaLauncher.Views.Pages;
using Microsoft.Extensions.DependencyInjection;
+using Wpf.Ui.Controls;
namespace CurvaLauncher
{
@@ -107,6 +110,9 @@ protected override void OnStartup(StartupEventArgs e)
// 初始化主题
themeService.ApplyTheme();
+ // 初始化托盘图标
+ InitializeNotifyIcon(mainWindow);
+
if (!hotkeyService.IsLauncherHotkeyRegistered)
{
NativeMethods.MessageBox(
@@ -224,6 +230,30 @@ public static void ShowLauncherSettings()
settingsWindow.Activate();
}
+ public static void InitializeNotifyIcon(MainWindow window)
+ {
+ var hwnd = new WindowInteropHelper(window)
+ .EnsureHandle();
+
+ var wpfuiAssembly = typeof(NotifyIcon).Assembly;
+ var trayManagerType = wpfuiAssembly.GetType("Wpf.Ui.Tray.TrayManager")!;
+ var iNotifyIconType = wpfuiAssembly.GetType("Wpf.Ui.Tray.INotifyIcon")!;
+ var notifyIconType = window.notifyIcon.GetType();
+
+ var registerMethod = trayManagerType.GetMethod("Register", (BindingFlags)(-1), [iNotifyIconType, typeof(HwndSource)])!;
+ var notifyIconServiceField = notifyIconType.GetField("_notifyIconService", (BindingFlags)(-1))!;
+
+ var notifyIconService = notifyIconServiceField.GetValue(window.notifyIcon);
+ var hwndSource = HwndSource.FromHwnd(hwnd);
+
+ NotifyIconInitializeIcon(window.notifyIcon);
+
+ registerMethod.Invoke(null, [notifyIconService, hwndSource]);
+
+ [UnsafeAccessor(UnsafeAccessorKind.Method, Name = "InitializeIcon")]
+ static extern void NotifyIconInitializeIcon(NotifyIcon notifyIcon);
+ }
+
public static string Version { get; } = Assembly.GetExecutingAssembly().GetName().Version?.ToString() ?? "[ Unknown Version ]";
public static string RepositoryAddress { get; } = "https://github.com/OrgEleCho/CurvaLauncher";
diff --git a/CurvaLauncher/AppConfig.cs b/src/CurvaLauncher/AppConfig.cs
similarity index 100%
rename from CurvaLauncher/AppConfig.cs
rename to src/CurvaLauncher/AppConfig.cs
diff --git a/CurvaLauncher/AssemblyInfo.cs b/src/CurvaLauncher/AssemblyInfo.cs
similarity index 100%
rename from CurvaLauncher/AssemblyInfo.cs
rename to src/CurvaLauncher/AssemblyInfo.cs
diff --git a/CurvaLauncher/Assets/Icon128.png b/src/CurvaLauncher/Assets/Icon128.png
similarity index 100%
rename from CurvaLauncher/Assets/Icon128.png
rename to src/CurvaLauncher/Assets/Icon128.png
diff --git a/CurvaLauncher/Assets/Icon32.ico b/src/CurvaLauncher/Assets/Icon32.ico
similarity index 100%
rename from CurvaLauncher/Assets/Icon32.ico
rename to src/CurvaLauncher/Assets/Icon32.ico
diff --git a/CurvaLauncher/Converters/EnumConverter.cs b/src/CurvaLauncher/Converters/EnumConverter.cs
similarity index 100%
rename from CurvaLauncher/Converters/EnumConverter.cs
rename to src/CurvaLauncher/Converters/EnumConverter.cs
diff --git a/CurvaLauncher/CurvaLauncher.csproj b/src/CurvaLauncher/CurvaLauncher.csproj
similarity index 95%
rename from CurvaLauncher/CurvaLauncher.csproj
rename to src/CurvaLauncher/CurvaLauncher.csproj
index cc0f1b8..f475d00 100644
--- a/CurvaLauncher/CurvaLauncher.csproj
+++ b/src/CurvaLauncher/CurvaLauncher.csproj
@@ -12,6 +12,7 @@
0.5.2-beta
true
+ true
@@ -28,7 +29,6 @@
-
diff --git a/CurvaLauncher/EntryPoint.cs b/src/CurvaLauncher/EntryPoint.cs
similarity index 100%
rename from CurvaLauncher/EntryPoint.cs
rename to src/CurvaLauncher/EntryPoint.cs
diff --git a/CurvaLauncher/I18n/EnUs.xaml b/src/CurvaLauncher/I18n/EnUs.xaml
similarity index 100%
rename from CurvaLauncher/I18n/EnUs.xaml
rename to src/CurvaLauncher/I18n/EnUs.xaml
diff --git a/CurvaLauncher/I18n/JaJp.xaml b/src/CurvaLauncher/I18n/JaJp.xaml
similarity index 100%
rename from CurvaLauncher/I18n/JaJp.xaml
rename to src/CurvaLauncher/I18n/JaJp.xaml
diff --git a/CurvaLauncher/I18n/ZhHans.xaml b/src/CurvaLauncher/I18n/ZhHans.xaml
similarity index 100%
rename from CurvaLauncher/I18n/ZhHans.xaml
rename to src/CurvaLauncher/I18n/ZhHans.xaml
diff --git a/CurvaLauncher/I18n/ZhHant.xaml b/src/CurvaLauncher/I18n/ZhHant.xaml
similarity index 100%
rename from CurvaLauncher/I18n/ZhHant.xaml
rename to src/CurvaLauncher/I18n/ZhHant.xaml
diff --git a/CurvaLauncher/Icon128.ico b/src/CurvaLauncher/Icon128.ico
similarity index 100%
rename from CurvaLauncher/Icon128.ico
rename to src/CurvaLauncher/Icon128.ico
diff --git a/CurvaLauncher/Libraries/Securify.PropertyStore/Flags/PropertyType.cs b/src/CurvaLauncher/Libraries/Securify.PropertyStore/Flags/PropertyType.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.PropertyStore/Flags/PropertyType.cs
rename to src/CurvaLauncher/Libraries/Securify.PropertyStore/Flags/PropertyType.cs
diff --git a/CurvaLauncher/Libraries/Securify.PropertyStore/LICENSE.txt b/src/CurvaLauncher/Libraries/Securify.PropertyStore/LICENSE.txt
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.PropertyStore/LICENSE.txt
rename to src/CurvaLauncher/Libraries/Securify.PropertyStore/LICENSE.txt
diff --git a/CurvaLauncher/Libraries/Securify.PropertyStore/README.md b/src/CurvaLauncher/Libraries/Securify.PropertyStore/README.md
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.PropertyStore/README.md
rename to src/CurvaLauncher/Libraries/Securify.PropertyStore/README.md
diff --git a/CurvaLauncher/Libraries/Securify.PropertyStore/Structures/IntegerName.cs b/src/CurvaLauncher/Libraries/Securify.PropertyStore/Structures/IntegerName.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.PropertyStore/Structures/IntegerName.cs
rename to src/CurvaLauncher/Libraries/Securify.PropertyStore/Structures/IntegerName.cs
diff --git a/CurvaLauncher/Libraries/Securify.PropertyStore/Structures/SerializedPropertyStorage.cs b/src/CurvaLauncher/Libraries/Securify.PropertyStore/Structures/SerializedPropertyStorage.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.PropertyStore/Structures/SerializedPropertyStorage.cs
rename to src/CurvaLauncher/Libraries/Securify.PropertyStore/Structures/SerializedPropertyStorage.cs
diff --git a/CurvaLauncher/Libraries/Securify.PropertyStore/Structures/SerializedPropertyValue.cs b/src/CurvaLauncher/Libraries/Securify.PropertyStore/Structures/SerializedPropertyValue.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.PropertyStore/Structures/SerializedPropertyValue.cs
rename to src/CurvaLauncher/Libraries/Securify.PropertyStore/Structures/SerializedPropertyValue.cs
diff --git a/CurvaLauncher/Libraries/Securify.PropertyStore/Structures/StringName.cs b/src/CurvaLauncher/Libraries/Securify.PropertyStore/Structures/StringName.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.PropertyStore/Structures/StringName.cs
rename to src/CurvaLauncher/Libraries/Securify.PropertyStore/Structures/StringName.cs
diff --git a/CurvaLauncher/Libraries/Securify.PropertyStore/Structures/Structure.cs b/src/CurvaLauncher/Libraries/Securify.PropertyStore/Structures/Structure.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.PropertyStore/Structures/Structure.cs
rename to src/CurvaLauncher/Libraries/Securify.PropertyStore/Structures/Structure.cs
diff --git a/CurvaLauncher/Libraries/Securify.PropertyStore/Structures/TypedPropertyValue.cs b/src/CurvaLauncher/Libraries/Securify.PropertyStore/Structures/TypedPropertyValue.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.PropertyStore/Structures/TypedPropertyValue.cs
rename to src/CurvaLauncher/Libraries/Securify.PropertyStore/Structures/TypedPropertyValue.cs
diff --git a/CurvaLauncher/Libraries/Securify.ShellLink/Const/KNOWNFOLDERID.cs b/src/CurvaLauncher/Libraries/Securify.ShellLink/Const/KNOWNFOLDERID.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.ShellLink/Const/KNOWNFOLDERID.cs
rename to src/CurvaLauncher/Libraries/Securify.ShellLink/Const/KNOWNFOLDERID.cs
diff --git a/CurvaLauncher/Libraries/Securify.ShellLink/Flags/CSIDL.cs b/src/CurvaLauncher/Libraries/Securify.ShellLink/Flags/CSIDL.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.ShellLink/Flags/CSIDL.cs
rename to src/CurvaLauncher/Libraries/Securify.ShellLink/Flags/CSIDL.cs
diff --git a/CurvaLauncher/Libraries/Securify.ShellLink/Flags/CommonNetworkRelativeLinkFlags.cs b/src/CurvaLauncher/Libraries/Securify.ShellLink/Flags/CommonNetworkRelativeLinkFlags.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.ShellLink/Flags/CommonNetworkRelativeLinkFlags.cs
rename to src/CurvaLauncher/Libraries/Securify.ShellLink/Flags/CommonNetworkRelativeLinkFlags.cs
diff --git a/CurvaLauncher/Libraries/Securify.ShellLink/Flags/DriveType.cs b/src/CurvaLauncher/Libraries/Securify.ShellLink/Flags/DriveType.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.ShellLink/Flags/DriveType.cs
rename to src/CurvaLauncher/Libraries/Securify.ShellLink/Flags/DriveType.cs
diff --git a/CurvaLauncher/Libraries/Securify.ShellLink/Flags/FileAttributesFlags.cs b/src/CurvaLauncher/Libraries/Securify.ShellLink/Flags/FileAttributesFlags.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.ShellLink/Flags/FileAttributesFlags.cs
rename to src/CurvaLauncher/Libraries/Securify.ShellLink/Flags/FileAttributesFlags.cs
diff --git a/CurvaLauncher/Libraries/Securify.ShellLink/Flags/FillAttributes.cs b/src/CurvaLauncher/Libraries/Securify.ShellLink/Flags/FillAttributes.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.ShellLink/Flags/FillAttributes.cs
rename to src/CurvaLauncher/Libraries/Securify.ShellLink/Flags/FillAttributes.cs
diff --git a/CurvaLauncher/Libraries/Securify.ShellLink/Flags/FontFamily.cs b/src/CurvaLauncher/Libraries/Securify.ShellLink/Flags/FontFamily.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.ShellLink/Flags/FontFamily.cs
rename to src/CurvaLauncher/Libraries/Securify.ShellLink/Flags/FontFamily.cs
diff --git a/CurvaLauncher/Libraries/Securify.ShellLink/Flags/FontPitch.cs b/src/CurvaLauncher/Libraries/Securify.ShellLink/Flags/FontPitch.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.ShellLink/Flags/FontPitch.cs
rename to src/CurvaLauncher/Libraries/Securify.ShellLink/Flags/FontPitch.cs
diff --git a/CurvaLauncher/Libraries/Securify.ShellLink/Flags/HotKeyFlags.cs b/src/CurvaLauncher/Libraries/Securify.ShellLink/Flags/HotKeyFlags.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.ShellLink/Flags/HotKeyFlags.cs
rename to src/CurvaLauncher/Libraries/Securify.ShellLink/Flags/HotKeyFlags.cs
diff --git a/CurvaLauncher/Libraries/Securify.ShellLink/Flags/LinkFlags.cs b/src/CurvaLauncher/Libraries/Securify.ShellLink/Flags/LinkFlags.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.ShellLink/Flags/LinkFlags.cs
rename to src/CurvaLauncher/Libraries/Securify.ShellLink/Flags/LinkFlags.cs
diff --git a/CurvaLauncher/Libraries/Securify.ShellLink/Flags/LinkInfoFlags.cs b/src/CurvaLauncher/Libraries/Securify.ShellLink/Flags/LinkInfoFlags.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.ShellLink/Flags/LinkInfoFlags.cs
rename to src/CurvaLauncher/Libraries/Securify.ShellLink/Flags/LinkInfoFlags.cs
diff --git a/CurvaLauncher/Libraries/Securify.ShellLink/Flags/NetworkProviderType.cs b/src/CurvaLauncher/Libraries/Securify.ShellLink/Flags/NetworkProviderType.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.ShellLink/Flags/NetworkProviderType.cs
rename to src/CurvaLauncher/Libraries/Securify.ShellLink/Flags/NetworkProviderType.cs
diff --git a/CurvaLauncher/Libraries/Securify.ShellLink/Flags/ShowCommand.cs b/src/CurvaLauncher/Libraries/Securify.ShellLink/Flags/ShowCommand.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.ShellLink/Flags/ShowCommand.cs
rename to src/CurvaLauncher/Libraries/Securify.ShellLink/Flags/ShowCommand.cs
diff --git a/CurvaLauncher/Libraries/Securify.ShellLink/Internal/Win32.cs b/src/CurvaLauncher/Libraries/Securify.ShellLink/Internal/Win32.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.ShellLink/Internal/Win32.cs
rename to src/CurvaLauncher/Libraries/Securify.ShellLink/Internal/Win32.cs
diff --git a/CurvaLauncher/Libraries/Securify.ShellLink/LICENSE.txt b/src/CurvaLauncher/Libraries/Securify.ShellLink/LICENSE.txt
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.ShellLink/LICENSE.txt
rename to src/CurvaLauncher/Libraries/Securify.ShellLink/LICENSE.txt
diff --git a/CurvaLauncher/Libraries/Securify.ShellLink/PropertyStore/SerializedPropertyStore.cs b/src/CurvaLauncher/Libraries/Securify.ShellLink/PropertyStore/SerializedPropertyStore.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.ShellLink/PropertyStore/SerializedPropertyStore.cs
rename to src/CurvaLauncher/Libraries/Securify.ShellLink/PropertyStore/SerializedPropertyStore.cs
diff --git a/CurvaLauncher/Libraries/Securify.ShellLink/README.md b/src/CurvaLauncher/Libraries/Securify.ShellLink/README.md
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.ShellLink/README.md
rename to src/CurvaLauncher/Libraries/Securify.ShellLink/README.md
diff --git a/CurvaLauncher/Libraries/Securify.ShellLink/Shortcut.cs b/src/CurvaLauncher/Libraries/Securify.ShellLink/Shortcut.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.ShellLink/Shortcut.cs
rename to src/CurvaLauncher/Libraries/Securify.ShellLink/Shortcut.cs
diff --git a/CurvaLauncher/Libraries/Securify.ShellLink/Structures/CommonNetworkRelativeLink.cs b/src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/CommonNetworkRelativeLink.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.ShellLink/Structures/CommonNetworkRelativeLink.cs
rename to src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/CommonNetworkRelativeLink.cs
diff --git a/CurvaLauncher/Libraries/Securify.ShellLink/Structures/ConsoleDataBlock.cs b/src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/ConsoleDataBlock.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.ShellLink/Structures/ConsoleDataBlock.cs
rename to src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/ConsoleDataBlock.cs
diff --git a/CurvaLauncher/Libraries/Securify.ShellLink/Structures/ConsoleFEDataBlock.cs b/src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/ConsoleFEDataBlock.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.ShellLink/Structures/ConsoleFEDataBlock.cs
rename to src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/ConsoleFEDataBlock.cs
diff --git a/CurvaLauncher/Libraries/Securify.ShellLink/Structures/CplLinkTargetIDList.cs b/src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/CplLinkTargetIDList.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.ShellLink/Structures/CplLinkTargetIDList.cs
rename to src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/CplLinkTargetIDList.cs
diff --git a/CurvaLauncher/Libraries/Securify.ShellLink/Structures/DarwinDataBlock.cs b/src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/DarwinDataBlock.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.ShellLink/Structures/DarwinDataBlock.cs
rename to src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/DarwinDataBlock.cs
diff --git a/CurvaLauncher/Libraries/Securify.ShellLink/Structures/EnvironmentVariableDataBlock.cs b/src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/EnvironmentVariableDataBlock.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.ShellLink/Structures/EnvironmentVariableDataBlock.cs
rename to src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/EnvironmentVariableDataBlock.cs
diff --git a/CurvaLauncher/Libraries/Securify.ShellLink/Structures/ExtraData.cs b/src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/ExtraData.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.ShellLink/Structures/ExtraData.cs
rename to src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/ExtraData.cs
diff --git a/CurvaLauncher/Libraries/Securify.ShellLink/Structures/ExtraDataBlock.cs b/src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/ExtraDataBlock.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.ShellLink/Structures/ExtraDataBlock.cs
rename to src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/ExtraDataBlock.cs
diff --git a/CurvaLauncher/Libraries/Securify.ShellLink/Structures/IDList.cs b/src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/IDList.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.ShellLink/Structures/IDList.cs
rename to src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/IDList.cs
diff --git a/CurvaLauncher/Libraries/Securify.ShellLink/Structures/IconEnvironmentDataBlock.cs b/src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/IconEnvironmentDataBlock.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.ShellLink/Structures/IconEnvironmentDataBlock.cs
rename to src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/IconEnvironmentDataBlock.cs
diff --git a/CurvaLauncher/Libraries/Securify.ShellLink/Structures/ItemID.cs b/src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/ItemID.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.ShellLink/Structures/ItemID.cs
rename to src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/ItemID.cs
diff --git a/CurvaLauncher/Libraries/Securify.ShellLink/Structures/KnownFolderDataBlock.cs b/src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/KnownFolderDataBlock.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.ShellLink/Structures/KnownFolderDataBlock.cs
rename to src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/KnownFolderDataBlock.cs
diff --git a/CurvaLauncher/Libraries/Securify.ShellLink/Structures/LinkInfo.cs b/src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/LinkInfo.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.ShellLink/Structures/LinkInfo.cs
rename to src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/LinkInfo.cs
diff --git a/CurvaLauncher/Libraries/Securify.ShellLink/Structures/LinkTargetIDList.cs b/src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/LinkTargetIDList.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.ShellLink/Structures/LinkTargetIDList.cs
rename to src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/LinkTargetIDList.cs
diff --git a/CurvaLauncher/Libraries/Securify.ShellLink/Structures/PropertyStoreDataBlock.cs b/src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/PropertyStoreDataBlock.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.ShellLink/Structures/PropertyStoreDataBlock.cs
rename to src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/PropertyStoreDataBlock.cs
diff --git a/CurvaLauncher/Libraries/Securify.ShellLink/Structures/ShellLinkHeader.cs b/src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/ShellLinkHeader.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.ShellLink/Structures/ShellLinkHeader.cs
rename to src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/ShellLinkHeader.cs
diff --git a/CurvaLauncher/Libraries/Securify.ShellLink/Structures/ShimDataBlock.cs b/src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/ShimDataBlock.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.ShellLink/Structures/ShimDataBlock.cs
rename to src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/ShimDataBlock.cs
diff --git a/CurvaLauncher/Libraries/Securify.ShellLink/Structures/SpecialFolderDataBlock.cs b/src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/SpecialFolderDataBlock.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.ShellLink/Structures/SpecialFolderDataBlock.cs
rename to src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/SpecialFolderDataBlock.cs
diff --git a/CurvaLauncher/Libraries/Securify.ShellLink/Structures/StringData.cs b/src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/StringData.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.ShellLink/Structures/StringData.cs
rename to src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/StringData.cs
diff --git a/CurvaLauncher/Libraries/Securify.ShellLink/Structures/Structure.cs b/src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/Structure.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.ShellLink/Structures/Structure.cs
rename to src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/Structure.cs
diff --git a/CurvaLauncher/Libraries/Securify.ShellLink/Structures/TerminalBlock.cs b/src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/TerminalBlock.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.ShellLink/Structures/TerminalBlock.cs
rename to src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/TerminalBlock.cs
diff --git a/CurvaLauncher/Libraries/Securify.ShellLink/Structures/TrackerDataBlock.cs b/src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/TrackerDataBlock.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.ShellLink/Structures/TrackerDataBlock.cs
rename to src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/TrackerDataBlock.cs
diff --git a/CurvaLauncher/Libraries/Securify.ShellLink/Structures/VistaAndAboveIDListDataBlock.cs b/src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/VistaAndAboveIDListDataBlock.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.ShellLink/Structures/VistaAndAboveIDListDataBlock.cs
rename to src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/VistaAndAboveIDListDataBlock.cs
diff --git a/CurvaLauncher/Libraries/Securify.ShellLink/Structures/VolumeID.cs b/src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/VolumeID.cs
similarity index 100%
rename from CurvaLauncher/Libraries/Securify.ShellLink/Structures/VolumeID.cs
rename to src/CurvaLauncher/Libraries/Securify.ShellLink/Structures/VolumeID.cs
diff --git a/CurvaLauncher/MainWindow.xaml b/src/CurvaLauncher/MainWindow.xaml
similarity index 94%
rename from CurvaLauncher/MainWindow.xaml
rename to src/CurvaLauncher/MainWindow.xaml
index 71a9629..0b14ca5 100644
--- a/CurvaLauncher/MainWindow.xaml
+++ b/src/CurvaLauncher/MainWindow.xaml
@@ -62,7 +62,7 @@
+ BorderBrush="#80777777">
@@ -176,24 +176,21 @@
-
-
+
+
-
+ BorderBrush="#80777777">
-
-
+
+
diff --git a/CurvaLauncher/MainWindow.xaml.cs b/src/CurvaLauncher/MainWindow.xaml.cs
similarity index 93%
rename from CurvaLauncher/MainWindow.xaml.cs
rename to src/CurvaLauncher/MainWindow.xaml.cs
index cf5b590..444fc38 100644
--- a/CurvaLauncher/MainWindow.xaml.cs
+++ b/src/CurvaLauncher/MainWindow.xaml.cs
@@ -1,6 +1,5 @@
using System;
using System.Windows;
-using System.Windows.Controls;
using System.Windows.Input;
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
@@ -52,8 +51,8 @@ private void UiWindow_Loaded(object sender, RoutedEventArgs e)
private void QueryBox_PreviewKeyDown(object sender, KeyEventArgs e)
{
- if (e.Key == Key.Up &&
- string.IsNullOrWhiteSpace(ViewModel.QueryText) &&
+ if (e.Key == Key.Up &&
+ string.IsNullOrWhiteSpace(ViewModel.QueryText) &&
ViewModel.LastInvokedQueryText is string lastInvokedQueryText)
{
SetQueryText(lastInvokedQueryText);
diff --git a/CurvaLauncher/Messages/SaveQueryMessage.cs b/src/CurvaLauncher/Messages/SaveQueryMessage.cs
similarity index 100%
rename from CurvaLauncher/Messages/SaveQueryMessage.cs
rename to src/CurvaLauncher/Messages/SaveQueryMessage.cs
diff --git a/CurvaLauncher/Models/AppLanguage.cs b/src/CurvaLauncher/Models/AppLanguage.cs
similarity index 100%
rename from CurvaLauncher/Models/AppLanguage.cs
rename to src/CurvaLauncher/Models/AppLanguage.cs
diff --git a/CurvaLauncher/Models/AppTheme.cs b/src/CurvaLauncher/Models/AppTheme.cs
similarity index 100%
rename from CurvaLauncher/Models/AppTheme.cs
rename to src/CurvaLauncher/Models/AppTheme.cs
diff --git a/CurvaLauncher/Models/CurvaLauncherPluginInstance.cs b/src/CurvaLauncher/Models/CurvaLauncherPluginInstance.cs
similarity index 100%
rename from CurvaLauncher/Models/CurvaLauncherPluginInstance.cs
rename to src/CurvaLauncher/Models/CurvaLauncherPluginInstance.cs
diff --git a/CurvaLauncher/Models/QueryHotkey.cs b/src/CurvaLauncher/Models/QueryHotkey.cs
similarity index 100%
rename from CurvaLauncher/Models/QueryHotkey.cs
rename to src/CurvaLauncher/Models/QueryHotkey.cs
diff --git a/CurvaLauncher/Models/QueryResultModel.cs b/src/CurvaLauncher/Models/QueryResultModel.cs
similarity index 100%
rename from CurvaLauncher/Models/QueryResultModel.cs
rename to src/CurvaLauncher/Models/QueryResultModel.cs
diff --git a/CurvaLauncher/PluginInteraction/CurvaLauncherContextImpl.cs b/src/CurvaLauncher/PluginInteraction/CurvaLauncherContextImpl.cs
similarity index 100%
rename from CurvaLauncher/PluginInteraction/CurvaLauncherContextImpl.cs
rename to src/CurvaLauncher/PluginInteraction/CurvaLauncherContextImpl.cs
diff --git a/CurvaLauncher/Services/ConfigService.cs b/src/CurvaLauncher/Services/ConfigService.cs
similarity index 100%
rename from CurvaLauncher/Services/ConfigService.cs
rename to src/CurvaLauncher/Services/ConfigService.cs
diff --git a/CurvaLauncher/Services/HotkeyService.cs b/src/CurvaLauncher/Services/HotkeyService.cs
similarity index 100%
rename from CurvaLauncher/Services/HotkeyService.cs
rename to src/CurvaLauncher/Services/HotkeyService.cs
diff --git a/CurvaLauncher/Services/I18nService.cs b/src/CurvaLauncher/Services/I18nService.cs
similarity index 100%
rename from CurvaLauncher/Services/I18nService.cs
rename to src/CurvaLauncher/Services/I18nService.cs
diff --git a/CurvaLauncher/Services/LibraryService.cs b/src/CurvaLauncher/Services/LibraryService.cs
similarity index 100%
rename from CurvaLauncher/Services/LibraryService.cs
rename to src/CurvaLauncher/Services/LibraryService.cs
diff --git a/CurvaLauncher/Services/PageService.cs b/src/CurvaLauncher/Services/PageService.cs
similarity index 100%
rename from CurvaLauncher/Services/PageService.cs
rename to src/CurvaLauncher/Services/PageService.cs
diff --git a/CurvaLauncher/Services/PathService.cs b/src/CurvaLauncher/Services/PathService.cs
similarity index 100%
rename from CurvaLauncher/Services/PathService.cs
rename to src/CurvaLauncher/Services/PathService.cs
diff --git a/CurvaLauncher/Services/PluginService.cs b/src/CurvaLauncher/Services/PluginService.cs
similarity index 100%
rename from CurvaLauncher/Services/PluginService.cs
rename to src/CurvaLauncher/Services/PluginService.cs
diff --git a/CurvaLauncher/Services/ThemeService.cs b/src/CurvaLauncher/Services/ThemeService.cs
similarity index 100%
rename from CurvaLauncher/Services/ThemeService.cs
rename to src/CurvaLauncher/Services/ThemeService.cs
diff --git a/CurvaLauncher/Themes/Base.xaml b/src/CurvaLauncher/Themes/Base.xaml
similarity index 100%
rename from CurvaLauncher/Themes/Base.xaml
rename to src/CurvaLauncher/Themes/Base.xaml
diff --git a/CurvaLauncher/Themes/Generic.xaml b/src/CurvaLauncher/Themes/Generic.xaml
similarity index 100%
rename from CurvaLauncher/Themes/Generic.xaml
rename to src/CurvaLauncher/Themes/Generic.xaml
diff --git a/CurvaLauncher/Utilities/ClipboardUtils.cs b/src/CurvaLauncher/Utilities/ClipboardUtils.cs
similarity index 100%
rename from CurvaLauncher/Utilities/ClipboardUtils.cs
rename to src/CurvaLauncher/Utilities/ClipboardUtils.cs
diff --git a/CurvaLauncher/Utilities/EnumUtils.cs b/src/CurvaLauncher/Utilities/EnumUtils.cs
similarity index 100%
rename from CurvaLauncher/Utilities/EnumUtils.cs
rename to src/CurvaLauncher/Utilities/EnumUtils.cs
diff --git a/CurvaLauncher/Utilities/GithubUtils.cs b/src/CurvaLauncher/Utilities/GithubUtils.cs
similarity index 83%
rename from CurvaLauncher/Utilities/GithubUtils.cs
rename to src/CurvaLauncher/Utilities/GithubUtils.cs
index eee687f..51b0217 100644
--- a/CurvaLauncher/Utilities/GithubUtils.cs
+++ b/src/CurvaLauncher/Utilities/GithubUtils.cs
@@ -17,7 +17,6 @@ static class GithubUtils
{
Headers =
{
- { "Host", "api.github.com" },
{ "User-Agent", $"CurvaLauncher/{App.Version}" }
}
};
@@ -28,17 +27,21 @@ static class GithubUtils
if (response.StatusCode != System.Net.HttpStatusCode.OK)
throw new HttpRequestException();
- var release = await response.Content.ReadFromJsonAsync();
+ var release = await response.Content.ReadFromJsonAsync(cancellationToken).ConfigureAwait(false);
if (release == null)
return null;
var tag = release.TagName;
var versionStr = tag.TrimStart('v');
+ if (versionStr.IndexOf('-') is int suffix && suffix != -1)
+ {
+ versionStr = versionStr[0..suffix];
+ }
if (!Version.TryParse(versionStr, out var version))
return null;
- return (version, release.AssetsUrl.ToString());
+ return (version, release.HtmlUrl.ToString());
}
}
diff --git a/CurvaLauncher/Utilities/HotkeyUtils.cs b/src/CurvaLauncher/Utilities/HotkeyUtils.cs
similarity index 100%
rename from CurvaLauncher/Utilities/HotkeyUtils.cs
rename to src/CurvaLauncher/Utilities/HotkeyUtils.cs
diff --git a/CurvaLauncher/Utilities/JsonUtils.cs b/src/CurvaLauncher/Utilities/JsonUtils.cs
similarity index 100%
rename from CurvaLauncher/Utilities/JsonUtils.cs
rename to src/CurvaLauncher/Utilities/JsonUtils.cs
diff --git a/src/CurvaLauncher/Utilities/Models/GithubRelease.cs b/src/CurvaLauncher/Utilities/Models/GithubRelease.cs
new file mode 100644
index 0000000..6073cb1
--- /dev/null
+++ b/src/CurvaLauncher/Utilities/Models/GithubRelease.cs
@@ -0,0 +1,75 @@
+using System;
+using System.Text.Json.Serialization;
+
+namespace CurvaLauncher.Utilities.Models;
+
+public record GithubRelease(
+ [property: JsonPropertyName("url")] Uri Url,
+ [property: JsonPropertyName("assets_url")] Uri AssetsUrl,
+ [property: JsonPropertyName("upload_url")] string UploadUrl,
+ [property: JsonPropertyName("html_url")] Uri HtmlUrl,
+ [property: JsonPropertyName("id")] long Id,
+ [property: JsonPropertyName("author")] Author Author,
+ [property: JsonPropertyName("node_id")] string NodeId,
+ [property: JsonPropertyName("tag_name")] string TagName,
+ [property: JsonPropertyName("target_commitish")] string TargetCommitish,
+ [property: JsonPropertyName("name")] string Name,
+ [property: JsonPropertyName("draft")] bool Draft,
+ [property: JsonPropertyName("prerelease")] bool Prerelease,
+ [property: JsonPropertyName("created_at")] DateTimeOffset CreatedAt,
+ [property: JsonPropertyName("published_at")] DateTimeOffset PublishedAt,
+ [property: JsonPropertyName("assets")] Asset[] Assets,
+ [property: JsonPropertyName("tarball_url")] Uri TarballUrl,
+ [property: JsonPropertyName("zipball_url")] Uri ZipballUrl,
+ [property: JsonPropertyName("body")] string Body,
+ [property: JsonPropertyName("reactions")] Reactions Reactions
+ );
+
+public record Asset(
+ [property: JsonPropertyName("url")] Uri Url,
+ [property: JsonPropertyName("id")] long Id,
+ [property: JsonPropertyName("node_id")] string NodeId,
+ [property: JsonPropertyName("name")] string Name,
+ [property: JsonPropertyName("label")] object Label,
+ [property: JsonPropertyName("uploader")] Author Uploader,
+ [property: JsonPropertyName("content_type")] string ContentType,
+ [property: JsonPropertyName("state")] string State,
+ [property: JsonPropertyName("size")] long Size,
+ [property: JsonPropertyName("download_count")] long DownloadCount,
+ [property: JsonPropertyName("created_at")] DateTimeOffset CreatedAt,
+ [property: JsonPropertyName("updated_at")] DateTimeOffset UpdatedAt,
+ [property: JsonPropertyName("browser_download_url")] Uri BrowserDownloadUrl
+ );
+
+public record Author(
+ [property: JsonPropertyName("login")] string Login,
+ [property: JsonPropertyName("id")] long Id,
+ [property: JsonPropertyName("node_id")] string NodeId,
+ [property: JsonPropertyName("avatar_url")] Uri AvatarUrl,
+ [property: JsonPropertyName("gravatar_id")] string GravatarId,
+ [property: JsonPropertyName("url")] Uri Url,
+ [property: JsonPropertyName("html_url")] Uri HtmlUrl,
+ [property: JsonPropertyName("followers_url")] Uri FollowersUrl,
+ [property: JsonPropertyName("following_url")] Uri FollowingUrl,
+ [property: JsonPropertyName("gists_url")] string GistsUrl,
+ [property: JsonPropertyName("starred_url")] string StarredUrl,
+ [property: JsonPropertyName("subscriptions_url")] Uri SubscriptionsUrl,
+ [property: JsonPropertyName("organizations_url")] Uri OrganizationsUrl,
+ [property: JsonPropertyName("repos_url")] Uri ReposUrl,
+ [property: JsonPropertyName("events_url")] Uri EventsUrl,
+ [property: JsonPropertyName("received_events_url")] Uri ReceivedEventsUrl,
+ [property: JsonPropertyName("type")] string Type,
+ [property: JsonPropertyName("site_admin")] bool SiteAdmin);
+
+public record Reactions(
+ [property: JsonPropertyName("url")] Uri Url,
+ [property: JsonPropertyName("total_count")] long TotalCount,
+ [property: JsonPropertyName("+1")] long The1,
+ [property: JsonPropertyName("-1")] long Reactions1,
+ [property: JsonPropertyName("laugh")] long Laugh,
+ [property: JsonPropertyName("hooray")] long Hooray,
+ [property: JsonPropertyName("confused")] long Confused,
+ [property: JsonPropertyName("heart")] long Heart,
+ [property: JsonPropertyName("rocket")] long Rocket,
+ [property: JsonPropertyName("eyes")] long Eyes
+ );
diff --git a/CurvaLauncher/Utilities/NativeMethods.cs b/src/CurvaLauncher/Utilities/NativeMethods.cs
similarity index 100%
rename from CurvaLauncher/Utilities/NativeMethods.cs
rename to src/CurvaLauncher/Utilities/NativeMethods.cs
diff --git a/CurvaLauncher/Utilities/Resources/AssemblyResourceDictionary.cs b/src/CurvaLauncher/Utilities/Resources/AssemblyResourceDictionary.cs
similarity index 100%
rename from CurvaLauncher/Utilities/Resources/AssemblyResourceDictionary.cs
rename to src/CurvaLauncher/Utilities/Resources/AssemblyResourceDictionary.cs
diff --git a/CurvaLauncher/Utilities/Resources/AssemblyResourceKey.cs b/src/CurvaLauncher/Utilities/Resources/AssemblyResourceKey.cs
similarity index 100%
rename from CurvaLauncher/Utilities/Resources/AssemblyResourceKey.cs
rename to src/CurvaLauncher/Utilities/Resources/AssemblyResourceKey.cs
diff --git a/CurvaLauncher/Utilities/ScrollViewerUtils.cs b/src/CurvaLauncher/Utilities/ScrollViewerUtils.cs
similarity index 100%
rename from CurvaLauncher/Utilities/ScrollViewerUtils.cs
rename to src/CurvaLauncher/Utilities/ScrollViewerUtils.cs
diff --git a/CurvaLauncher/Utilities/ShellUtils.cs b/src/CurvaLauncher/Utilities/ShellUtils.cs
similarity index 100%
rename from CurvaLauncher/Utilities/ShellUtils.cs
rename to src/CurvaLauncher/Utilities/ShellUtils.cs
diff --git a/CurvaLauncher/Utilities/SortedCollection.cs b/src/CurvaLauncher/Utilities/SortedCollection.cs
similarity index 100%
rename from CurvaLauncher/Utilities/SortedCollection.cs
rename to src/CurvaLauncher/Utilities/SortedCollection.cs
diff --git a/CurvaLauncher/Utilities/SortingUtils.cs b/src/CurvaLauncher/Utilities/SortingUtils.cs
similarity index 100%
rename from CurvaLauncher/Utilities/SortingUtils.cs
rename to src/CurvaLauncher/Utilities/SortingUtils.cs
diff --git a/CurvaLauncher/ViewModels/MainViewModel.cs b/src/CurvaLauncher/ViewModels/MainViewModel.cs
similarity index 100%
rename from CurvaLauncher/ViewModels/MainViewModel.cs
rename to src/CurvaLauncher/ViewModels/MainViewModel.cs
diff --git a/CurvaLauncher/ViewModels/SettingsAboutViewModel.cs b/src/CurvaLauncher/ViewModels/SettingsAboutViewModel.cs
similarity index 100%
rename from CurvaLauncher/ViewModels/SettingsAboutViewModel.cs
rename to src/CurvaLauncher/ViewModels/SettingsAboutViewModel.cs
diff --git a/CurvaLauncher/ViewModels/SettingsGeneralViewModel.cs b/src/CurvaLauncher/ViewModels/SettingsGeneralViewModel.cs
similarity index 100%
rename from CurvaLauncher/ViewModels/SettingsGeneralViewModel.cs
rename to src/CurvaLauncher/ViewModels/SettingsGeneralViewModel.cs
diff --git a/CurvaLauncher/ViewModels/SettingsHotkeyViewModel.cs b/src/CurvaLauncher/ViewModels/SettingsHotkeyViewModel.cs
similarity index 100%
rename from CurvaLauncher/ViewModels/SettingsHotkeyViewModel.cs
rename to src/CurvaLauncher/ViewModels/SettingsHotkeyViewModel.cs
diff --git a/CurvaLauncher/ViewModels/SettingsPluginViewModel.cs b/src/CurvaLauncher/ViewModels/SettingsPluginViewModel.cs
similarity index 100%
rename from CurvaLauncher/ViewModels/SettingsPluginViewModel.cs
rename to src/CurvaLauncher/ViewModels/SettingsPluginViewModel.cs
diff --git a/CurvaLauncher/ViewModels/SettingsViewModel.cs b/src/CurvaLauncher/ViewModels/SettingsViewModel.cs
similarity index 100%
rename from CurvaLauncher/ViewModels/SettingsViewModel.cs
rename to src/CurvaLauncher/ViewModels/SettingsViewModel.cs
diff --git a/CurvaLauncher/Views/Components/PluginFlagsOption.xaml b/src/CurvaLauncher/Views/Components/PluginFlagsOption.xaml
similarity index 100%
rename from CurvaLauncher/Views/Components/PluginFlagsOption.xaml
rename to src/CurvaLauncher/Views/Components/PluginFlagsOption.xaml
diff --git a/CurvaLauncher/Views/Components/PluginFlagsOption.xaml.cs b/src/CurvaLauncher/Views/Components/PluginFlagsOption.xaml.cs
similarity index 100%
rename from CurvaLauncher/Views/Components/PluginFlagsOption.xaml.cs
rename to src/CurvaLauncher/Views/Components/PluginFlagsOption.xaml.cs
diff --git a/CurvaLauncher/Views/Components/PluginOption.cs b/src/CurvaLauncher/Views/Components/PluginOption.cs
similarity index 100%
rename from CurvaLauncher/Views/Components/PluginOption.cs
rename to src/CurvaLauncher/Views/Components/PluginOption.cs
diff --git a/CurvaLauncher/Views/Components/PluginOptionsControl.xaml b/src/CurvaLauncher/Views/Components/PluginOptionsControl.xaml
similarity index 100%
rename from CurvaLauncher/Views/Components/PluginOptionsControl.xaml
rename to src/CurvaLauncher/Views/Components/PluginOptionsControl.xaml
diff --git a/CurvaLauncher/Views/Components/PluginOptionsControl.xaml.cs b/src/CurvaLauncher/Views/Components/PluginOptionsControl.xaml.cs
similarity index 100%
rename from CurvaLauncher/Views/Components/PluginOptionsControl.xaml.cs
rename to src/CurvaLauncher/Views/Components/PluginOptionsControl.xaml.cs
diff --git a/CurvaLauncher/Views/Components/PluginSelectOption.xaml b/src/CurvaLauncher/Views/Components/PluginSelectOption.xaml
similarity index 100%
rename from CurvaLauncher/Views/Components/PluginSelectOption.xaml
rename to src/CurvaLauncher/Views/Components/PluginSelectOption.xaml
diff --git a/CurvaLauncher/Views/Components/PluginSelectOption.xaml.cs b/src/CurvaLauncher/Views/Components/PluginSelectOption.xaml.cs
similarity index 100%
rename from CurvaLauncher/Views/Components/PluginSelectOption.xaml.cs
rename to src/CurvaLauncher/Views/Components/PluginSelectOption.xaml.cs
diff --git a/CurvaLauncher/Views/Components/PluginSwitchOption.xaml b/src/CurvaLauncher/Views/Components/PluginSwitchOption.xaml
similarity index 100%
rename from CurvaLauncher/Views/Components/PluginSwitchOption.xaml
rename to src/CurvaLauncher/Views/Components/PluginSwitchOption.xaml
diff --git a/CurvaLauncher/Views/Components/PluginSwitchOption.xaml.cs b/src/CurvaLauncher/Views/Components/PluginSwitchOption.xaml.cs
similarity index 100%
rename from CurvaLauncher/Views/Components/PluginSwitchOption.xaml.cs
rename to src/CurvaLauncher/Views/Components/PluginSwitchOption.xaml.cs
diff --git a/CurvaLauncher/Views/Components/PluginTextOption.xaml b/src/CurvaLauncher/Views/Components/PluginTextOption.xaml
similarity index 100%
rename from CurvaLauncher/Views/Components/PluginTextOption.xaml
rename to src/CurvaLauncher/Views/Components/PluginTextOption.xaml
diff --git a/CurvaLauncher/Views/Components/PluginTextOption.xaml.cs b/src/CurvaLauncher/Views/Components/PluginTextOption.xaml.cs
similarity index 100%
rename from CurvaLauncher/Views/Components/PluginTextOption.xaml.cs
rename to src/CurvaLauncher/Views/Components/PluginTextOption.xaml.cs
diff --git a/CurvaLauncher/Views/Pages/SettingsAboutPage.xaml b/src/CurvaLauncher/Views/Pages/SettingsAboutPage.xaml
similarity index 100%
rename from CurvaLauncher/Views/Pages/SettingsAboutPage.xaml
rename to src/CurvaLauncher/Views/Pages/SettingsAboutPage.xaml
diff --git a/CurvaLauncher/Views/Pages/SettingsAboutPage.xaml.cs b/src/CurvaLauncher/Views/Pages/SettingsAboutPage.xaml.cs
similarity index 100%
rename from CurvaLauncher/Views/Pages/SettingsAboutPage.xaml.cs
rename to src/CurvaLauncher/Views/Pages/SettingsAboutPage.xaml.cs
diff --git a/CurvaLauncher/Views/Pages/SettingsGeneralPage.xaml b/src/CurvaLauncher/Views/Pages/SettingsGeneralPage.xaml
similarity index 100%
rename from CurvaLauncher/Views/Pages/SettingsGeneralPage.xaml
rename to src/CurvaLauncher/Views/Pages/SettingsGeneralPage.xaml
diff --git a/CurvaLauncher/Views/Pages/SettingsGeneralPage.xaml.cs b/src/CurvaLauncher/Views/Pages/SettingsGeneralPage.xaml.cs
similarity index 100%
rename from CurvaLauncher/Views/Pages/SettingsGeneralPage.xaml.cs
rename to src/CurvaLauncher/Views/Pages/SettingsGeneralPage.xaml.cs
diff --git a/CurvaLauncher/Views/Pages/SettingsHotkeyPage.xaml b/src/CurvaLauncher/Views/Pages/SettingsHotkeyPage.xaml
similarity index 100%
rename from CurvaLauncher/Views/Pages/SettingsHotkeyPage.xaml
rename to src/CurvaLauncher/Views/Pages/SettingsHotkeyPage.xaml
diff --git a/CurvaLauncher/Views/Pages/SettingsHotkeyPage.xaml.cs b/src/CurvaLauncher/Views/Pages/SettingsHotkeyPage.xaml.cs
similarity index 100%
rename from CurvaLauncher/Views/Pages/SettingsHotkeyPage.xaml.cs
rename to src/CurvaLauncher/Views/Pages/SettingsHotkeyPage.xaml.cs
diff --git a/CurvaLauncher/Views/Pages/SettingsPluginPage.xaml b/src/CurvaLauncher/Views/Pages/SettingsPluginPage.xaml
similarity index 100%
rename from CurvaLauncher/Views/Pages/SettingsPluginPage.xaml
rename to src/CurvaLauncher/Views/Pages/SettingsPluginPage.xaml
diff --git a/CurvaLauncher/Views/Pages/SettingsPluginPage.xaml.cs b/src/CurvaLauncher/Views/Pages/SettingsPluginPage.xaml.cs
similarity index 100%
rename from CurvaLauncher/Views/Pages/SettingsPluginPage.xaml.cs
rename to src/CurvaLauncher/Views/Pages/SettingsPluginPage.xaml.cs
diff --git a/CurvaLauncher/Views/SettingsWindow.xaml b/src/CurvaLauncher/Views/SettingsWindow.xaml
similarity index 100%
rename from CurvaLauncher/Views/SettingsWindow.xaml
rename to src/CurvaLauncher/Views/SettingsWindow.xaml
diff --git a/CurvaLauncher/Views/SettingsWindow.xaml.cs b/src/CurvaLauncher/Views/SettingsWindow.xaml.cs
similarity index 100%
rename from CurvaLauncher/Views/SettingsWindow.xaml.cs
rename to src/CurvaLauncher/Views/SettingsWindow.xaml.cs
diff --git a/CurvaLauncher/app.manifest b/src/CurvaLauncher/app.manifest
similarity index 100%
rename from CurvaLauncher/app.manifest
rename to src/CurvaLauncher/app.manifest
diff --git a/TestConsole/Program.cs b/src/TestConsole/Program.cs
similarity index 100%
rename from TestConsole/Program.cs
rename to src/TestConsole/Program.cs
diff --git a/TestConsole/TestConsole.csproj b/src/TestConsole/TestConsole.csproj
similarity index 88%
rename from TestConsole/TestConsole.csproj
rename to src/TestConsole/TestConsole.csproj
index 99c8b85..e5d22d8 100644
--- a/TestConsole/TestConsole.csproj
+++ b/src/TestConsole/TestConsole.csproj
@@ -6,6 +6,7 @@
enable
enable
true
+ true