├── docs ├── assets │ ├── css │ │ ├── styles.css │ │ ├── Highlight-Clean.css │ │ ├── Highlight-Blue.css │ │ ├── button.css │ │ └── Header-Blue.css │ └── img │ │ ├── 1.png │ │ ├── 2.png │ │ ├── 3.png │ │ ├── 4.png │ │ ├── 5.png │ │ ├── 6.png │ │ ├── 7.png │ │ ├── 8.png │ │ ├── search1.png │ │ └── spotlight1.png ├── customisation.html ├── index.html └── help.html ├── .gitattributes ├── CleanUI ├── CleanUI │ ├── default.config │ ├── Config │ │ ├── style.json │ │ ├── settings.json │ │ └── ms-settings.txt │ ├── App.xaml │ ├── App.xaml.cs │ ├── Properties │ │ ├── Settings.settings │ │ ├── Settings.Designer.cs │ │ ├── AssemblyInfo.cs │ │ ├── Resources.Designer.cs │ │ └── Resources.resx │ ├── Settings.cs │ ├── MainWindowViewModel.cs │ ├── Constants.cs │ ├── packages.config │ ├── App.config │ ├── MainWindow.xaml │ ├── CleanUI.csproj │ └── MainWindow.xaml.cs ├── CleanUI.sln └── SpotlightSetup │ └── SpotlightSetup.vdproj ├── STABLE-RELEASES ├── 0.0.1 │ └── SpotlightSetup.msi └── 0.0.2 │ └── SpotlightSetup.msi ├── LICENSE ├── .github └── workflows │ ├── tag_workflow.yml │ └── master_pr_workflow.yml ├── README.md └── .gitignore /docs/assets/css/styles.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /docs/assets/img/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TorinFelton/SpotlightX/HEAD/docs/assets/img/1.png -------------------------------------------------------------------------------- /docs/assets/img/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TorinFelton/SpotlightX/HEAD/docs/assets/img/2.png -------------------------------------------------------------------------------- /docs/assets/img/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TorinFelton/SpotlightX/HEAD/docs/assets/img/3.png -------------------------------------------------------------------------------- /docs/assets/img/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TorinFelton/SpotlightX/HEAD/docs/assets/img/4.png -------------------------------------------------------------------------------- /docs/assets/img/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TorinFelton/SpotlightX/HEAD/docs/assets/img/5.png -------------------------------------------------------------------------------- /docs/assets/img/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TorinFelton/SpotlightX/HEAD/docs/assets/img/6.png -------------------------------------------------------------------------------- /docs/assets/img/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TorinFelton/SpotlightX/HEAD/docs/assets/img/7.png -------------------------------------------------------------------------------- /docs/assets/img/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TorinFelton/SpotlightX/HEAD/docs/assets/img/8.png -------------------------------------------------------------------------------- /CleanUI/CleanUI/default.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /docs/assets/img/search1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TorinFelton/SpotlightX/HEAD/docs/assets/img/search1.png -------------------------------------------------------------------------------- /docs/assets/img/spotlight1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TorinFelton/SpotlightX/HEAD/docs/assets/img/spotlight1.png -------------------------------------------------------------------------------- /STABLE-RELEASES/0.0.1/SpotlightSetup.msi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TorinFelton/SpotlightX/HEAD/STABLE-RELEASES/0.0.1/SpotlightSetup.msi -------------------------------------------------------------------------------- /STABLE-RELEASES/0.0.2/SpotlightSetup.msi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TorinFelton/SpotlightX/HEAD/STABLE-RELEASES/0.0.2/SpotlightSetup.msi -------------------------------------------------------------------------------- /CleanUI/CleanUI/Config/style.json: -------------------------------------------------------------------------------- 1 | { 2 | "TextCol": "White", 3 | "Opacity": "1.0", 4 | "G1Col": "#7BE9F6", 5 | "G1Offset": "0.0", 6 | "G2Col": "#000eff", 7 | "G2Offset": "1.3" 8 | } -------------------------------------------------------------------------------- /CleanUI/CleanUI/App.xaml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /CleanUI/CleanUI/App.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Configuration; 4 | using System.Data; 5 | using System.Linq; 6 | using System.Threading.Tasks; 7 | using System.Windows; 8 | 9 | namespace CleanUI 10 | { 11 | /// 12 | /// Interaction logic for App.xaml 13 | /// 14 | public partial class App : Application 15 | { 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /CleanUI/CleanUI/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | C:\Users\TorinPC\source\repos\WinBar\WinBar\CleanUI\CleanUI\config\ 7 | 8 | 9 | -------------------------------------------------------------------------------- /CleanUI/CleanUI/Settings.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace CleanUI 8 | { 9 | class Settings 10 | { 11 | public List Commands { get; set; } 12 | public List AppFolders { get; set; } 13 | } 14 | 15 | class Command 16 | { 17 | public string Name { get; set; } 18 | public string Icon { get; set; } 19 | public List> Actions { get; set; } 20 | } 21 | 22 | 23 | } 24 | -------------------------------------------------------------------------------- /CleanUI/CleanUI/MainWindowViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace CleanUI 8 | { 9 | class MainWindowViewModel 10 | { 11 | public string TextCol { get; set; } 12 | public string Opacity { get; set; } 13 | public string G1Col { get; set; } 14 | public string G2Col { get; set; } 15 | public string G1Offset { get; set; } 16 | public string G2Offset { get; set; } 17 | 18 | public MainWindowViewModel() 19 | { 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /CleanUI/CleanUI/Constants.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO; 3 | using System.Reflection; 4 | 5 | namespace CleanUI 6 | { 7 | static class Constants 8 | { 9 | public static readonly string UserConfigPath = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) + @"\AppData\Roaming\Microsoft\Windows\Start Menu\SpotlightXConfig\config\"; 10 | 11 | public static string DefaultConfigPath 12 | { 13 | get 14 | { 15 | string startupPath = Assembly.GetExecutingAssembly().Location; 16 | string currentDirectory = Path.GetDirectoryName(startupPath); 17 | 18 | return Path.Combine(currentDirectory, "Config"); 19 | } 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Torin Felton 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /CleanUI/CleanUI/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /docs/assets/css/Highlight-Clean.css: -------------------------------------------------------------------------------- 1 | .highlight-clean { 2 | color:#313437; 3 | background-color:#fff; 4 | padding:50px 0; 5 | } 6 | 7 | .highlight-clean p { 8 | color:#7d8285; 9 | } 10 | 11 | .highlight-clean h2 { 12 | font-weight:bold; 13 | margin-bottom:25px; 14 | line-height:1.5; 15 | padding-top:0; 16 | margin-top:0; 17 | color:inherit; 18 | } 19 | 20 | .highlight-clean .intro { 21 | font-size:16px; 22 | max-width:500px; 23 | margin:0 auto 25px; 24 | } 25 | 26 | .highlight-clean .buttons { 27 | text-align:center; 28 | } 29 | 30 | .highlight-clean .buttons .btn { 31 | padding:16px 32px; 32 | margin:6px; 33 | border:none; 34 | background:none; 35 | box-shadow:none; 36 | text-shadow:none; 37 | opacity:0.9; 38 | text-transform:uppercase; 39 | font-weight:bold; 40 | font-size:13px; 41 | letter-spacing:0.4px; 42 | line-height:1; 43 | outline:none; 44 | background-color:#ddd; 45 | } 46 | 47 | .highlight-clean .buttons .btn:hover { 48 | opacity:1; 49 | } 50 | 51 | .highlight-clean .buttons .btn:active { 52 | transform:translateY(1px); 53 | } 54 | 55 | .highlight-clean .buttons .btn-primary { 56 | background-color:#055ada; 57 | color:#fff; 58 | } 59 | 60 | -------------------------------------------------------------------------------- /docs/assets/css/Highlight-Blue.css: -------------------------------------------------------------------------------- 1 | .highlight-blue { 2 | color:#fff; 3 | background-color:#1e6add; 4 | padding:50px 0; 5 | } 6 | 7 | .highlight-blue p { 8 | color:#c4d5ef; 9 | line-height:1.5; 10 | } 11 | 12 | .highlight-blue h2 { 13 | font-weight:normal; 14 | margin-bottom:25px; 15 | line-height:1.5; 16 | padding-top:0; 17 | margin-top:0; 18 | color:inherit; 19 | } 20 | 21 | .highlight-blue .intro { 22 | font-size:16px; 23 | max-width:500px; 24 | margin:0 auto 25px; 25 | } 26 | 27 | .highlight-blue .buttons { 28 | text-align:center; 29 | } 30 | 31 | .highlight-blue .buttons .btn { 32 | padding:16px 32px; 33 | margin:6px; 34 | border:none; 35 | background:none; 36 | box-shadow:none; 37 | text-shadow:none; 38 | opacity:0.9; 39 | text-transform:uppercase; 40 | font-weight:bold; 41 | font-size:13px; 42 | letter-spacing:0.4px; 43 | line-height:1; 44 | } 45 | 46 | .highlight-blue .buttons .btn:hover { 47 | opacity:1; 48 | } 49 | 50 | .highlight-blue .buttons .btn:active { 51 | transform:translateY(1px); 52 | } 53 | 54 | .highlight-blue .buttons .btn-primary, .highlight-blue .buttons .btn-primary:active { 55 | border:2px solid rgba(255,255,255,0.7); 56 | border-radius:6px; 57 | color:#ebeff1; 58 | box-shadow:none; 59 | text-shadow:none; 60 | padding:14px 24px; 61 | background:transparent; 62 | transition:background-color 0.25s; 63 | } 64 | 65 | -------------------------------------------------------------------------------- /CleanUI/CleanUI.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 15 4 | VisualStudioVersion = 15.0.27703.2026 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CleanUI", "CleanUI\CleanUI.csproj", "{95B8F9EE-B888-4223-8840-F5C7D176BDA2}" 7 | EndProject 8 | Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "SpotlightSetup", "SpotlightSetup\SpotlightSetup.vdproj", "{8DA35EEB-0ED8-4BA4-AEE3-EFB9392F5E45}" 9 | EndProject 10 | Global 11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 12 | Debug|Any CPU = Debug|Any CPU 13 | Release|Any CPU = Release|Any CPU 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {95B8F9EE-B888-4223-8840-F5C7D176BDA2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 17 | {95B8F9EE-B888-4223-8840-F5C7D176BDA2}.Debug|Any CPU.Build.0 = Debug|Any CPU 18 | {95B8F9EE-B888-4223-8840-F5C7D176BDA2}.Release|Any CPU.ActiveCfg = Release|Any CPU 19 | {95B8F9EE-B888-4223-8840-F5C7D176BDA2}.Release|Any CPU.Build.0 = Release|Any CPU 20 | {8DA35EEB-0ED8-4BA4-AEE3-EFB9392F5E45}.Debug|Any CPU.ActiveCfg = Debug 21 | {8DA35EEB-0ED8-4BA4-AEE3-EFB9392F5E45}.Release|Any CPU.ActiveCfg = Release 22 | {8DA35EEB-0ED8-4BA4-AEE3-EFB9392F5E45}.Release|Any CPU.Build.0 = Release 23 | EndGlobalSection 24 | GlobalSection(SolutionProperties) = preSolution 25 | HideSolutionNode = FALSE 26 | EndGlobalSection 27 | GlobalSection(ExtensibilityGlobals) = postSolution 28 | SolutionGuid = {532DD14E-790D-4800-883E-2D9E6954D708} 29 | EndGlobalSection 30 | EndGlobal 31 | -------------------------------------------------------------------------------- /CleanUI/CleanUI/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace CleanUI.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.7.0.0")] 16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 17 | 18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 19 | 20 | public static Settings Default { 21 | get { 22 | return defaultInstance; 23 | } 24 | } 25 | 26 | [global::System.Configuration.ApplicationScopedSettingAttribute()] 27 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 28 | [global::System.Configuration.DefaultSettingValueAttribute("C:\\Users\\TorinPC\\source\\repos\\WinBar\\WinBar\\CleanUI\\CleanUI\\config\\")] 29 | public string SettingsPath { 30 | get { 31 | return ((string)(this["SettingsPath"])); 32 | } 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /CleanUI/CleanUI/Config/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Commands": [ 3 | { 4 | "Name": "launch", 5 | "Icon": "Rocket", 6 | "Actions": null 7 | }, 8 | { 9 | "Name": "volume", 10 | "Icon": "VolumeMedium", 11 | "Actions": null 12 | }, 13 | { 14 | "Name": "search", 15 | "Icon": "SearchWeb", 16 | "Actions": [ 17 | { 18 | "SEARCH": "_allargs_" 19 | } 20 | ] 21 | }, 22 | { 23 | "Name": "exit", 24 | "Icon": "ExitRun", 25 | "Actions": [ 26 | { 27 | "EXIT": "EXIT" 28 | } 29 | ] 30 | }, 31 | { 32 | "Name": "settings", 33 | "Icon": "Cog", 34 | "Actions": [ 35 | { 36 | "PROCESS": "ms-settings:_arg2_" 37 | } 38 | ] 39 | }, 40 | { 41 | "Name": "addpath", 42 | "Icon": "Cogs", 43 | "Actions": [ 44 | { 45 | "ADDPATH": "_arg2_" 46 | } 47 | ] 48 | }, 49 | { 50 | "Name": "removepath", 51 | "Icon": "Cogs", 52 | "Actions": [ 53 | { 54 | "REMOVEPATH": "_arg2_" 55 | } 56 | ] 57 | }, 58 | { 59 | "Name": "background", 60 | "Icon": "Cogs", 61 | "Actions": [ 62 | { 63 | "BACKGROUND": "_arg2_ _arg3_" 64 | } 65 | ] 66 | }, 67 | { 68 | "Name": "opacity", 69 | "Icon": "Cogs", 70 | "Actions": [ 71 | { 72 | "OPACITY": "_arg2_" 73 | } 74 | ] 75 | }, 76 | { 77 | "Name": "textcol", 78 | "Icon": "Cogs", 79 | "Actions": [ 80 | { 81 | "TEXTCOL": "_arg2_" 82 | } 83 | ] 84 | }, 85 | { 86 | "Name": "reload", 87 | "Icon": "Reload", 88 | "Actions": [ 89 | { 90 | "RELOAD": "" 91 | } 92 | ] 93 | } 94 | ], 95 | "AppFolders": [ 96 | ] 97 | } -------------------------------------------------------------------------------- /CleanUI/CleanUI/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |
6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | C:\Users\TorinPC\source\repos\WinBar\WinBar\CleanUI\CleanUI\config\ 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /.github/workflows/tag_workflow.yml: -------------------------------------------------------------------------------- 1 | name: Build & Upload Release on Tag 2 | 3 | on: 4 | push: 5 | branches: ["master"] 6 | 7 | 8 | 9 | jobs: 10 | build: 11 | strategy: 12 | matrix: 13 | configuration: [Release] 14 | 15 | runs-on: windows-latest # For a list of available runner types, refer to 16 | # https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on 17 | 18 | env: 19 | Solution_Name: CleanUI/CleanUI.csproj # Replace with your solution name, i.e. MyWpfApp.sln. 20 | #Test_Project_Path: your-test-project-path # Replace with the path to your test project, i.e. MyWpfApp.Tests\MyWpfApp.Tests.csproj. 21 | #Wap_Project_Directory: your-wap-project-directory-name # Replace with the Wap project directory relative to the solution, i.e. MyWpfApp.Package. 22 | #Wap_Project_Path: your-wap-project-path # Replace with the path to your Wap project, i.e. MyWpf.App.Package\MyWpfApp.Package.wapproj. 23 | 24 | steps: 25 | - name: Checkout 26 | uses: actions/checkout@v3 27 | with: 28 | fetch-depth: 0 29 | 30 | # Install the .NET Core workload 31 | - name: Install .NET Core 32 | uses: actions/setup-dotnet@v2 33 | with: 34 | dotnet-version: 6.0.x 35 | 36 | # Add MSBuild to the PATH: https://github.com/microsoft/setup-msbuild 37 | - name: Setup MSBuild.exe 38 | uses: microsoft/setup-msbuild@v1.0.2 39 | 40 | 41 | # Restore the application to populate the obj folder with RuntimeIdentifiers 42 | - name: Restore the application 43 | working-directory: ./CleanUI 44 | run: | 45 | nuget install CleanUI/packages.config -OutputDirectory ./packages 46 | msbuild $env:Solution_Name /p:Configuration=$env:Configuration 47 | env: 48 | Configuration: ${{ matrix.configuration }} 49 | 50 | - name: Upload built exe 51 | uses: actions/upload-artifact@v2 52 | with: 53 | name: bin 54 | path: | 55 | CleanUI/CleanUI/bin 56 | CleanUI/CleanUI/obj 57 | 58 | - name: Add Release 59 | uses: actions/create-release@v1 60 | env: 61 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 62 | with: 63 | tag_name: ${{ github.run_number }} 64 | release_name: Alpha Version 0.${{ github.run_number }} 65 | 66 | -------------------------------------------------------------------------------- /CleanUI/CleanUI/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Resources; 3 | using System.Runtime.CompilerServices; 4 | using System.Runtime.InteropServices; 5 | using System.Windows; 6 | 7 | // General Information about an assembly is controlled through the following 8 | // set of attributes. Change these attribute values to modify the information 9 | // associated with an assembly. 10 | [assembly: AssemblyTitle("CleanUI")] 11 | [assembly: AssemblyDescription("")] 12 | [assembly: AssemblyConfiguration("")] 13 | [assembly: AssemblyCompany("")] 14 | [assembly: AssemblyProduct("CleanUI")] 15 | [assembly: AssemblyCopyright("Copyright © 2020")] 16 | [assembly: AssemblyTrademark("")] 17 | [assembly: AssemblyCulture("")] 18 | 19 | // Setting ComVisible to false makes the types in this assembly not visible 20 | // to COM components. If you need to access a type in this assembly from 21 | // COM, set the ComVisible attribute to true on that type. 22 | [assembly: ComVisible(false)] 23 | 24 | //In order to begin building localizable applications, set 25 | //CultureYouAreCodingWith in your .csproj file 26 | //inside a . For example, if you are using US english 27 | //in your source files, set the to en-US. Then uncomment 28 | //the NeutralResourceLanguage attribute below. Update the "en-US" in 29 | //the line below to match the UICulture setting in the project file. 30 | 31 | //[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] 32 | 33 | 34 | [assembly: ThemeInfo( 35 | ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located 36 | //(used if a resource is not found in the page, 37 | // or application resource dictionaries) 38 | ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located 39 | //(used if a resource is not found in the page, 40 | // app, or any theme specific resource dictionaries) 41 | )] 42 | 43 | 44 | // Version information for an assembly consists of the following four values: 45 | // 46 | // Major Version 47 | // Minor Version 48 | // Build Number 49 | // Revision 50 | // 51 | // You can specify all the values or you can default the Build and Revision Numbers 52 | // by using the '*' as shown below: 53 | // [assembly: AssemblyVersion("1.0.*")] 54 | [assembly: AssemblyVersion("1.0.0.0")] 55 | [assembly: AssemblyFileVersion("1.0.0.0")] 56 | -------------------------------------------------------------------------------- /CleanUI/CleanUI/MainWindow.xaml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 38 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /docs/assets/css/button.css: -------------------------------------------------------------------------------- 1 | button { 2 | border-radius:0; 3 | } 4 | 5 | button:focus { 6 | outline:1px dotted; 7 | outline:5px auto -webkit-focus-ring-color; 8 | } 9 | 10 | input, button, select, optgroup, textarea { 11 | margin:0; 12 | font-family:inherit; 13 | font-size:inherit; 14 | line-height:inherit; 15 | } 16 | 17 | button, input { 18 | overflow:visible; 19 | } 20 | 21 | button, select { 22 | text-transform:none; 23 | } 24 | 25 | button, html [type="button"], [type="reset"], [type="submit"] { 26 | -webkit-appearance:button; 27 | } 28 | 29 | .btn { 30 | display:inline-block; 31 | font-weight:400; 32 | text-align:center; 33 | white-space:nowrap; 34 | vertical-align:middle; 35 | user-select:none; 36 | border:1px solid transparent; 37 | padding:0.625rem 1.25rem; 38 | font-size:0.875rem; 39 | line-height:1.3; 40 | border-radius:0.125rem; 41 | transition:color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; 42 | } 43 | 44 | .btn:hover, .btn:focus { 45 | text-decoration:none; 46 | } 47 | 48 | .btn:focus, .btn.focus { 49 | outline:0; 50 | box-shadow:0 0 0 0.2rem rgba(0, 123, 255, 0.25); 51 | } 52 | 53 | .btn:not(:disabled):not(.disabled) { 54 | cursor:pointer; 55 | } 56 | 57 | .btn:not(:disabled):not(.disabled):active, .btn:not(:disabled):not(.disabled).active { 58 | background-image:none; 59 | } 60 | 61 | .btn-primary { 62 | color:#fff; 63 | background-color:#007bff; 64 | border-color:#007bff; 65 | } 66 | 67 | .btn-primary:hover { 68 | color:#fff; 69 | background-color:#0069d9; 70 | border-color:#0062cc; 71 | } 72 | 73 | .btn-primary:focus, .btn-primary.focus { 74 | box-shadow:0 0 0 0.2rem rgba(0, 123, 255, 0.5); 75 | } 76 | 77 | .btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active, .show > .btn-primary.dropdown-toggle { 78 | color:#fff; 79 | background-color:#0062cc; 80 | border-color:#0062cc; 81 | } 82 | 83 | .btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus, .show > .btn-primary.dropdown-toggle:focus { 84 | box-shadow:0 0 0 0.2rem rgba(0, 123, 255, 0.5); 85 | } 86 | 87 | .mr-2, .mx-2 { 88 | margin-right:0.625rem !important; 89 | } 90 | 91 | .mb-2, .my-2, .table-label { 92 | margin-bottom:0.625rem !important; 93 | } 94 | 95 | .p-2 { 96 | padding:0.625rem !important; 97 | } 98 | 99 | .btn { 100 | box-shadow:none !important; 101 | } 102 | 103 | .btn-primary { 104 | border-color:#48CCFF; 105 | background-color:#48CCFF; 106 | } 107 | 108 | .btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn-primary.active { 109 | border-color:#00b5fb !important; 110 | background-color:#00b5fb !important; 111 | } 112 | 113 | -------------------------------------------------------------------------------- /CleanUI/CleanUI/Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace CleanUI.Properties 12 | { 13 | 14 | 15 | /// 16 | /// A strongly-typed resource class, for looking up localized strings, etc. 17 | /// 18 | // This class was auto-generated by the StronglyTypedResourceBuilder 19 | // class via a tool like ResGen or Visual Studio. 20 | // To add or remove a member, edit your .ResX file then rerun ResGen 21 | // with the /str option, or rebuild your VS project. 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Resources 26 | { 27 | 28 | private static global::System.Resources.ResourceManager resourceMan; 29 | 30 | private static global::System.Globalization.CultureInfo resourceCulture; 31 | 32 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 33 | internal Resources() 34 | { 35 | } 36 | 37 | /// 38 | /// Returns the cached ResourceManager instance used by this class. 39 | /// 40 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 41 | internal static global::System.Resources.ResourceManager ResourceManager 42 | { 43 | get 44 | { 45 | if ((resourceMan == null)) 46 | { 47 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("CleanUI.Properties.Resources", typeof(Resources).Assembly); 48 | resourceMan = temp; 49 | } 50 | return resourceMan; 51 | } 52 | } 53 | 54 | /// 55 | /// Overrides the current thread's CurrentUICulture property for all 56 | /// resource lookups using this strongly typed resource class. 57 | /// 58 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 59 | internal static global::System.Globalization.CultureInfo Culture 60 | { 61 | get 62 | { 63 | return resourceCulture; 64 | } 65 | set 66 | { 67 | resourceCulture = value; 68 | } 69 | } 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # SpotlightX 2 | ![The bar upon launch looks like this, and will disappear when you click off or press Esc:](https://i.imgur.com/ZsW1MnZ.png) 3 | 4 | If you don't want to read a bunch of text, visit the [SpotlightX Site](https://torinfelton.github.io/SpotlightX/) 5 | 6 | 7 | SpotlightX is a minimal, simplistic command bar that makes launching programs or searching things a lot easier than they are with the default Windows 10 search bar. In the future, I intend to go beyond the basic feature set of the Windows 10 search bar and make even more useful commands, while maintaining the simple look and feel of the program throughout (and trying to keep it lightweight). 8 | 9 | The general motivation behind this was that sometimes the Windows 10 Search Bar can behave strangely and not do what the user would like, or doesn't have the shortcuts quickly available. For example, even if you type in the same few programs every day to launch, they take a while to be found and sometimes the first result that comes up is a Bing search instead of the program you have installed... SpotlightX doesn't do this, there is no weird determination of results or forcing Bing search down your throat, it just does what you need it to do and disappears after. 10 | 11 | ## Install 12 | 13 | | Release Version | Download | 14 | | --------------- |:-------------:| 15 | | 0.0.1 | [Download](https://github.com/TorinFelton/SpotlightX/releases/tag/V0.0.1) | 16 | | 0.0.2 | [Download](https://github.com/TorinFelton/SpotlightX/releases/tag/V0.0.2) | 17 | 18 | 19 | ## Commands & Basic Usage 20 | 21 | #### Press TAB to autocomplete a command or program name to run 22 | 23 | https://torinfelton.github.io/SpotlightX/help.html 24 | 25 | 26 | ## Current Features 27 | 28 | - All shortcuts in the System's start menu & the user's start menu will be loaded and can be ran directly from the bar 29 | - You can load in your own files to be able to run by adding the folder there in via the ```addpath``` and ```removepath``` commands (see above) 30 | - Working tab-autocompletion based on available programs/commands 31 | - Minimialistic Icons & No scary error messages 32 | - Hotkey (Alt + S) to bring up SpotlightX, program runs quietly in the background without interruption and window disappears when not needed 33 | - Search function for Google (though in future you'll be able to change search engine) 34 | - Ability to launch windows settings from simplistic command ("settings "), all settings page names are autocompletable. 35 | The autocompletion for these setting names has used the ms-settings URI list for all locations [here](https://github.com/TorinFelton/SpotlightX/blob/master/CleanUI/CleanUI/config/ms-settings.txt) 36 | - Ability to change background + text colour 37 | 38 | ## Goals/Upcoming Ideas 39 | 40 | - Custom commands implemented via JSON (hopefully with a UI for the user to edit the JSON with) 41 | - Custom actions for these commands to carry out (e.g run program, set setting, search something, etc.) 42 | - (DONE) Ability to customise icons + style of bar (gradient, colouring, etc.) 43 | 44 | # General Look 45 | 46 | 47 | ## Example autocompletion & program run 48 | ![When typing in the start of one of the start menu programs, it will autocomplete:](https://i.imgur.com/ei8wNCW.gif) 49 | Typing and autocomplete are not slowed by the program, I have just slowly typed for demonstration. 50 | 51 | 52 | Pressing enter will run the program, and close the window. 53 | 54 | ## Search Function + Icon 55 | ![Search Function](https://i.imgur.com/DaagPV3.png) 56 | 57 | ## Launch Settings Function 58 | ![Launch Settings Function](https://i.imgur.com/p7wMNS6.gif) 59 | Typing and autocomplete are not slowed by the program, I have just slowly typed for demonstration. 60 | 61 | ## Error Icon 62 | ![Simplistic Error Message - to show invalid command input](https://i.imgur.com/TibVPGY.png) 63 | -------------------------------------------------------------------------------- /.github/workflows/master_pr_workflow.yml: -------------------------------------------------------------------------------- 1 | # This workflow uses actions that are not certified by GitHub. 2 | # They are provided by a third-party and are governed by 3 | # separate terms of service, privacy policy, and support 4 | # documentation. 5 | 6 | # This workflow will build, test, sign and package a WPF or Windows Forms desktop application 7 | # built on .NET Core. 8 | # To learn how to migrate your existing application to .NET Core, 9 | # refer to https://docs.microsoft.com/en-us/dotnet/desktop-wpf/migration/convert-project-from-net-framework 10 | # 11 | # To configure this workflow: 12 | # 13 | # 1. Configure environment variables 14 | # GitHub sets default environment variables for every workflow run. 15 | # Replace the variables relative to your project in the "env" section below. 16 | # 17 | # 2. Signing 18 | # Generate a signing certificate in the Windows Application 19 | # Packaging Project or add an existing signing certificate to the project. 20 | # Next, use PowerShell to encode the .pfx file using Base64 encoding 21 | # by running the following Powershell script to generate the output string: 22 | # 23 | # $pfx_cert = Get-Content '.\SigningCertificate.pfx' -Encoding Byte 24 | # [System.Convert]::ToBase64String($pfx_cert) | Out-File 'SigningCertificate_Encoded.txt' 25 | # 26 | # Open the output file, SigningCertificate_Encoded.txt, and copy the 27 | # string inside. Then, add the string to the repo as a GitHub secret 28 | # and name it "Base64_Encoded_Pfx." 29 | # For more information on how to configure your signing certificate for 30 | # this workflow, refer to https://github.com/microsoft/github-actions-for-desktop-apps#signing 31 | # 32 | # Finally, add the signing certificate password to the repo as a secret and name it "Pfx_Key". 33 | # See "Build the Windows Application Packaging project" below to see how the secret is used. 34 | # 35 | # For more information on GitHub Actions, refer to https://github.com/features/actions 36 | # For a complete CI/CD sample to get started with GitHub Action workflows for Desktop Applications, 37 | # refer to https://github.com/microsoft/github-actions-for-desktop-apps 38 | 39 | name: .NET Core Desktop 40 | 41 | on: 42 | pull_request: 43 | branches: [ "master" ] 44 | 45 | jobs: 46 | 47 | build: 48 | 49 | strategy: 50 | matrix: 51 | configuration: [Debug, Release] 52 | 53 | runs-on: windows-latest # For a list of available runner types, refer to 54 | # https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on 55 | 56 | env: 57 | Solution_Name: CleanUI/CleanUI.csproj # Replace with your solution name, i.e. MyWpfApp.sln. 58 | #Test_Project_Path: your-test-project-path # Replace with the path to your test project, i.e. MyWpfApp.Tests\MyWpfApp.Tests.csproj. 59 | #Wap_Project_Directory: your-wap-project-directory-name # Replace with the Wap project directory relative to the solution, i.e. MyWpfApp.Package. 60 | #Wap_Project_Path: your-wap-project-path # Replace with the path to your Wap project, i.e. MyWpf.App.Package\MyWpfApp.Package.wapproj. 61 | 62 | steps: 63 | - name: Checkout 64 | uses: actions/checkout@v3 65 | with: 66 | fetch-depth: 0 67 | 68 | # Install the .NET Core workload 69 | - name: Install .NET Core 70 | uses: actions/setup-dotnet@v2 71 | with: 72 | dotnet-version: 6.0.x 73 | 74 | # Add MSBuild to the PATH: https://github.com/microsoft/setup-msbuild 75 | - name: Setup MSBuild.exe 76 | uses: microsoft/setup-msbuild@v1.0.2 77 | 78 | 79 | # Restore the application to populate the obj folder with RuntimeIdentifiers 80 | - name: Restore the application 81 | working-directory: ./CleanUI 82 | run: | 83 | nuget install CleanUI/packages.config -OutputDirectory ./packages 84 | msbuild $env:Solution_Name /p:Configuration=$env:Configuration 85 | env: 86 | Configuration: ${{ matrix.configuration }} 87 | 88 | - name: Upload built exe 89 | uses: actions/upload-artifact@v2 90 | with: 91 | name: bin 92 | path: | 93 | CleanUI/CleanUI/bin 94 | CleanUI/CleanUI/obj 95 | 96 | 97 | -------------------------------------------------------------------------------- /docs/customisation.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SpotlightX 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 |
26 |

SpotlightX Customisation

27 |
28 |
29 |
30 |
31 |
32 |

Notes

SpotlightX supports customisation from the 0.0.2 update onwards. A style.json file holds the custom values for all colours and is generated upon installation. All custom values can be edited via commands and do not need to be written in by hand to the style.json file.
33 |
34 |
35 |
36 |
37 |

Background Examples

38 |
background #7BE9F6:0.0 #000eff:1.3The default starting background.
39 | 41 |
background #ff1900:0.0 #ffc803:1.3
42 |
background #4568dc:0.0 #b06ab3:1.0
44 |
background #009c22:0.0 #00d490:1.3
46 |
background #cc2b5e:0.0 #753a88:1.0
48 |
49 |
50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SpotlightX 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 |
26 |

SpotlightX

27 |
28 |

A simple search-bar to improve your windows experience.

29 | 31 |
32 | 45 |
46 | Buy me a coffeeBuy me a coffee 47 |
48 | 49 | 50 |
51 |
52 | 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /docs/assets/css/Header-Blue.css: -------------------------------------------------------------------------------- 1 | .header-blue { 2 | background:linear-gradient(135deg, #172a74, #21a9af); 3 | background-color:#184e8e; 4 | padding-bottom:80px; 5 | font-family:'Source Sans Pro', sans-serif; 6 | } 7 | 8 | @media (min-width:768px) { 9 | .header-blue { 10 | padding-bottom:120px; 11 | } 12 | } 13 | 14 | .header-blue .navbar { 15 | background:transparent; 16 | padding-top:.75rem; 17 | padding-bottom:.75rem; 18 | color:#fff; 19 | border-radius:0; 20 | box-shadow:none; 21 | border:none; 22 | } 23 | 24 | @media (min-width:768px) { 25 | .header-blue .navbar { 26 | padding-top:1rem; 27 | padding-bottom:1rem; 28 | } 29 | } 30 | 31 | .header-blue .navbar .navbar-brand { 32 | font-weight:bold; 33 | color:inherit; 34 | } 35 | 36 | .header-blue .navbar .navbar-brand:hover { 37 | color:#f0f0f0; 38 | } 39 | 40 | .header-blue .navbar .navbar-collapse { 41 | border-top:1px solid rgba(255,255,255,0.3); 42 | margin-top:.5rem; 43 | } 44 | 45 | @media (min-width:768px) { 46 | .header-blue .navbar .navbar-collapse { 47 | border-color:transparent; 48 | margin:0; 49 | } 50 | } 51 | 52 | .header-blue .navbar .navbar-collapse span .login { 53 | color:#d9d9d9; 54 | margin-right:.5rem; 55 | text-decoration:none; 56 | } 57 | 58 | .header-blue .navbar .navbar-collapse span .login:hover { 59 | color:#fff; 60 | } 61 | 62 | .header-blue .navbar .navbar-toggler { 63 | border-color:rgba(255,255,255,0.3); 64 | } 65 | 66 | .header-blue .navbar .navbar-toggler:hover, .header-blue .navbar-toggler:focus { 67 | background:none; 68 | } 69 | 70 | .header-blue .navbar .navbar-nav a.active, .header-blue .navbar .navbar-nav > .show .dropdown-item { 71 | background:none; 72 | box-shadow:none; 73 | } 74 | 75 | @media (min-width: 768px) { 76 | .header-blue .navbar-nav .nav-link { 77 | padding-left:.7rem; 78 | padding-right:.7rem; 79 | } 80 | } 81 | 82 | @media (min-width: 992px) { 83 | .header-blue .navbar-nav .nav-link { 84 | padding-left:1.2rem; 85 | padding-right:1.2rem; 86 | } 87 | } 88 | 89 | .header-blue .navbar .navbar-nav > li > .dropdown-menu { 90 | margin-top:-5px; 91 | box-shadow:0 4px 8px rgba(0,0,0,.1); 92 | background-color:#fff; 93 | border-radius:2px; 94 | } 95 | 96 | .header-blue .navbar .dropdown-menu .dropdown-item:focus, .header-blue .navbar .dropdown-menu .dropdown-item { 97 | line-height:2; 98 | color:#37434d; 99 | } 100 | 101 | .header-blue .navbar .dropdown-menu .dropdown-item:focus, .header-blue .navbar .dropdown-menu .dropdown-item:hover { 102 | background:#ebeff1; 103 | } 104 | 105 | .header-blue .action-button, .header-blue .action-button:not(.disabled):active { 106 | border:1px solid rgba(255,255,255,0.7); 107 | border-radius:40px; 108 | color:#ebeff1; 109 | box-shadow:none; 110 | text-shadow:none; 111 | padding:.3rem .8rem; 112 | background:transparent; 113 | transition:background-color 0.25s; 114 | outline:none; 115 | } 116 | 117 | .header-blue .action-button:hover { 118 | color:#fff; 119 | } 120 | 121 | .header-blue .navbar .form-inline label { 122 | color:#d9d9d9; 123 | } 124 | 125 | .header-blue .navbar .form-inline .search-field { 126 | display:inline-block; 127 | width:80%; 128 | background:none; 129 | border:none; 130 | border-bottom:1px solid transparent; 131 | border-radius:0; 132 | color:#ccc; 133 | box-shadow:none; 134 | color:inherit; 135 | transition:border-bottom-color 0.3s; 136 | } 137 | 138 | .header-blue .navbar .form-inline .search-field:focus { 139 | border-bottom:1px solid #ccc; 140 | } 141 | 142 | .header-blue .hero { 143 | margin-top:20px; 144 | text-align:center; 145 | } 146 | 147 | @media (min-width:768px) { 148 | .header-blue .hero { 149 | margin-top:60px; 150 | text-align:left; 151 | } 152 | } 153 | 154 | .header-blue .hero h1 { 155 | color:#fff; 156 | font-size:40px; 157 | margin-top:0; 158 | margin-bottom:15px; 159 | font-weight:300; 160 | line-height:1.4; 161 | } 162 | 163 | @media (min-width:992px) { 164 | .header-blue .hero h1 { 165 | margin-top:190px; 166 | margin-bottom:24px; 167 | line-height:1.2; 168 | } 169 | } 170 | 171 | .header-blue .hero p { 172 | color:rgba(255,255,255,0.8); 173 | font-size:20px; 174 | margin-bottom:30px; 175 | font-weight:300; 176 | } 177 | 178 | .header-blue .phone-holder { 179 | text-align:right; 180 | } 181 | 182 | .header-blue div.iphone-mockup { 183 | position:relative; 184 | max-width:300px; 185 | margin:20px; 186 | display:inline-block; 187 | } 188 | 189 | .header-blue .iphone-mockup img.device { 190 | width:100%; 191 | height:auto; 192 | } 193 | 194 | .header-blue .iphone-mockup .screen { 195 | position:absolute; 196 | width:88%; 197 | height:77%; 198 | top:12%; 199 | border-radius:2px; 200 | left:6%; 201 | border:1px solid #444; 202 | background-color:#aaa; 203 | overflow:hidden; 204 | background:url(screen-content-iphone-6.jpg); 205 | background-size:cover; 206 | background-position:center; 207 | } 208 | 209 | .header-blue .iphone-mockup .screen:before { 210 | content:''; 211 | background-color:#fff; 212 | position:absolute; 213 | width:70%; 214 | height:140%; 215 | top:-12%; 216 | right:-60%; 217 | transform:rotate(-19deg); 218 | opacity:0.2; 219 | } 220 | 221 | -------------------------------------------------------------------------------- /CleanUI/CleanUI/Properties/Resources.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | text/microsoft-resx 107 | 108 | 109 | 2.0 110 | 111 | 112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 113 | 114 | 115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | -------------------------------------------------------------------------------- /CleanUI/CleanUI/Config/ms-settings.txt: -------------------------------------------------------------------------------- 1 | ms-settings:display 2 | ms-settings:nightlight 3 | ms-settings:display-advanced 4 | ms-settings-connectabledevices:devicediscovery 5 | ms-settings:display-advancedgraphics 6 | ms-settings:sound 7 | ms-settings:sound-devices 8 | ms-settings:apps-volume 9 | ms-settings:notifications 10 | ms-settings:quiethours 11 | ms-settings:quietmomentshome 12 | ms-settings:quietmomentsscheduled 13 | ms-settings:quietmomentspresentation 14 | ms-settings:quietmomentsgame 15 | ms-settings:powersleep 16 | ms-settings:batterysaver 17 | ms-settings:batterysaver-usagedetails 18 | ms-settings:batterysaver-settings 19 | ms-settings:storagesense 20 | ms-settings:storagepolicies 21 | ms-settings:savelocations 22 | ms-settings:tabletmode 23 | ms-settings:multitasking 24 | ms-settings:project 25 | ms-settings:crossdevice 26 | ms-settings:clipboard 27 | ms-settings:remotedesktop 28 | ms-settings:deviceencryption 29 | ms-settings:about 30 | ms-settings:bluetooth 31 | ms-settings:connecteddevices 32 | ms-settings:printers 33 | ms-settings:mousetouchpad 34 | ms-settings:devices-touchpad 35 | ms-settings:typing 36 | ms-settings:devicestyping-hwkbtextsuggestions 37 | ms-settings:wheel 38 | ms-settings:pen 39 | ms-settings:autoplay 40 | ms-settings:usb 41 | ms-settings:mobile-devices 42 | ms-settings:mobile-devices-addphone 43 | ms-settings:mobile-devices-addphone-direct 44 | ms-settings:network 45 | ms-settings:network-status 46 | ms-availablenetworks: 47 | ms-settings:network-cellular 48 | ms-settings:network-wifi 49 | ms-availablenetworks: 50 | ms-settings:network-wifisettings 51 | ms-settings:network-wificalling 52 | ms-settings:network-ethernet 53 | ms-settings:network-dialup 54 | ms-settings:network-directaccess 55 | ms-settings:network-vpn 56 | ms-settings:network-airplanemode 57 | ms-settings:proximity 58 | ms-settings:network-mobilehotspot 59 | ms-settings:nfctransactions 60 | ms-settings:datausage 61 | ms-settings:network-proxy 62 | ms-settings:personalization 63 | ms-settings:personalization-background 64 | ms-settings:personalization-colors 65 | ms-settings:colors 66 | ms-settings:lockscreen 67 | ms-settings:themes 68 | ms-settings:fonts 69 | ms-settings:personalization-start 70 | ms-settings:personalization-start-places 71 | ms-settings:taskbar 72 | ms-settings:appsfeatures 73 | ms-settings:optionalfeatures 74 | ms-settings:defaultapps 75 | ms-settings:maps 76 | ms-settings:maps-downloadmaps 77 | ms-settings:appsforwebsites 78 | ms-settings:videoplayback 79 | ms-settings:startupapps 80 | ms-settings:yourinfo 81 | ms-settings:emailandaccounts 82 | ms-settings:signinoptions 83 | ms-settings:signinoptions-launchfaceenrollment 84 | ms-settings:signinoptions-launchfingerprintenrollment 85 | ms-settings:signinoptions-launchsecuritykeyenrollment 86 | ms-settings:signinoptions-dynamiclock 87 | ms-settings:workplace 88 | ms-settings:otherusers 89 | ms-settings:assignedaccess 90 | ms-settings:sync 91 | ms-settings:dateandtime 92 | ms-settings:regionlanguage-jpnime 93 | ms-settings:regionlanguage-chsime-pinyin 94 | ms-settings:regionlanguage-chsime-wubi 95 | ms-settings:regionlanguage 96 | ms-settings:keyboard 97 | ms-settings:regionlanguage-setdisplaylanguage 98 | ms-settings:regionlanguage-adddisplaylanguage 99 | ms-settings:speech 100 | ms-settings:gaming-gamebar 101 | ms-settings:gaming-gamedvr 102 | ms-settings:gaming-broadcasting 103 | ms-settings:gaming-gamemode 104 | ms-settings:gaming-trueplay 105 | ms-settings:gaming-xboxnetworking 106 | ms-settings:extras 107 | ms-settings:easeofaccess-display 108 | ms-settings:easeofaccess-cursorandpointersize 109 | ms-settings:easeofaccess-MousePointer 110 | ms-settings:easeofaccess-cursor 111 | ms-settings:easeofaccess-magnifier 112 | ms-settings:easeofaccess-colorfilter 113 | ms-settings:easeofaccess-highcontrast 114 | ms-settings:easeofaccess-narrator 115 | ms-settings:easeofaccess-narrator-isautostartenabled 116 | ms-settings:easeofaccess-audio 117 | ms-settings:easeofaccess-closedcaptioning 118 | ms-settings:easeofaccess-speechrecognition 119 | ms-settings:easeofaccess-keyboard 120 | ms-settings:easeofaccess-mouse 121 | ms-settings:easeofaccess-eyecontrol 122 | ms-settings:easeofaccess-otheroptions 123 | ms-settings:search-permissions 124 | ms-settings:cortana-windowssearch 125 | ms-settings:search-moredetails 126 | ms-settings:cortana 127 | ms-settings:cortana-talktocortana 128 | ms-settings:cortana-permissions 129 | ms-settings:cortana-moredetails 130 | ms-settings:privacy 131 | ms-settings:privacy 132 | ms-settings:privacy-speech 133 | ms-settings:privacy-speechtyping 134 | ms-settings:privacy-feedback 135 | ms-settings:privacy-feedback-telemetryviewergroup 136 | ms-settings:privacy-activityhistory 137 | ms-settings:privacy-location 138 | ms-settings:privacy-webcam 139 | ms-settings:privacy-microphone 140 | ms-settings:privacy-voiceactivation 141 | ms-settings:privacy-notifications 142 | ms-settings:privacy-accountinfo 143 | ms-settings:privacy-contacts 144 | ms-settings:privacy-calendar 145 | ms-settings:privacy-phonecalls[B]​[/B] 146 | ms-settings:privacy-callhistory 147 | ms-settings:privacy-email 148 | ms-settings:privacy-eyetracker 149 | ms-settings:privacy-tasks 150 | ms-settings:privacy-messaging 151 | ms-settings:privacy-radios 152 | ms-settings:privacy-customdevices 153 | ms-settings:privacy-backgroundapps 154 | ms-settings:privacy-appdiagnostics 155 | ms-settings:privacy-automaticfiledownloads 156 | ms-settings:privacy-documents 157 | ms-settings:privacy-pictures 158 | ms-settings:privacy-documents 159 | ms-settings:privacy-broadfilesystemaccess 160 | ms-settings:windowsupdate 161 | ms-settings:windowsupdate 162 | ms-settings:windowsupdate-action 163 | ms-settings:windowsupdate-optionalupdates 164 | ms-settings:windowsupdate-activehours 165 | ms-settings:windowsupdate-history 166 | ms-settings:windowsupdate-restartoptions 167 | ms-settings:windowsupdate-options 168 | ms-settings:delivery-optimization 169 | ms-settings:windowsdefender 170 | ms-settings:backup 171 | ms-settings:troubleshoot 172 | ms-settings:recovery 173 | ms-settings:activation 174 | ms-settings:findmydevice 175 | ms-settings:developers 176 | ms-settings:windowsinsider 177 | ms-settings:windowsinsider-optin 178 | ms-settings:holographic 179 | ms-settings:holographic-audio 180 | ms-settings:privacy-holographic-environment 181 | ms-settings:holographic-headset 182 | ms-settings:holographic-management 183 | ms-settings:surfacehub-accounts 184 | ms-settings:surfacehub-calling 185 | ms-settings:surfacehub-devicemanagenent 186 | ms-settings:surfacehub-sessioncleanup 187 | ms-settings:surfacehub-welcome -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ## Ignore Visual Studio temporary files, build results, and 2 | ## files generated by popular Visual Studio add-ons. 3 | ## 4 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore 5 | 6 | # User-specific files 7 | *.rsuser 8 | *.suo 9 | *.user 10 | *.userosscache 11 | *.sln.docstates 12 | 13 | # User-specific files (MonoDevelop/Xamarin Studio) 14 | *.userprefs 15 | 16 | # Mono auto generated files 17 | mono_crash.* 18 | 19 | # Build results 20 | [Dd]ebug/ 21 | [Dd]ebugPublic/ 22 | [Rr]elease/ 23 | [Rr]eleases/ 24 | x64/ 25 | x86/ 26 | [Ww][Ii][Nn]32/ 27 | [Aa][Rr][Mm]/ 28 | [Aa][Rr][Mm]64/ 29 | bld/ 30 | [Bb]in/ 31 | [Oo]bj/ 32 | [Ll]og/ 33 | [Ll]ogs/ 34 | 35 | # Visual Studio 2015/2017 cache/options directory 36 | .vs/ 37 | # Uncomment if you have tasks that create the project's static files in wwwroot 38 | #wwwroot/ 39 | 40 | # Visual Studio 2017 auto generated files 41 | Generated\ Files/ 42 | 43 | # MSTest test Results 44 | [Tt]est[Rr]esult*/ 45 | [Bb]uild[Ll]og.* 46 | 47 | # NUnit 48 | *.VisualState.xml 49 | TestResult.xml 50 | nunit-*.xml 51 | 52 | # Build Results of an ATL Project 53 | [Dd]ebugPS/ 54 | [Rr]eleasePS/ 55 | dlldata.c 56 | 57 | # Benchmark Results 58 | BenchmarkDotNet.Artifacts/ 59 | 60 | # .NET Core 61 | project.lock.json 62 | project.fragment.lock.json 63 | artifacts/ 64 | 65 | # ASP.NET Scaffolding 66 | ScaffoldingReadMe.txt 67 | 68 | # StyleCop 69 | StyleCopReport.xml 70 | 71 | # Files built by Visual Studio 72 | *_i.c 73 | *_p.c 74 | *_h.h 75 | *.ilk 76 | *.meta 77 | *.obj 78 | *.iobj 79 | *.pch 80 | *.pdb 81 | *.ipdb 82 | *.pgc 83 | *.pgd 84 | *.rsp 85 | *.sbr 86 | *.tlb 87 | *.tli 88 | *.tlh 89 | *.tmp 90 | *.tmp_proj 91 | *_wpftmp.csproj 92 | *.log 93 | *.vspscc 94 | *.vssscc 95 | .builds 96 | *.pidb 97 | *.svclog 98 | *.scc 99 | 100 | # Chutzpah Test files 101 | _Chutzpah* 102 | 103 | # Visual C++ cache files 104 | ipch/ 105 | *.aps 106 | *.ncb 107 | *.opendb 108 | *.opensdf 109 | *.sdf 110 | *.cachefile 111 | *.VC.db 112 | *.VC.VC.opendb 113 | 114 | # Visual Studio profiler 115 | *.psess 116 | *.vsp 117 | *.vspx 118 | *.sap 119 | 120 | # Visual Studio Trace Files 121 | *.e2e 122 | 123 | # TFS 2012 Local Workspace 124 | $tf/ 125 | 126 | # Guidance Automation Toolkit 127 | *.gpState 128 | 129 | # ReSharper is a .NET coding add-in 130 | _ReSharper*/ 131 | *.[Rr]e[Ss]harper 132 | *.DotSettings.user 133 | 134 | # TeamCity is a build add-in 135 | _TeamCity* 136 | 137 | # DotCover is a Code Coverage Tool 138 | *.dotCover 139 | 140 | # AxoCover is a Code Coverage Tool 141 | .axoCover/* 142 | !.axoCover/settings.json 143 | 144 | # Coverlet is a free, cross platform Code Coverage Tool 145 | coverage*[.json, .xml, .info] 146 | 147 | # Visual Studio code coverage results 148 | *.coverage 149 | *.coveragexml 150 | 151 | # NCrunch 152 | _NCrunch_* 153 | .*crunch*.local.xml 154 | nCrunchTemp_* 155 | 156 | # MightyMoose 157 | *.mm.* 158 | AutoTest.Net/ 159 | 160 | # Web workbench (sass) 161 | .sass-cache/ 162 | 163 | # Installshield output folder 164 | [Ee]xpress/ 165 | 166 | # DocProject is a documentation generator add-in 167 | DocProject/buildhelp/ 168 | DocProject/Help/*.HxT 169 | DocProject/Help/*.HxC 170 | DocProject/Help/*.hhc 171 | DocProject/Help/*.hhk 172 | DocProject/Help/*.hhp 173 | DocProject/Help/Html2 174 | DocProject/Help/html 175 | 176 | # Click-Once directory 177 | publish/ 178 | 179 | # Publish Web Output 180 | *.[Pp]ublish.xml 181 | *.azurePubxml 182 | # Note: Comment the next line if you want to checkin your web deploy settings, 183 | # but database connection strings (with potential passwords) will be unencrypted 184 | *.pubxml 185 | *.publishproj 186 | 187 | # Microsoft Azure Web App publish settings. Comment the next line if you want to 188 | # checkin your Azure Web App publish settings, but sensitive information contained 189 | # in these scripts will be unencrypted 190 | PublishScripts/ 191 | 192 | # NuGet Packages 193 | *.nupkg 194 | # NuGet Symbol Packages 195 | *.snupkg 196 | # The packages folder can be ignored because of Package Restore 197 | **/[Pp]ackages/* 198 | # except build/, which is used as an MSBuild target. 199 | !**/[Pp]ackages/build/ 200 | # Uncomment if necessary however generally it will be regenerated when needed 201 | #!**/[Pp]ackages/repositories.config 202 | # NuGet v3's project.json files produces more ignorable files 203 | *.nuget.props 204 | *.nuget.targets 205 | 206 | # Microsoft Azure Build Output 207 | csx/ 208 | *.build.csdef 209 | 210 | # Microsoft Azure Emulator 211 | ecf/ 212 | rcf/ 213 | 214 | # Windows Store app package directories and files 215 | AppPackages/ 216 | BundleArtifacts/ 217 | Package.StoreAssociation.xml 218 | _pkginfo.txt 219 | *.appx 220 | *.appxbundle 221 | *.appxupload 222 | 223 | # Visual Studio cache files 224 | # files ending in .cache can be ignored 225 | *.[Cc]ache 226 | # but keep track of directories ending in .cache 227 | !?*.[Cc]ache/ 228 | 229 | # Others 230 | ClientBin/ 231 | ~$* 232 | *~ 233 | *.dbmdl 234 | *.dbproj.schemaview 235 | *.jfm 236 | *.pfx 237 | *.publishsettings 238 | orleans.codegen.cs 239 | 240 | # Including strong name files can present a security risk 241 | # (https://github.com/github/gitignore/pull/2483#issue-259490424) 242 | #*.snk 243 | 244 | # Since there are multiple workflows, uncomment next line to ignore bower_components 245 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) 246 | #bower_components/ 247 | 248 | # RIA/Silverlight projects 249 | Generated_Code/ 250 | 251 | # Backup & report files from converting an old project file 252 | # to a newer Visual Studio version. Backup files are not needed, 253 | # because we have git ;-) 254 | _UpgradeReport_Files/ 255 | Backup*/ 256 | UpgradeLog*.XML 257 | UpgradeLog*.htm 258 | ServiceFabricBackup/ 259 | *.rptproj.bak 260 | 261 | # SQL Server files 262 | *.mdf 263 | *.ldf 264 | *.ndf 265 | 266 | # Business Intelligence projects 267 | *.rdl.data 268 | *.bim.layout 269 | *.bim_*.settings 270 | *.rptproj.rsuser 271 | *- [Bb]ackup.rdl 272 | *- [Bb]ackup ([0-9]).rdl 273 | *- [Bb]ackup ([0-9][0-9]).rdl 274 | 275 | # Microsoft Fakes 276 | FakesAssemblies/ 277 | 278 | # GhostDoc plugin setting file 279 | *.GhostDoc.xml 280 | 281 | # Node.js Tools for Visual Studio 282 | .ntvs_analysis.dat 283 | node_modules/ 284 | 285 | # Visual Studio 6 build log 286 | *.plg 287 | 288 | # Visual Studio 6 workspace options file 289 | *.opt 290 | 291 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.) 292 | *.vbw 293 | 294 | # Visual Studio LightSwitch build output 295 | **/*.HTMLClient/GeneratedArtifacts 296 | **/*.DesktopClient/GeneratedArtifacts 297 | **/*.DesktopClient/ModelManifest.xml 298 | **/*.Server/GeneratedArtifacts 299 | **/*.Server/ModelManifest.xml 300 | _Pvt_Extensions 301 | 302 | # Paket dependency manager 303 | .paket/paket.exe 304 | paket-files/ 305 | 306 | # FAKE - F# Make 307 | .fake/ 308 | 309 | # CodeRush personal settings 310 | .cr/personal 311 | 312 | # Python Tools for Visual Studio (PTVS) 313 | __pycache__/ 314 | *.pyc 315 | 316 | # Cake - Uncomment if you are using it 317 | # tools/** 318 | # !tools/packages.config 319 | 320 | # Tabs Studio 321 | *.tss 322 | 323 | # Telerik's JustMock configuration file 324 | *.jmconfig 325 | 326 | # BizTalk build output 327 | *.btp.cs 328 | *.btm.cs 329 | *.odx.cs 330 | *.xsd.cs 331 | 332 | # OpenCover UI analysis results 333 | OpenCover/ 334 | 335 | # Azure Stream Analytics local run output 336 | ASALocalRun/ 337 | 338 | # MSBuild Binary and Structured Log 339 | *.binlog 340 | 341 | # NVidia Nsight GPU debugger configuration file 342 | *.nvuser 343 | 344 | # MFractors (Xamarin productivity tool) working folder 345 | .mfractor/ 346 | 347 | # Local History for Visual Studio 348 | .localhistory/ 349 | 350 | # BeatPulse healthcheck temp database 351 | healthchecksdb 352 | 353 | # Backup folder for Package Reference Convert tool in Visual Studio 2017 354 | MigrationBackup/ 355 | 356 | # Ionide (cross platform F# VS Code tools) working folder 357 | .ionide/ 358 | 359 | # Fody - auto-generated XML schema 360 | FodyWeavers.xsd -------------------------------------------------------------------------------- /docs/help.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SpotlightX 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 |
26 |

SpotlightX Help

27 |
28 |
29 |
30 |
31 |
32 |

Notes

This project is a work in progress, and this page will only be updated when stable releases are added. Currently this is in early stages, so functionality is limited and bugs are to be expected. If you have any questions or comments, please direct them towards the SpotlightX GitHub Repository.
33 |
34 |
35 |
36 |
37 |
38 |

Commands

search <something to search>Will open default browser and search configured search engine with whatever is input after the command.
Example: search SpotlightX Help

39 | settings <settings page to visit>Will open the Windows setting page that you input as a second argument. Settings pages are autocompletable by pressing Tab.
Example: settings nightlight

41 | addpath <full folder path to add>Will add a path to the list of folders in which the programs/files/shortcuts stored can be run directly from the commandbar, and will restart the program to load this path.
Example: addpath C:\Users\etc

43 | removepath <full folder path to remove>Will remove a path from the previously mentioned list, and restart the program.
Example: removepath C:\Users\etc

45 | <program or file>Provided that this program or file exists in the path list, they will be autocompletable via Tab and pressing enter will run the program or file given. Files will be opened with the system default program configured to open them with, (e.g .docx will open in Microsoft Word).
Example: Notepad or file.txt
47 | background <colour1>:<offset> <colour2>:<offset>Will change the background gradient according to input colours. See examples here.
49 | textcol <colour>Changes the text & caret colour to the input value.
51 | reloadRestarts the program.
53 |
54 |
55 |
56 |
57 |
58 |

Common Problems

"Could not register hotkey, exiting program..."

This message may appear upon launch of the program due to one of two things; the program may already be running and therefore cannot re-register the hotkey as it is in use, or there is another program which is using this hotkey. Press Alt + S to check if the SpotlightX bar already pops up, or if something else does.

59 | "Couldn't load folder: <folder path>"

This message will appear when the program has attempted to find a folder at the given path from a previous addpath command, but has failed. Please check that the path is valid (no typos, strange characters, pointing to a file and not a folder, etc.) and make sure to use the command removepath to remove the incorrect path from the path list.

60 | 61 | 63 |
64 |
65 |
66 | 67 | 68 | 69 | 70 | -------------------------------------------------------------------------------- /CleanUI/CleanUI/CleanUI.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {95B8F9EE-B888-4223-8840-F5C7D176BDA2} 8 | WinExe 9 | CleanUI 10 | CleanUI 11 | v4.7.1 12 | 512 13 | {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 14 | 4 15 | true 16 | 17 | 18 | AnyCPU 19 | true 20 | full 21 | false 22 | bin\Debug\ 23 | DEBUG;TRACE 24 | prompt 25 | 4 26 | 27 | 28 | AnyCPU 29 | pdbonly 30 | true 31 | bin\Release\ 32 | TRACE 33 | prompt 34 | 4 35 | 36 | 37 | 38 | 39 | 40 | 41 | ..\packages\AudioSwitcher.AudioApi.4.0.0-alpha5\lib\net45\AudioSwitcher.AudioApi.dll 42 | 43 | 44 | ..\packages\MahApps.Metro.IconPacks.MaterialLight.4.1.0\lib\net47\MahApps.Metro.IconPacks.Core.dll 45 | 46 | 47 | ..\packages\MahApps.Metro.IconPacks.Material.4.1.0\lib\net47\MahApps.Metro.IconPacks.Material.dll 48 | 49 | 50 | ..\packages\MahApps.Metro.IconPacks.MaterialLight.4.1.0\lib\net47\MahApps.Metro.IconPacks.MaterialLight.dll 51 | 52 | 53 | ..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll 54 | 55 | 56 | ..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll 57 | 58 | 59 | 60 | ..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll 61 | 62 | 63 | 64 | ..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll 65 | 66 | 67 | 68 | ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll 69 | 70 | 71 | ..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll 72 | 73 | 74 | ..\packages\System.Text.Encodings.Web.4.7.1\lib\net461\System.Text.Encodings.Web.dll 75 | 76 | 77 | ..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll 78 | 79 | 80 | ..\packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 4.0 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | MSBuild:Compile 98 | Designer 99 | 100 | 101 | 102 | 103 | 104 | MSBuild:Compile 105 | Designer 106 | 107 | 108 | App.xaml 109 | Code 110 | 111 | 112 | MainWindow.xaml 113 | Code 114 | 115 | 116 | 117 | 118 | Code 119 | 120 | 121 | True 122 | True 123 | Resources.resx 124 | 125 | 126 | True 127 | Settings.settings 128 | True 129 | 130 | 131 | ResXFileCodeGenerator 132 | Resources.Designer.cs 133 | 134 | 135 | 136 | Always 137 | 138 | 139 | Designer 140 | 141 | 142 | 143 | SettingsSingleFileGenerator 144 | Settings.Designer.cs 145 | 146 | 147 | 148 | 149 | Designer 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | Always 159 | 160 | 161 | Always 162 | 163 | 164 | 165 | -------------------------------------------------------------------------------- /CleanUI/CleanUI/MainWindow.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Diagnostics; 4 | using System.IO; 5 | using System.Linq; 6 | using System.Runtime.InteropServices; 7 | using System.Text; 8 | using System.Text.RegularExpressions; 9 | using System.Threading.Tasks; 10 | using System.Windows; 11 | using System.Windows.Controls; 12 | using System.Windows.Data; 13 | using System.Windows.Documents; 14 | using System.Windows.Input; 15 | using System.Windows.Media; 16 | using System.Windows.Media.Imaging; 17 | using System.Windows.Navigation; 18 | using System.Windows.Shapes; 19 | using Newtonsoft.Json; 20 | using System.Windows.Interop; 21 | using Microsoft.Win32; 22 | using Newtonsoft.Json.Serialization; 23 | 24 | 25 | namespace CleanUI 26 | { 27 | /// 28 | /// Interaction logic for MainWindow.xaml 29 | /// 30 | public partial class MainWindow : Window 31 | { 32 | 33 | private static bool FirstActivation = true; 34 | private Settings FSettings; 35 | private MainWindowViewModel ViewModel; 36 | private Dictionary ValidCommands = new Dictionary(StringComparer.InvariantCultureIgnoreCase); 37 | private List AutocompleteList = new List(); 38 | private List MatchesList = new List(); 39 | private int MatchIndex = 0; 40 | private bool MultipleAutocompleteOptions = false; 41 | private List ProgramList = new List(); 42 | private Dictionary ProgramPaths = new Dictionary(StringComparer.InvariantCultureIgnoreCase); 43 | private bool ClearOnClick = true; 44 | private bool recentLaunch = false; 45 | /* 46 | * recentLaunch var is being used to a strange event that kept happening: 47 | * - When running the RunCommand method upon pressing enter and being a valid command/program, if Process.Start() was used to run 48 | * the program typed in then the RunCommand method would be somehow ran again. If Process.Start() was replaced with a simple Console.WriteLine() 49 | * with the same arguments input, it would only run once (as it is supposed to). To counteract this weird double-running, after stepping through 50 | * every single line, the only thing I can do is leave a boolean temporarily set to counteract the second running of it on that specific method being run. 51 | * You will see this at the top of the KeyDown event for CommandTb. 52 | */ 53 | 54 | 55 | [DllImport("User32.dll")] 56 | private static extern bool RegisterHotKey( 57 | [In] IntPtr hWnd, 58 | [In] int id, 59 | [In] uint fsModifiers, 60 | [In] uint vk 61 | ); 62 | 63 | [DllImport("User32.dll")] 64 | private static extern bool UnregisterHotKey( 65 | [In] IntPtr hWnd, 66 | [In] int id); 67 | 68 | private HwndSource _source; 69 | private const int HOTKEY_ID = 9000; 70 | 71 | private string ConfigPath 72 | { 73 | get 74 | { 75 | // This will allow you to run and develop the program with the example settings.json without worrying about the other installed versions of the program and their settings.json files being invalid. 76 | 77 | #if DEBUG 78 | var folderPath = Constants.DefaultConfigPath; 79 | Console.WriteLine("WARNING: Loading in DEBUG mode, settings will be default & not user-specific."); 80 | 81 | #else 82 | var folderPath = System.IO.Directory.Exists(Constants.UserConfigPath) ? Constants.UserConfigPath : Constants.DefaultConfigPath; 83 | #endif 84 | return System.IO.Path.Combine(folderPath, "settings.json"); 85 | } 86 | } 87 | 88 | private string MsSettingsPath 89 | { 90 | get 91 | { 92 | var folderPath = System.IO.Directory.Exists(Constants.UserConfigPath) ? Constants.UserConfigPath : Constants.DefaultConfigPath; 93 | 94 | return System.IO.Path.Combine(folderPath, "ms-settings.txt"); 95 | } 96 | } 97 | 98 | private string StylePath 99 | { 100 | get 101 | { 102 | var folderPath = System.IO.Directory.Exists(Constants.UserConfigPath) ? Constants.UserConfigPath : Constants.DefaultConfigPath; 103 | 104 | return System.IO.Path.Combine(folderPath, "style.json"); 105 | } 106 | } 107 | 108 | public MainWindow() 109 | { 110 | RefreshSettings(); 111 | RefreshStyle(); 112 | 113 | this.DataContext = ViewModel; 114 | 115 | 116 | InitializeComponent(); 117 | this.Activated += new EventHandler(CommandTb_GotFocus); 118 | this.Deactivated += new EventHandler(CommandTb_LostFocus); 119 | CommandTb.GotFocus += new RoutedEventHandler(CommandTb_GotFocus); 120 | CommandTb.LostFocus += new RoutedEventHandler(CommandTb_LostFocus); 121 | 122 | 123 | foreach (string folder in FSettings.AppFolders) 124 | { 125 | string[] files; 126 | try 127 | { 128 | files = Directory.GetFiles(folder); 129 | } catch 130 | { 131 | CommandTb.Text = "Couldn't load folder: " + folder; 132 | CommandError(); 133 | files = new string[0]; 134 | } 135 | 136 | foreach (string file in files) { // Add all the programs in their folders to the autocomplete & valid commands list. 137 | Command toAdd = new Command(); 138 | toAdd.Name = System.IO.Path.GetFileNameWithoutExtension(file); 139 | toAdd.Actions = new List>(); 140 | toAdd.Actions.Add(new Dictionary { 141 | { "PROCESS", file } 142 | }); 143 | toAdd.Icon = "Apps"; 144 | ValidCommands.Add(toAdd.Name, toAdd); 145 | AutocompleteList.Add(toAdd.Name); 146 | } 147 | } 148 | 149 | 150 | foreach (Command cmd in FSettings.Commands) 151 | { 152 | ValidCommands.Add(cmd.Name, cmd); 153 | AutocompleteList.Add(cmd.Name); 154 | } 155 | 156 | string UserStartMenuPath = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) + @"\AppData\Roaming\Microsoft\Windows\Start Menu\Programs"; // Also automatically add all startmenu programs 157 | string StartMenuPath = System.IO.Path.GetPathRoot(Environment.SystemDirectory) + @"ProgramData\Microsoft\Windows\Start Menu\Programs"; 158 | 159 | ProgramList.AddRange(Directory.GetFiles(StartMenuPath).Where(x => x.EndsWith("lnk")).ToList()); 160 | ProgramList.AddRange(Directory.GetFiles(UserStartMenuPath).Where(x => x.EndsWith("lnk")).ToList()); 161 | 162 | List StartMenuDirs = new DirectoryInfo(StartMenuPath).GetDirectories().Where(x => (x.Attributes & FileAttributes.Hidden) == 0).ToList(); 163 | StartMenuDirs.AddRange(new DirectoryInfo(UserStartMenuPath).GetDirectories().Where(x => (x.Attributes & FileAttributes.Hidden) == 0).ToList()); 164 | 165 | foreach (DirectoryInfo dir in StartMenuDirs) 166 | { 167 | ProgramList.AddRange(Directory.GetFiles(dir.FullName).Where(x => (x.Split(' ').Length < 5 && x.EndsWith("lnk") ) ) ); // Short-named program shortcuts to make sure the autocomplete isn't too long 168 | 169 | 170 | } 171 | 172 | 173 | 174 | foreach (string prog in ProgramList) 175 | { 176 | ProgramPaths[System.IO.Path.GetFileNameWithoutExtension(prog).ToString().Trim()] = prog; // Add file name (without extension) and file path to dict 177 | AutocompleteList.Add(System.IO.Path.GetFileNameWithoutExtension(prog).ToString().Trim()); 178 | } 179 | 180 | } 181 | 182 | public void RefreshSettings() 183 | { 184 | try 185 | { 186 | FSettings = JsonConvert.DeserializeObject(System.IO.File.ReadAllText(ConfigPath)); 187 | } 188 | catch (Exception e) 189 | { 190 | MessageBox.Show("SpotlightX couldn't load the config/settings.json file, is it valid JSON? Redownload it or fix any JSON formatting errors. Exception: " + e); 191 | Application.Current.Shutdown(); 192 | } 193 | } 194 | 195 | public void RefreshStyle() 196 | { 197 | try 198 | { 199 | ViewModel = JsonConvert.DeserializeObject(System.IO.File.ReadAllText(StylePath)); 200 | } 201 | catch (Exception e) 202 | { 203 | MessageBox.Show("SpotlightX couldn't load the config/style.json file, is it valid JSON? Redownload it or fix any JSON formatting errors. Exception: " + e); 204 | Application.Current.Shutdown(); 205 | } 206 | } 207 | 208 | public void CommandTb_GotFocus(object sender, EventArgs e) 209 | { 210 | 211 | ClearAutocompleteOptions(); 212 | if (!FirstActivation) 213 | { 214 | if (ClearOnClick) 215 | { 216 | CommandTb.Text = ""; 217 | } 218 | } 219 | else 220 | { 221 | FirstActivation = false; 222 | } 223 | } 224 | 225 | public void CommandTb_LostFocus(object sender, EventArgs e) 226 | { 227 | if (string.IsNullOrWhiteSpace(CommandTb.Text)) 228 | { 229 | CommandTb.Text = "Type a command..."; 230 | ClearOnClick = true; 231 | } 232 | this.Hide(); 233 | } 234 | 235 | private void Window_MouseDown(object sender, MouseButtonEventArgs e) 236 | { 237 | if (e.ChangedButton == MouseButton.Left) 238 | this.DragMove(); 239 | 240 | } 241 | 242 | private void EnterCommand(object sender, KeyEventArgs e) 243 | { 244 | if (e.Key == Key.Escape) // Escape, close the window 245 | { 246 | this.Hide(); 247 | } else if (MultipleAutocompleteOptions && e.Key != Key.Tab) 248 | { 249 | ClearAutocompleteOptions(); 250 | } 251 | } 252 | 253 | private void Autocomplete() 254 | { 255 | if (MultipleAutocompleteOptions) 256 | { 257 | MatchIndex++; 258 | if (MatchIndex == MatchesList.Count) MatchIndex = 0; 259 | CommandTb.Text = MatchesList[MatchIndex] + " "; 260 | changeIcon(); 261 | } 262 | else 263 | { 264 | if (CommandTb.Text.Split(' ').Length == 1) 265 | { 266 | MatchesList = AutocompleteList.Where(x => x.ToLower().StartsWith(CommandTb.Text.ToLower())).ToList(); 267 | MatchesList.Sort(); 268 | MatchesList = MatchesList.Distinct().ToList(); 269 | if (MatchesList.Count > 0) 270 | { 271 | CommandTb.Text = MatchesList[0] + " "; 272 | changeIcon(); 273 | if (MatchesList.Count > 1) 274 | { 275 | MultipleAutocompleteOptions = true; 276 | MatchIndex = 0; 277 | } 278 | } 279 | } 280 | else // Autocompleting an argument, not a command 281 | { 282 | try 283 | { 284 | Command thisCommand = ValidCommands[CommandTb.Text.Split(' ')[0]]; 285 | if (thisCommand.Name == "settings") // Autocomplete Settings args 286 | { 287 | String argument = CommandTb.Text.Split(' ')[1]; 288 | List autoLines = System.IO.File.ReadAllLines(MsSettingsPath).Where(settingLine => settingLine.Substring(12).StartsWith(argument.ToLower())).ToList(); 289 | // Only load into memory when needed, and it's not a large file - just a list of settings pages. 290 | if (autoLines.Count > 0) 291 | { 292 | // Replace unfinished argument with full one 293 | CommandTb.Text = CommandTb.Text.Split(' ')[0] + " " + autoLines[0].Substring(12); 294 | } 295 | } 296 | } 297 | catch { } 298 | } 299 | } 300 | CommandTb.Select(CommandTb.Text.Length, 0); // move cursor to end of textbox 301 | } 302 | 303 | private void ClearAutocompleteOptions() 304 | { 305 | MatchesList.Clear(); 306 | MultipleAutocompleteOptions = false; 307 | MatchIndex = 0; 308 | } 309 | 310 | private void RunCommand(string text) 311 | { 312 | string[] SplitCommand = SplitArgs(CommandTb.Text); 313 | 314 | if (ValidCommands.ContainsKey(SplitCommand[0].Trim()) || ProgramPaths.ContainsKey(text.Trim()) || ValidCommands.ContainsKey(text.Trim())) // If it is either a command word (e.g 'search'), a program name, or file 315 | { 316 | try 317 | { 318 | this.Hide(); 319 | 320 | Command toRun; 321 | if (ValidCommands.ContainsKey(SplitCommand[0].Trim())) toRun = ValidCommands[SplitCommand[0].ToLower()]; // The command is a command word ('search') 322 | else toRun = ValidCommands[text.Trim()]; // The command is to open a file 323 | 324 | foreach (Dictionary action in toRun.Actions) 325 | { 326 | CompleteAction(action.ElementAt(0).Key, action.ElementAt(0).Value); 327 | } 328 | CommandTb.Text = "Type a command..."; 329 | 330 | } 331 | catch 332 | { 333 | recentLaunch = true; 334 | this.Hide(); 335 | CommandTypeIcon.Kind = MahApps.Metro.IconPacks.PackIconMaterialKind.Apps; 336 | Process.Start(ProgramPaths[text.Trim()]); 337 | CommandTypeIcon.Kind = MahApps.Metro.IconPacks.PackIconMaterialKind.MicrosoftWindows; 338 | CommandTb.Text = "Type a command..."; 339 | } 340 | ClearOnClick = true; 341 | } 342 | else 343 | { 344 | CommandError(); 345 | } 346 | } 347 | 348 | private void CommandError() 349 | { 350 | CommandTypeIcon.Kind = MahApps.Metro.IconPacks.PackIconMaterialKind.Exclamation; 351 | } 352 | 353 | private void CompleteAction(string type, string arguments) 354 | { 355 | arguments = StringArgsToArgs(arguments, type); // Replace all _arg1_ and _allargs_ vars to their values 356 | 357 | // General Actions 358 | if (type == "SEARCH") 359 | { 360 | Process.Start("https://www.google.com/search?q=" + Uri.EscapeDataString(StringArgsToArgs(arguments, type))); 361 | } else if (type == "EXIT") 362 | { 363 | System.Windows.Application.Current.Shutdown(); 364 | } 365 | else if (type == "PROCESS") 366 | { 367 | Process.Start(arguments.Trim()); 368 | } 369 | 370 | // App-Specific Actions 371 | else if (type == "ADDPATH") 372 | { 373 | FSettings.AppFolders.Add(arguments); 374 | System.IO.File.WriteAllText(ConfigPath, JsonConvert.SerializeObject(FSettings, Formatting.Indented)); // Append path to settings.json 375 | Restart(); 376 | } 377 | else if (type == "REMOVEPATH") 378 | { 379 | FSettings.AppFolders.Remove(arguments); 380 | System.IO.File.WriteAllText(ConfigPath, JsonConvert.SerializeObject(FSettings, Formatting.Indented)); // Append path to settings.json 381 | Restart(); 382 | } 383 | else if (type == "RELOAD") 384 | { 385 | Restart(); // Restart THIS program, not the whole computer - this is why the command is 'reload' not 'restart' 386 | } 387 | 388 | // Customisation Actions 389 | else if (type == "BACKGROUND") 390 | { 391 | string[] Gradients = arguments.Split(' '); // To save the operation being done 4 times on top of the other splits 392 | 393 | if (Gradients[0].Split(':').Length == 2 && Gradients[1].Split(':').Length == 2) 394 | { 395 | 396 | // Colours 397 | ViewModel.G1Col = Gradients[0].Split(':')[0]; 398 | ViewModel.G2Col = Gradients[1].Split(':')[0]; 399 | 400 | 401 | // Offsets 402 | ViewModel.G1Offset = Gradients[0].Split(':')[1]; 403 | ViewModel.G2Offset = Gradients[1].Split(':')[1]; 404 | 405 | 406 | System.IO.File.WriteAllText(StylePath, JsonConvert.SerializeObject(ViewModel, Formatting.Indented)); // Append path to style.json 407 | Restart(); 408 | } 409 | } 410 | else if (type == "OPACITY") 411 | { 412 | ViewModel.Opacity = arguments; 413 | System.IO.File.WriteAllText(StylePath, JsonConvert.SerializeObject(ViewModel, Formatting.Indented)); // Append path to style.json 414 | Restart(); 415 | } 416 | else if (type == "TEXTCOL") 417 | { 418 | ViewModel.TextCol = arguments; 419 | System.IO.File.WriteAllText(StylePath, JsonConvert.SerializeObject(ViewModel, Formatting.Indented)); // Append path to style.json 420 | Restart(); 421 | } 422 | 423 | } 424 | 425 | public void Restart() 426 | { 427 | Process.Start(Application.ResourceAssembly.Location); 428 | Application.Current.Shutdown(); 429 | } 430 | 431 | public string StringArgsToArgs(String arguments, String type) // type = command type, e.g PROCESS, SEARCH, so on. This is given to remove it from _allargs_ param 432 | { 433 | string[] SplitCommand = SplitArgs(CommandTb.Text); // split up args 434 | int index = 1; // 1st arg 435 | string pattern = ""; 436 | 437 | foreach (string arg in SplitCommand) 438 | { 439 | string argnum = "_arg" + index.ToString() + "_"; 440 | pattern = @"\b" + argnum + @"\b"; 441 | arguments = Regex.Replace(arguments, pattern, arg, RegexOptions.IgnoreCase); 442 | index++; 443 | } 444 | 445 | string allargs = @"_allargs_"; 446 | pattern = @"\b" + allargs + @"\b"; 447 | arguments = Regex.Replace(arguments, pattern, CommandTb.Text.Substring(type.Length), RegexOptions.IgnoreCase); 448 | 449 | return arguments; 450 | } 451 | 452 | private void CommandTb_KeyDown(object sender, KeyEventArgs e) 453 | { 454 | ClearOnClick = false; 455 | if (recentLaunch) recentLaunch = false; 456 | else 457 | { 458 | if (e.Key == Key.Enter) // Enter the command, run it 459 | { 460 | RunCommand(CommandTb.Text); 461 | } 462 | else if (e.Key == Key.Tab) 463 | { // Tab to autocomplete word if possible 464 | Autocomplete(); 465 | } 466 | else if (e.Key == Key.Space) 467 | { 468 | changeIcon(); 469 | } 470 | } 471 | } 472 | 473 | private void changeIcon() 474 | { 475 | string[] SplitCommand = SplitArgs(CommandTb.Text); 476 | 477 | if (ValidCommands.ContainsKey(SplitCommand[0].ToLower())) 478 | { 479 | try 480 | { 481 | CommandTypeIcon.Kind = (MahApps.Metro.IconPacks.PackIconMaterialKind)Enum.Parse(typeof(MahApps.Metro.IconPacks.PackIconMaterialKind), ValidCommands[SplitCommand[0].ToLower()].Icon); 482 | // This is ugly, but essentially it converts a string of an icon (e.g "Rocket") to MahApps.Metro.IconPacks.PackIconMaterialKind.Rocket and sets that as the new icon 483 | } 484 | catch (Exception e) { } 485 | } 486 | else if (ProgramPaths.ContainsKey(CommandTb.Text.Trim())) // Startmenu program 487 | { 488 | CommandTypeIcon.Kind = MahApps.Metro.IconPacks.PackIconMaterialKind.ArrowUpCircle; 489 | } 490 | } 491 | 492 | private void CommandTb_TextChanged(object sender, TextChangedEventArgs e) 493 | { 494 | if (!FirstActivation) 495 | { 496 | 497 | string[] SplitCommand = SplitArgs(CommandTb.Text); 498 | 499 | if (!ValidCommands.ContainsKey(SplitCommand[0].ToLower())) 500 | { 501 | CommandTypeIcon.Kind = MahApps.Metro.IconPacks.PackIconMaterialKind.MicrosoftWindows; 502 | } 503 | } 504 | } 505 | 506 | private String[] SplitArgs(String text) 507 | { 508 | Regex regex = new Regex("[ ]{2,}", RegexOptions.None); // Get rid of extra ' ' and replace it with only one space 509 | string command = regex.Replace(text, " "); 510 | String[] SplitCommand = command.Split(' '); // Split cmd args 511 | return SplitCommand; 512 | } 513 | 514 | 515 | protected override void OnSourceInitialized(EventArgs e) 516 | { 517 | base.OnSourceInitialized(e); 518 | var helper = new WindowInteropHelper(this); 519 | _source = HwndSource.FromHwnd(helper.Handle); 520 | _source.AddHook(HwndHook); 521 | RegisterHotKey(); 522 | } 523 | 524 | protected override void OnClosed(EventArgs e) 525 | { 526 | _source.RemoveHook(HwndHook); 527 | _source = null; 528 | UnregisterHotKey(); 529 | base.OnClosed(e); 530 | } 531 | 532 | private void RegisterHotKey() 533 | { 534 | var helper = new WindowInteropHelper(this); 535 | const uint VK_S = 0x53; 536 | const uint MOD_ALT = 0x0001; 537 | if (!RegisterHotKey(helper.Handle, HOTKEY_ID, MOD_ALT, VK_S)) 538 | { 539 | MessageBox.Show("SpotlightX couldn't register hotkey, closing application. Is the app already running?"); 540 | Application.Current.Shutdown(); 541 | } 542 | } 543 | 544 | private void UnregisterHotKey() 545 | { 546 | var helper = new WindowInteropHelper(this); 547 | UnregisterHotKey(helper.Handle, HOTKEY_ID); 548 | } 549 | 550 | private IntPtr HwndHook(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled) 551 | { 552 | const int WM_HOTKEY = 0x0312; 553 | switch (msg) 554 | { 555 | case WM_HOTKEY: 556 | switch (wParam.ToInt32()) 557 | { 558 | case HOTKEY_ID: 559 | OnHotKeyPressed(); 560 | handled = true; 561 | break; 562 | } 563 | break; 564 | } 565 | return IntPtr.Zero; 566 | } 567 | 568 | private void OnHotKeyPressed() 569 | { 570 | this.Show(); 571 | this.Activate(); 572 | CommandTb.Focus(); 573 | } 574 | 575 | } 576 | } 577 | -------------------------------------------------------------------------------- /CleanUI/SpotlightSetup/SpotlightSetup.vdproj: -------------------------------------------------------------------------------- 1 | "DeployProject" 2 | { 3 | "VSVersion" = "3:800" 4 | "ProjectType" = "8:{978C614F-708E-4E1A-B201-565925725DBA}" 5 | "IsWebType" = "8:FALSE" 6 | "ProjectName" = "8:SpotlightSetup" 7 | "LanguageId" = "3:1033" 8 | "CodePage" = "3:1252" 9 | "UILanguageId" = "3:1033" 10 | "SccProjectName" = "8:" 11 | "SccLocalPath" = "8:" 12 | "SccAuxPath" = "8:" 13 | "SccProvider" = "8:" 14 | "Hierarchy" 15 | { 16 | "Entry" 17 | { 18 | "MsmKey" = "8:_04195044684843429A12A161C0BBB617" 19 | "OwnerKey" = "8:_UNDEFINED" 20 | "MsmSig" = "8:_UNDEFINED" 21 | } 22 | "Entry" 23 | { 24 | "MsmKey" = "8:_27087D0834E1734E8290E1F6F6979080" 25 | "OwnerKey" = "8:_C477EEA44F504CC5A38CB203D0C8647F" 26 | "MsmSig" = "8:_UNDEFINED" 27 | } 28 | "Entry" 29 | { 30 | "MsmKey" = "8:_27087D0834E1734E8290E1F6F6979080" 31 | "OwnerKey" = "8:_B51F65581CABBC660F6463A2D55EB348" 32 | "MsmSig" = "8:_UNDEFINED" 33 | } 34 | "Entry" 35 | { 36 | "MsmKey" = "8:_288F74D3091229A2B12ECF2CD50CDCB2" 37 | "OwnerKey" = "8:_C477EEA44F504CC5A38CB203D0C8647F" 38 | "MsmSig" = "8:_UNDEFINED" 39 | } 40 | "Entry" 41 | { 42 | "MsmKey" = "8:_288F74D3091229A2B12ECF2CD50CDCB2" 43 | "OwnerKey" = "8:_27087D0834E1734E8290E1F6F6979080" 44 | "MsmSig" = "8:_UNDEFINED" 45 | } 46 | "Entry" 47 | { 48 | "MsmKey" = "8:_2BB2B491355E686059FE2E3E96FDCF9A" 49 | "OwnerKey" = "8:_C477EEA44F504CC5A38CB203D0C8647F" 50 | "MsmSig" = "8:_UNDEFINED" 51 | } 52 | "Entry" 53 | { 54 | "MsmKey" = "8:_3303F196B2B64D30917B8EDAF459FC29" 55 | "OwnerKey" = "8:_UNDEFINED" 56 | "MsmSig" = "8:_UNDEFINED" 57 | } 58 | "Entry" 59 | { 60 | "MsmKey" = "8:_42E195B63D1083BE452D462724030EEB" 61 | "OwnerKey" = "8:_27087D0834E1734E8290E1F6F6979080" 62 | "MsmSig" = "8:_UNDEFINED" 63 | } 64 | "Entry" 65 | { 66 | "MsmKey" = "8:_42E195B63D1083BE452D462724030EEB" 67 | "OwnerKey" = "8:_C477EEA44F504CC5A38CB203D0C8647F" 68 | "MsmSig" = "8:_UNDEFINED" 69 | } 70 | "Entry" 71 | { 72 | "MsmKey" = "8:_57E290B711B3741C658B76B4E1E9A616" 73 | "OwnerKey" = "8:_C477EEA44F504CC5A38CB203D0C8647F" 74 | "MsmSig" = "8:_UNDEFINED" 75 | } 76 | "Entry" 77 | { 78 | "MsmKey" = "8:_79E25EC8DFD349E79B1D8AC7EF6E7AAC" 79 | "OwnerKey" = "8:_UNDEFINED" 80 | "MsmSig" = "8:_UNDEFINED" 81 | } 82 | "Entry" 83 | { 84 | "MsmKey" = "8:_A2CE2F5E4101D3AC24FC87E0DDC69AAB" 85 | "OwnerKey" = "8:_F1391A4686CAE19509E083505C1857E6" 86 | "MsmSig" = "8:_UNDEFINED" 87 | } 88 | "Entry" 89 | { 90 | "MsmKey" = "8:_A2CE2F5E4101D3AC24FC87E0DDC69AAB" 91 | "OwnerKey" = "8:_BC6604CBE04487344E99776ED0947254" 92 | "MsmSig" = "8:_UNDEFINED" 93 | } 94 | "Entry" 95 | { 96 | "MsmKey" = "8:_A2CE2F5E4101D3AC24FC87E0DDC69AAB" 97 | "OwnerKey" = "8:_C477EEA44F504CC5A38CB203D0C8647F" 98 | "MsmSig" = "8:_UNDEFINED" 99 | } 100 | "Entry" 101 | { 102 | "MsmKey" = "8:_B51F65581CABBC660F6463A2D55EB348" 103 | "OwnerKey" = "8:_C477EEA44F504CC5A38CB203D0C8647F" 104 | "MsmSig" = "8:_UNDEFINED" 105 | } 106 | "Entry" 107 | { 108 | "MsmKey" = "8:_BC6604CBE04487344E99776ED0947254" 109 | "OwnerKey" = "8:_C477EEA44F504CC5A38CB203D0C8647F" 110 | "MsmSig" = "8:_UNDEFINED" 111 | } 112 | "Entry" 113 | { 114 | "MsmKey" = "8:_C1AFFD89AEE2873145E1310A0CE466C9" 115 | "OwnerKey" = "8:_C477EEA44F504CC5A38CB203D0C8647F" 116 | "MsmSig" = "8:_UNDEFINED" 117 | } 118 | "Entry" 119 | { 120 | "MsmKey" = "8:_C477EEA44F504CC5A38CB203D0C8647F" 121 | "OwnerKey" = "8:_UNDEFINED" 122 | "MsmSig" = "8:_UNDEFINED" 123 | } 124 | "Entry" 125 | { 126 | "MsmKey" = "8:_C50692402394C7648B8612E62F8CBDCC" 127 | "OwnerKey" = "8:_57E290B711B3741C658B76B4E1E9A616" 128 | "MsmSig" = "8:_UNDEFINED" 129 | } 130 | "Entry" 131 | { 132 | "MsmKey" = "8:_C50692402394C7648B8612E62F8CBDCC" 133 | "OwnerKey" = "8:_C477EEA44F504CC5A38CB203D0C8647F" 134 | "MsmSig" = "8:_UNDEFINED" 135 | } 136 | "Entry" 137 | { 138 | "MsmKey" = "8:_CFC10DB55C99ED23229120085AB61D0B" 139 | "OwnerKey" = "8:_C477EEA44F504CC5A38CB203D0C8647F" 140 | "MsmSig" = "8:_UNDEFINED" 141 | } 142 | "Entry" 143 | { 144 | "MsmKey" = "8:_D186410576617B25524CF7828876A2DF" 145 | "OwnerKey" = "8:_C477EEA44F504CC5A38CB203D0C8647F" 146 | "MsmSig" = "8:_UNDEFINED" 147 | } 148 | "Entry" 149 | { 150 | "MsmKey" = "8:_E5395F4AD1A5EFA94B0705126ABFDDCC" 151 | "OwnerKey" = "8:_C50692402394C7648B8612E62F8CBDCC" 152 | "MsmSig" = "8:_UNDEFINED" 153 | } 154 | "Entry" 155 | { 156 | "MsmKey" = "8:_E5395F4AD1A5EFA94B0705126ABFDDCC" 157 | "OwnerKey" = "8:_C477EEA44F504CC5A38CB203D0C8647F" 158 | "MsmSig" = "8:_UNDEFINED" 159 | } 160 | "Entry" 161 | { 162 | "MsmKey" = "8:_E5395F4AD1A5EFA94B0705126ABFDDCC" 163 | "OwnerKey" = "8:_27087D0834E1734E8290E1F6F6979080" 164 | "MsmSig" = "8:_UNDEFINED" 165 | } 166 | "Entry" 167 | { 168 | "MsmKey" = "8:_EC4F80E539FD44249DFDFFDDF9880EA3" 169 | "OwnerKey" = "8:_UNDEFINED" 170 | "MsmSig" = "8:_UNDEFINED" 171 | } 172 | "Entry" 173 | { 174 | "MsmKey" = "8:_F1391A4686CAE19509E083505C1857E6" 175 | "OwnerKey" = "8:_C477EEA44F504CC5A38CB203D0C8647F" 176 | "MsmSig" = "8:_UNDEFINED" 177 | } 178 | "Entry" 179 | { 180 | "MsmKey" = "8:_UNDEFINED" 181 | "OwnerKey" = "8:_D186410576617B25524CF7828876A2DF" 182 | "MsmSig" = "8:_UNDEFINED" 183 | } 184 | "Entry" 185 | { 186 | "MsmKey" = "8:_UNDEFINED" 187 | "OwnerKey" = "8:_C477EEA44F504CC5A38CB203D0C8647F" 188 | "MsmSig" = "8:_UNDEFINED" 189 | } 190 | "Entry" 191 | { 192 | "MsmKey" = "8:_UNDEFINED" 193 | "OwnerKey" = "8:_CFC10DB55C99ED23229120085AB61D0B" 194 | "MsmSig" = "8:_UNDEFINED" 195 | } 196 | "Entry" 197 | { 198 | "MsmKey" = "8:_UNDEFINED" 199 | "OwnerKey" = "8:_B51F65581CABBC660F6463A2D55EB348" 200 | "MsmSig" = "8:_UNDEFINED" 201 | } 202 | "Entry" 203 | { 204 | "MsmKey" = "8:_UNDEFINED" 205 | "OwnerKey" = "8:_27087D0834E1734E8290E1F6F6979080" 206 | "MsmSig" = "8:_UNDEFINED" 207 | } 208 | "Entry" 209 | { 210 | "MsmKey" = "8:_UNDEFINED" 211 | "OwnerKey" = "8:_42E195B63D1083BE452D462724030EEB" 212 | "MsmSig" = "8:_UNDEFINED" 213 | } 214 | "Entry" 215 | { 216 | "MsmKey" = "8:_UNDEFINED" 217 | "OwnerKey" = "8:_288F74D3091229A2B12ECF2CD50CDCB2" 218 | "MsmSig" = "8:_UNDEFINED" 219 | } 220 | "Entry" 221 | { 222 | "MsmKey" = "8:_UNDEFINED" 223 | "OwnerKey" = "8:_2BB2B491355E686059FE2E3E96FDCF9A" 224 | "MsmSig" = "8:_UNDEFINED" 225 | } 226 | "Entry" 227 | { 228 | "MsmKey" = "8:_UNDEFINED" 229 | "OwnerKey" = "8:_57E290B711B3741C658B76B4E1E9A616" 230 | "MsmSig" = "8:_UNDEFINED" 231 | } 232 | "Entry" 233 | { 234 | "MsmKey" = "8:_UNDEFINED" 235 | "OwnerKey" = "8:_C50692402394C7648B8612E62F8CBDCC" 236 | "MsmSig" = "8:_UNDEFINED" 237 | } 238 | "Entry" 239 | { 240 | "MsmKey" = "8:_UNDEFINED" 241 | "OwnerKey" = "8:_E5395F4AD1A5EFA94B0705126ABFDDCC" 242 | "MsmSig" = "8:_UNDEFINED" 243 | } 244 | "Entry" 245 | { 246 | "MsmKey" = "8:_UNDEFINED" 247 | "OwnerKey" = "8:_BC6604CBE04487344E99776ED0947254" 248 | "MsmSig" = "8:_UNDEFINED" 249 | } 250 | "Entry" 251 | { 252 | "MsmKey" = "8:_UNDEFINED" 253 | "OwnerKey" = "8:_F1391A4686CAE19509E083505C1857E6" 254 | "MsmSig" = "8:_UNDEFINED" 255 | } 256 | "Entry" 257 | { 258 | "MsmKey" = "8:_UNDEFINED" 259 | "OwnerKey" = "8:_A2CE2F5E4101D3AC24FC87E0DDC69AAB" 260 | "MsmSig" = "8:_UNDEFINED" 261 | } 262 | "Entry" 263 | { 264 | "MsmKey" = "8:_UNDEFINED" 265 | "OwnerKey" = "8:_C1AFFD89AEE2873145E1310A0CE466C9" 266 | "MsmSig" = "8:_UNDEFINED" 267 | } 268 | } 269 | "Configurations" 270 | { 271 | "Debug" 272 | { 273 | "DisplayName" = "8:Debug" 274 | "IsDebugOnly" = "11:TRUE" 275 | "IsReleaseOnly" = "11:FALSE" 276 | "OutputFilename" = "8:Debug\\SpotlightSetup.msi" 277 | "PackageFilesAs" = "3:2" 278 | "PackageFileSize" = "3:-2147483648" 279 | "CabType" = "3:1" 280 | "Compression" = "3:2" 281 | "SignOutput" = "11:FALSE" 282 | "CertificateFile" = "8:" 283 | "PrivateKeyFile" = "8:" 284 | "TimeStampServer" = "8:" 285 | "InstallerBootstrapper" = "3:2" 286 | "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}" 287 | { 288 | "Enabled" = "11:TRUE" 289 | "PromptEnabled" = "11:TRUE" 290 | "PrerequisitesLocation" = "2:1" 291 | "Url" = "8:" 292 | "ComponentsUrl" = "8:" 293 | "Items" 294 | { 295 | "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:.NETFramework,Version=v4.6.1" 296 | { 297 | "Name" = "8:Microsoft .NET Framework 4.6.1 (x86 and x64)" 298 | "ProductCode" = "8:.NETFramework,Version=v4.6.1" 299 | } 300 | } 301 | } 302 | } 303 | "Release" 304 | { 305 | "DisplayName" = "8:Release" 306 | "IsDebugOnly" = "11:FALSE" 307 | "IsReleaseOnly" = "11:TRUE" 308 | "OutputFilename" = "8:Release\\SpotlightSetup.msi" 309 | "PackageFilesAs" = "3:2" 310 | "PackageFileSize" = "3:-2147483648" 311 | "CabType" = "3:1" 312 | "Compression" = "3:2" 313 | "SignOutput" = "11:FALSE" 314 | "CertificateFile" = "8:" 315 | "PrivateKeyFile" = "8:" 316 | "TimeStampServer" = "8:" 317 | "InstallerBootstrapper" = "3:2" 318 | "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}" 319 | { 320 | "Enabled" = "11:TRUE" 321 | "PromptEnabled" = "11:TRUE" 322 | "PrerequisitesLocation" = "2:1" 323 | "Url" = "8:" 324 | "ComponentsUrl" = "8:" 325 | "Items" 326 | { 327 | "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:.NETFramework,Version=v4.6.1" 328 | { 329 | "Name" = "8:Microsoft .NET Framework 4.6.1 (x86 and x64)" 330 | "ProductCode" = "8:.NETFramework,Version=v4.6.1" 331 | } 332 | } 333 | } 334 | } 335 | } 336 | "Deployable" 337 | { 338 | "CustomAction" 339 | { 340 | } 341 | "DefaultFeature" 342 | { 343 | "Name" = "8:DefaultFeature" 344 | "Title" = "8:" 345 | "Description" = "8:" 346 | } 347 | "ExternalPersistence" 348 | { 349 | "LaunchCondition" 350 | { 351 | "{A06ECF26-33A3-4562-8140-9B0E340D4F24}:_5B4E74CDFFBC4A66915DAE6A1A43C61A" 352 | { 353 | "Name" = "8:.NET Framework" 354 | "Message" = "8:[VSDNETMSG]" 355 | "FrameworkVersion" = "8:.NETFramework,Version=v4.6.1" 356 | "AllowLaterVersions" = "11:FALSE" 357 | "InstallUrl" = "8:http://go.microsoft.com/fwlink/?LinkId=671728" 358 | } 359 | } 360 | } 361 | "File" 362 | { 363 | "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_04195044684843429A12A161C0BBB617" 364 | { 365 | "SourcePath" = "8:..\\..\\..\\..\\..\\..\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\SpotlightXConfig\\config\\ms-settings.txt" 366 | "TargetName" = "8:ms-settings.txt" 367 | "Tag" = "8:" 368 | "Folder" = "8:_DD31FB02813B4CC09A7A2E8FA5FFD726" 369 | "Condition" = "8:" 370 | "Transitive" = "11:FALSE" 371 | "Vital" = "11:TRUE" 372 | "ReadOnly" = "11:FALSE" 373 | "Hidden" = "11:FALSE" 374 | "System" = "11:FALSE" 375 | "Permanent" = "11:FALSE" 376 | "SharedLegacy" = "11:FALSE" 377 | "PackageAs" = "3:1" 378 | "Register" = "3:1" 379 | "Exclude" = "11:FALSE" 380 | "IsDependency" = "11:FALSE" 381 | "IsolateTo" = "8:" 382 | } 383 | "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_27087D0834E1734E8290E1F6F6979080" 384 | { 385 | "AssemblyRegister" = "3:1" 386 | "AssemblyIsInGAC" = "11:FALSE" 387 | "AssemblyAsmDisplayName" = "8:System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL" 388 | "ScatterAssemblies" 389 | { 390 | "_27087D0834E1734E8290E1F6F6979080" 391 | { 392 | "Name" = "8:System.Memory.dll" 393 | "Attributes" = "3:512" 394 | } 395 | } 396 | "SourcePath" = "8:System.Memory.dll" 397 | "TargetName" = "8:" 398 | "Tag" = "8:" 399 | "Folder" = "8:_EE3EB1FC9CE641DF97A9DFF649D17D92" 400 | "Condition" = "8:" 401 | "Transitive" = "11:FALSE" 402 | "Vital" = "11:TRUE" 403 | "ReadOnly" = "11:FALSE" 404 | "Hidden" = "11:FALSE" 405 | "System" = "11:FALSE" 406 | "Permanent" = "11:FALSE" 407 | "SharedLegacy" = "11:FALSE" 408 | "PackageAs" = "3:1" 409 | "Register" = "3:1" 410 | "Exclude" = "11:FALSE" 411 | "IsDependency" = "11:TRUE" 412 | "IsolateTo" = "8:" 413 | } 414 | "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_288F74D3091229A2B12ECF2CD50CDCB2" 415 | { 416 | "AssemblyRegister" = "3:1" 417 | "AssemblyIsInGAC" = "11:FALSE" 418 | "AssemblyAsmDisplayName" = "8:System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL" 419 | "ScatterAssemblies" 420 | { 421 | "_288F74D3091229A2B12ECF2CD50CDCB2" 422 | { 423 | "Name" = "8:System.Buffers.dll" 424 | "Attributes" = "3:512" 425 | } 426 | } 427 | "SourcePath" = "8:System.Buffers.dll" 428 | "TargetName" = "8:" 429 | "Tag" = "8:" 430 | "Folder" = "8:_EE3EB1FC9CE641DF97A9DFF649D17D92" 431 | "Condition" = "8:" 432 | "Transitive" = "11:FALSE" 433 | "Vital" = "11:TRUE" 434 | "ReadOnly" = "11:FALSE" 435 | "Hidden" = "11:FALSE" 436 | "System" = "11:FALSE" 437 | "Permanent" = "11:FALSE" 438 | "SharedLegacy" = "11:FALSE" 439 | "PackageAs" = "3:1" 440 | "Register" = "3:1" 441 | "Exclude" = "11:FALSE" 442 | "IsDependency" = "11:TRUE" 443 | "IsolateTo" = "8:" 444 | } 445 | "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_2BB2B491355E686059FE2E3E96FDCF9A" 446 | { 447 | "AssemblyRegister" = "3:1" 448 | "AssemblyIsInGAC" = "11:FALSE" 449 | "AssemblyAsmDisplayName" = "8:Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL" 450 | "ScatterAssemblies" 451 | { 452 | "_2BB2B491355E686059FE2E3E96FDCF9A" 453 | { 454 | "Name" = "8:Newtonsoft.Json.dll" 455 | "Attributes" = "3:512" 456 | } 457 | } 458 | "SourcePath" = "8:Newtonsoft.Json.dll" 459 | "TargetName" = "8:" 460 | "Tag" = "8:" 461 | "Folder" = "8:_EE3EB1FC9CE641DF97A9DFF649D17D92" 462 | "Condition" = "8:" 463 | "Transitive" = "11:FALSE" 464 | "Vital" = "11:TRUE" 465 | "ReadOnly" = "11:FALSE" 466 | "Hidden" = "11:FALSE" 467 | "System" = "11:FALSE" 468 | "Permanent" = "11:FALSE" 469 | "SharedLegacy" = "11:FALSE" 470 | "PackageAs" = "3:1" 471 | "Register" = "3:1" 472 | "Exclude" = "11:FALSE" 473 | "IsDependency" = "11:TRUE" 474 | "IsolateTo" = "8:" 475 | } 476 | "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_3303F196B2B64D30917B8EDAF459FC29" 477 | { 478 | "SourcePath" = "8:..\\CleanUI\\Config\\settings.json" 479 | "TargetName" = "8:settings.json" 480 | "Tag" = "8:" 481 | "Folder" = "8:_DD31FB02813B4CC09A7A2E8FA5FFD726" 482 | "Condition" = "8:" 483 | "Transitive" = "11:FALSE" 484 | "Vital" = "11:TRUE" 485 | "ReadOnly" = "11:FALSE" 486 | "Hidden" = "11:FALSE" 487 | "System" = "11:FALSE" 488 | "Permanent" = "11:FALSE" 489 | "SharedLegacy" = "11:FALSE" 490 | "PackageAs" = "3:1" 491 | "Register" = "3:1" 492 | "Exclude" = "11:FALSE" 493 | "IsDependency" = "11:FALSE" 494 | "IsolateTo" = "8:" 495 | } 496 | "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_42E195B63D1083BE452D462724030EEB" 497 | { 498 | "AssemblyRegister" = "3:1" 499 | "AssemblyIsInGAC" = "11:FALSE" 500 | "AssemblyAsmDisplayName" = "8:System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" 501 | "ScatterAssemblies" 502 | { 503 | "_42E195B63D1083BE452D462724030EEB" 504 | { 505 | "Name" = "8:System.Numerics.Vectors.dll" 506 | "Attributes" = "3:512" 507 | } 508 | } 509 | "SourcePath" = "8:System.Numerics.Vectors.dll" 510 | "TargetName" = "8:" 511 | "Tag" = "8:" 512 | "Folder" = "8:_EE3EB1FC9CE641DF97A9DFF649D17D92" 513 | "Condition" = "8:" 514 | "Transitive" = "11:FALSE" 515 | "Vital" = "11:TRUE" 516 | "ReadOnly" = "11:FALSE" 517 | "Hidden" = "11:FALSE" 518 | "System" = "11:FALSE" 519 | "Permanent" = "11:FALSE" 520 | "SharedLegacy" = "11:FALSE" 521 | "PackageAs" = "3:1" 522 | "Register" = "3:1" 523 | "Exclude" = "11:FALSE" 524 | "IsDependency" = "11:TRUE" 525 | "IsolateTo" = "8:" 526 | } 527 | "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_57E290B711B3741C658B76B4E1E9A616" 528 | { 529 | "AssemblyRegister" = "3:1" 530 | "AssemblyIsInGAC" = "11:FALSE" 531 | "AssemblyAsmDisplayName" = "8:Microsoft.Bcl.AsyncInterfaces, Version=1.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL" 532 | "ScatterAssemblies" 533 | { 534 | "_57E290B711B3741C658B76B4E1E9A616" 535 | { 536 | "Name" = "8:Microsoft.Bcl.AsyncInterfaces.dll" 537 | "Attributes" = "3:512" 538 | } 539 | } 540 | "SourcePath" = "8:Microsoft.Bcl.AsyncInterfaces.dll" 541 | "TargetName" = "8:" 542 | "Tag" = "8:" 543 | "Folder" = "8:_EE3EB1FC9CE641DF97A9DFF649D17D92" 544 | "Condition" = "8:" 545 | "Transitive" = "11:FALSE" 546 | "Vital" = "11:TRUE" 547 | "ReadOnly" = "11:FALSE" 548 | "Hidden" = "11:FALSE" 549 | "System" = "11:FALSE" 550 | "Permanent" = "11:FALSE" 551 | "SharedLegacy" = "11:FALSE" 552 | "PackageAs" = "3:1" 553 | "Register" = "3:1" 554 | "Exclude" = "11:FALSE" 555 | "IsDependency" = "11:TRUE" 556 | "IsolateTo" = "8:" 557 | } 558 | "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_79E25EC8DFD349E79B1D8AC7EF6E7AAC" 559 | { 560 | "SourcePath" = "8:..\\..\\..\\..\\..\\..\\Downloads\\download_UPW_icon.ico" 561 | "TargetName" = "8:download_UPW_icon.ico" 562 | "Tag" = "8:" 563 | "Folder" = "8:_EE3EB1FC9CE641DF97A9DFF649D17D92" 564 | "Condition" = "8:" 565 | "Transitive" = "11:FALSE" 566 | "Vital" = "11:TRUE" 567 | "ReadOnly" = "11:FALSE" 568 | "Hidden" = "11:FALSE" 569 | "System" = "11:FALSE" 570 | "Permanent" = "11:FALSE" 571 | "SharedLegacy" = "11:FALSE" 572 | "PackageAs" = "3:1" 573 | "Register" = "3:1" 574 | "Exclude" = "11:FALSE" 575 | "IsDependency" = "11:FALSE" 576 | "IsolateTo" = "8:" 577 | } 578 | "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_A2CE2F5E4101D3AC24FC87E0DDC69AAB" 579 | { 580 | "AssemblyRegister" = "3:1" 581 | "AssemblyIsInGAC" = "11:FALSE" 582 | "AssemblyAsmDisplayName" = "8:MahApps.Metro.IconPacks.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=0c0d510f9915137a, processorArchitecture=MSIL" 583 | "ScatterAssemblies" 584 | { 585 | "_A2CE2F5E4101D3AC24FC87E0DDC69AAB" 586 | { 587 | "Name" = "8:MahApps.Metro.IconPacks.Core.dll" 588 | "Attributes" = "3:512" 589 | } 590 | } 591 | "SourcePath" = "8:MahApps.Metro.IconPacks.Core.dll" 592 | "TargetName" = "8:" 593 | "Tag" = "8:" 594 | "Folder" = "8:_EE3EB1FC9CE641DF97A9DFF649D17D92" 595 | "Condition" = "8:" 596 | "Transitive" = "11:FALSE" 597 | "Vital" = "11:TRUE" 598 | "ReadOnly" = "11:FALSE" 599 | "Hidden" = "11:FALSE" 600 | "System" = "11:FALSE" 601 | "Permanent" = "11:FALSE" 602 | "SharedLegacy" = "11:FALSE" 603 | "PackageAs" = "3:1" 604 | "Register" = "3:1" 605 | "Exclude" = "11:FALSE" 606 | "IsDependency" = "11:TRUE" 607 | "IsolateTo" = "8:" 608 | } 609 | "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_B51F65581CABBC660F6463A2D55EB348" 610 | { 611 | "AssemblyRegister" = "3:1" 612 | "AssemblyIsInGAC" = "11:FALSE" 613 | "AssemblyAsmDisplayName" = "8:System.Text.Encodings.Web, Version=4.0.5.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL" 614 | "ScatterAssemblies" 615 | { 616 | "_B51F65581CABBC660F6463A2D55EB348" 617 | { 618 | "Name" = "8:System.Text.Encodings.Web.dll" 619 | "Attributes" = "3:512" 620 | } 621 | } 622 | "SourcePath" = "8:System.Text.Encodings.Web.dll" 623 | "TargetName" = "8:" 624 | "Tag" = "8:" 625 | "Folder" = "8:_EE3EB1FC9CE641DF97A9DFF649D17D92" 626 | "Condition" = "8:" 627 | "Transitive" = "11:FALSE" 628 | "Vital" = "11:TRUE" 629 | "ReadOnly" = "11:FALSE" 630 | "Hidden" = "11:FALSE" 631 | "System" = "11:FALSE" 632 | "Permanent" = "11:FALSE" 633 | "SharedLegacy" = "11:FALSE" 634 | "PackageAs" = "3:1" 635 | "Register" = "3:1" 636 | "Exclude" = "11:FALSE" 637 | "IsDependency" = "11:TRUE" 638 | "IsolateTo" = "8:" 639 | } 640 | "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_BC6604CBE04487344E99776ED0947254" 641 | { 642 | "AssemblyRegister" = "3:1" 643 | "AssemblyIsInGAC" = "11:FALSE" 644 | "AssemblyAsmDisplayName" = "8:MahApps.Metro.IconPacks.MaterialLight, Version=4.0.0.0, Culture=neutral, PublicKeyToken=0c0d510f9915137a, processorArchitecture=MSIL" 645 | "ScatterAssemblies" 646 | { 647 | "_BC6604CBE04487344E99776ED0947254" 648 | { 649 | "Name" = "8:MahApps.Metro.IconPacks.MaterialLight.dll" 650 | "Attributes" = "3:512" 651 | } 652 | } 653 | "SourcePath" = "8:MahApps.Metro.IconPacks.MaterialLight.dll" 654 | "TargetName" = "8:" 655 | "Tag" = "8:" 656 | "Folder" = "8:_EE3EB1FC9CE641DF97A9DFF649D17D92" 657 | "Condition" = "8:" 658 | "Transitive" = "11:FALSE" 659 | "Vital" = "11:TRUE" 660 | "ReadOnly" = "11:FALSE" 661 | "Hidden" = "11:FALSE" 662 | "System" = "11:FALSE" 663 | "Permanent" = "11:FALSE" 664 | "SharedLegacy" = "11:FALSE" 665 | "PackageAs" = "3:1" 666 | "Register" = "3:1" 667 | "Exclude" = "11:FALSE" 668 | "IsDependency" = "11:TRUE" 669 | "IsolateTo" = "8:" 670 | } 671 | "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_C1AFFD89AEE2873145E1310A0CE466C9" 672 | { 673 | "AssemblyRegister" = "3:1" 674 | "AssemblyIsInGAC" = "11:FALSE" 675 | "AssemblyAsmDisplayName" = "8:AudioSwitcher.AudioApi, Version=4.0.0.308, Culture=neutral, PublicKeyToken=fda5729e2db3a64f, processorArchitecture=MSIL" 676 | "ScatterAssemblies" 677 | { 678 | "_C1AFFD89AEE2873145E1310A0CE466C9" 679 | { 680 | "Name" = "8:AudioSwitcher.AudioApi.dll" 681 | "Attributes" = "3:512" 682 | } 683 | } 684 | "SourcePath" = "8:AudioSwitcher.AudioApi.dll" 685 | "TargetName" = "8:" 686 | "Tag" = "8:" 687 | "Folder" = "8:_EE3EB1FC9CE641DF97A9DFF649D17D92" 688 | "Condition" = "8:" 689 | "Transitive" = "11:FALSE" 690 | "Vital" = "11:TRUE" 691 | "ReadOnly" = "11:FALSE" 692 | "Hidden" = "11:FALSE" 693 | "System" = "11:FALSE" 694 | "Permanent" = "11:FALSE" 695 | "SharedLegacy" = "11:FALSE" 696 | "PackageAs" = "3:1" 697 | "Register" = "3:1" 698 | "Exclude" = "11:FALSE" 699 | "IsDependency" = "11:TRUE" 700 | "IsolateTo" = "8:" 701 | } 702 | "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_C50692402394C7648B8612E62F8CBDCC" 703 | { 704 | "AssemblyRegister" = "3:1" 705 | "AssemblyIsInGAC" = "11:FALSE" 706 | "AssemblyAsmDisplayName" = "8:System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL" 707 | "ScatterAssemblies" 708 | { 709 | "_C50692402394C7648B8612E62F8CBDCC" 710 | { 711 | "Name" = "8:System.Threading.Tasks.Extensions.dll" 712 | "Attributes" = "3:512" 713 | } 714 | } 715 | "SourcePath" = "8:System.Threading.Tasks.Extensions.dll" 716 | "TargetName" = "8:" 717 | "Tag" = "8:" 718 | "Folder" = "8:_EE3EB1FC9CE641DF97A9DFF649D17D92" 719 | "Condition" = "8:" 720 | "Transitive" = "11:FALSE" 721 | "Vital" = "11:TRUE" 722 | "ReadOnly" = "11:FALSE" 723 | "Hidden" = "11:FALSE" 724 | "System" = "11:FALSE" 725 | "Permanent" = "11:FALSE" 726 | "SharedLegacy" = "11:FALSE" 727 | "PackageAs" = "3:1" 728 | "Register" = "3:1" 729 | "Exclude" = "11:FALSE" 730 | "IsDependency" = "11:TRUE" 731 | "IsolateTo" = "8:" 732 | } 733 | "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_CFC10DB55C99ED23229120085AB61D0B" 734 | { 735 | "AssemblyRegister" = "3:1" 736 | "AssemblyIsInGAC" = "11:FALSE" 737 | "AssemblyAsmDisplayName" = "8:System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL" 738 | "ScatterAssemblies" 739 | { 740 | "_CFC10DB55C99ED23229120085AB61D0B" 741 | { 742 | "Name" = "8:System.ValueTuple.dll" 743 | "Attributes" = "3:512" 744 | } 745 | } 746 | "SourcePath" = "8:System.ValueTuple.dll" 747 | "TargetName" = "8:" 748 | "Tag" = "8:" 749 | "Folder" = "8:_EE3EB1FC9CE641DF97A9DFF649D17D92" 750 | "Condition" = "8:" 751 | "Transitive" = "11:FALSE" 752 | "Vital" = "11:TRUE" 753 | "ReadOnly" = "11:FALSE" 754 | "Hidden" = "11:FALSE" 755 | "System" = "11:FALSE" 756 | "Permanent" = "11:FALSE" 757 | "SharedLegacy" = "11:FALSE" 758 | "PackageAs" = "3:1" 759 | "Register" = "3:1" 760 | "Exclude" = "11:FALSE" 761 | "IsDependency" = "11:TRUE" 762 | "IsolateTo" = "8:" 763 | } 764 | "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_D186410576617B25524CF7828876A2DF" 765 | { 766 | "AssemblyRegister" = "3:1" 767 | "AssemblyIsInGAC" = "11:FALSE" 768 | "AssemblyAsmDisplayName" = "8:System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 769 | "ScatterAssemblies" 770 | { 771 | "_D186410576617B25524CF7828876A2DF" 772 | { 773 | "Name" = "8:System.Net.Http.dll" 774 | "Attributes" = "3:512" 775 | } 776 | } 777 | "SourcePath" = "8:System.Net.Http.dll" 778 | "TargetName" = "8:" 779 | "Tag" = "8:" 780 | "Folder" = "8:_EE3EB1FC9CE641DF97A9DFF649D17D92" 781 | "Condition" = "8:" 782 | "Transitive" = "11:FALSE" 783 | "Vital" = "11:TRUE" 784 | "ReadOnly" = "11:FALSE" 785 | "Hidden" = "11:FALSE" 786 | "System" = "11:FALSE" 787 | "Permanent" = "11:FALSE" 788 | "SharedLegacy" = "11:FALSE" 789 | "PackageAs" = "3:1" 790 | "Register" = "3:1" 791 | "Exclude" = "11:FALSE" 792 | "IsDependency" = "11:TRUE" 793 | "IsolateTo" = "8:" 794 | } 795 | "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_E5395F4AD1A5EFA94B0705126ABFDDCC" 796 | { 797 | "AssemblyRegister" = "3:1" 798 | "AssemblyIsInGAC" = "11:FALSE" 799 | "AssemblyAsmDisplayName" = "8:System.Runtime.CompilerServices.Unsafe, Version=4.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" 800 | "ScatterAssemblies" 801 | { 802 | "_E5395F4AD1A5EFA94B0705126ABFDDCC" 803 | { 804 | "Name" = "8:System.Runtime.CompilerServices.Unsafe.dll" 805 | "Attributes" = "3:512" 806 | } 807 | } 808 | "SourcePath" = "8:System.Runtime.CompilerServices.Unsafe.dll" 809 | "TargetName" = "8:" 810 | "Tag" = "8:" 811 | "Folder" = "8:_EE3EB1FC9CE641DF97A9DFF649D17D92" 812 | "Condition" = "8:" 813 | "Transitive" = "11:FALSE" 814 | "Vital" = "11:TRUE" 815 | "ReadOnly" = "11:FALSE" 816 | "Hidden" = "11:FALSE" 817 | "System" = "11:FALSE" 818 | "Permanent" = "11:FALSE" 819 | "SharedLegacy" = "11:FALSE" 820 | "PackageAs" = "3:1" 821 | "Register" = "3:1" 822 | "Exclude" = "11:FALSE" 823 | "IsDependency" = "11:TRUE" 824 | "IsolateTo" = "8:" 825 | } 826 | "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_EC4F80E539FD44249DFDFFDDF9880EA3" 827 | { 828 | "SourcePath" = "8:..\\CleanUI\\Config\\style.json" 829 | "TargetName" = "8:style.json" 830 | "Tag" = "8:" 831 | "Folder" = "8:_DD31FB02813B4CC09A7A2E8FA5FFD726" 832 | "Condition" = "8:" 833 | "Transitive" = "11:FALSE" 834 | "Vital" = "11:TRUE" 835 | "ReadOnly" = "11:FALSE" 836 | "Hidden" = "11:FALSE" 837 | "System" = "11:FALSE" 838 | "Permanent" = "11:FALSE" 839 | "SharedLegacy" = "11:FALSE" 840 | "PackageAs" = "3:1" 841 | "Register" = "3:1" 842 | "Exclude" = "11:FALSE" 843 | "IsDependency" = "11:FALSE" 844 | "IsolateTo" = "8:" 845 | } 846 | "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_F1391A4686CAE19509E083505C1857E6" 847 | { 848 | "AssemblyRegister" = "3:1" 849 | "AssemblyIsInGAC" = "11:FALSE" 850 | "AssemblyAsmDisplayName" = "8:MahApps.Metro.IconPacks.Material, Version=4.0.0.0, Culture=neutral, PublicKeyToken=0c0d510f9915137a, processorArchitecture=MSIL" 851 | "ScatterAssemblies" 852 | { 853 | "_F1391A4686CAE19509E083505C1857E6" 854 | { 855 | "Name" = "8:MahApps.Metro.IconPacks.Material.dll" 856 | "Attributes" = "3:512" 857 | } 858 | } 859 | "SourcePath" = "8:MahApps.Metro.IconPacks.Material.dll" 860 | "TargetName" = "8:" 861 | "Tag" = "8:" 862 | "Folder" = "8:_EE3EB1FC9CE641DF97A9DFF649D17D92" 863 | "Condition" = "8:" 864 | "Transitive" = "11:FALSE" 865 | "Vital" = "11:TRUE" 866 | "ReadOnly" = "11:FALSE" 867 | "Hidden" = "11:FALSE" 868 | "System" = "11:FALSE" 869 | "Permanent" = "11:FALSE" 870 | "SharedLegacy" = "11:FALSE" 871 | "PackageAs" = "3:1" 872 | "Register" = "3:1" 873 | "Exclude" = "11:FALSE" 874 | "IsDependency" = "11:TRUE" 875 | "IsolateTo" = "8:" 876 | } 877 | } 878 | "FileType" 879 | { 880 | } 881 | "Folder" 882 | { 883 | "{1525181F-901A-416C-8A58-119130FE478E}:_2B449CE8C5B247DFAE82C4CF3C872311" 884 | { 885 | "Name" = "8:#1921" 886 | "AlwaysCreate" = "11:FALSE" 887 | "Condition" = "8:" 888 | "Transitive" = "11:FALSE" 889 | "Property" = "8:StartMenuFolder" 890 | "Folders" 891 | { 892 | "{9EF0B969-E518-4E46-987F-47570745A589}:_D4C0EDA6F34249D5973284C18AF17128" 893 | { 894 | "Name" = "8:SpotlightXConfig" 895 | "AlwaysCreate" = "11:TRUE" 896 | "Condition" = "8:" 897 | "Transitive" = "11:FALSE" 898 | "Property" = "8:_14B32BD204104DC6B7BA8C0F95246C26" 899 | "Folders" 900 | { 901 | "{9EF0B969-E518-4E46-987F-47570745A589}:_DD31FB02813B4CC09A7A2E8FA5FFD726" 902 | { 903 | "Name" = "8:config" 904 | "AlwaysCreate" = "11:TRUE" 905 | "Condition" = "8:" 906 | "Transitive" = "11:FALSE" 907 | "Property" = "8:_BF78B920E2B3469884767BF5CB6F2B63" 908 | "Folders" 909 | { 910 | } 911 | } 912 | } 913 | } 914 | } 915 | } 916 | "{1525181F-901A-416C-8A58-119130FE478E}:_3C58CC0962F9435FA1EE5C5ABB7E3A2A" 917 | { 918 | "Name" = "8:#1928" 919 | "AlwaysCreate" = "11:FALSE" 920 | "Condition" = "8:" 921 | "Transitive" = "11:FALSE" 922 | "Property" = "8:StartupFolder" 923 | "Folders" 924 | { 925 | } 926 | } 927 | "{1525181F-901A-416C-8A58-119130FE478E}:_BEFDD638C79540BF9505952396103881" 928 | { 929 | "Name" = "8:#1916" 930 | "AlwaysCreate" = "11:FALSE" 931 | "Condition" = "8:" 932 | "Transitive" = "11:FALSE" 933 | "Property" = "8:DesktopFolder" 934 | "Folders" 935 | { 936 | } 937 | } 938 | "{3C67513D-01DD-4637-8A68-80971EB9504F}:_EE3EB1FC9CE641DF97A9DFF649D17D92" 939 | { 940 | "DefaultLocation" = "8:[ProgramFilesFolder][Manufacturer]\\[ProductName]" 941 | "Name" = "8:#1925" 942 | "AlwaysCreate" = "11:FALSE" 943 | "Condition" = "8:" 944 | "Transitive" = "11:FALSE" 945 | "Property" = "8:TARGETDIR" 946 | "Folders" 947 | { 948 | } 949 | } 950 | "{1525181F-901A-416C-8A58-119130FE478E}:_FFD0D6077DD4426B9C029D0FB2352CD0" 951 | { 952 | "Name" = "8:#1919" 953 | "AlwaysCreate" = "11:FALSE" 954 | "Condition" = "8:" 955 | "Transitive" = "11:FALSE" 956 | "Property" = "8:ProgramMenuFolder" 957 | "Folders" 958 | { 959 | } 960 | } 961 | } 962 | "LaunchCondition" 963 | { 964 | } 965 | "Locator" 966 | { 967 | } 968 | "MsiBootstrapper" 969 | { 970 | "LangId" = "3:1033" 971 | "RequiresElevation" = "11:FALSE" 972 | } 973 | "Product" 974 | { 975 | "Name" = "8:Microsoft Visual Studio" 976 | "ProductName" = "8:SpotlightX" 977 | "ProductCode" = "8:{39235695-08E0-46EE-8654-F469495F073E}" 978 | "PackageCode" = "8:{B657892B-0320-4A7B-B8C3-8B5DBEF0BF33}" 979 | "UpgradeCode" = "8:{F094CBE2-970B-436A-ABCF-971A9E5F5CED}" 980 | "AspNetVersion" = "8:4.0.30319.0" 981 | "RestartWWWService" = "11:FALSE" 982 | "RemovePreviousVersions" = "11:TRUE" 983 | "DetectNewerInstalledVersion" = "11:TRUE" 984 | "InstallAllUsers" = "11:FALSE" 985 | "ProductVersion" = "8:0.0.1" 986 | "Manufacturer" = "8:SpotlightX" 987 | "ARPHELPTELEPHONE" = "8:" 988 | "ARPHELPLINK" = "8:" 989 | "Title" = "8:SpotlightXSetup" 990 | "Subject" = "8:" 991 | "ARPCONTACT" = "8:Torin Felton (github.com/TorinFelton)" 992 | "Keywords" = "8:" 993 | "ARPCOMMENTS" = "8:SpotlightX is a simple search bar for Windows 10." 994 | "ARPURLINFOABOUT" = "8:github.com/TorinFelton/SpotlightX" 995 | "ARPPRODUCTICON" = "8:_79E25EC8DFD349E79B1D8AC7EF6E7AAC" 996 | "ARPIconIndex" = "3:0" 997 | "SearchPath" = "8:" 998 | "UseSystemSearchPath" = "11:TRUE" 999 | "TargetPlatform" = "3:0" 1000 | "PreBuildEvent" = "8:" 1001 | "PostBuildEvent" = "8:" 1002 | "RunPostBuildEvent" = "3:0" 1003 | } 1004 | "Registry" 1005 | { 1006 | "HKLM" 1007 | { 1008 | "Keys" 1009 | { 1010 | "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_EC67D8CB25F5425695467D6B1EA9AC9A" 1011 | { 1012 | "Name" = "8:Software" 1013 | "Condition" = "8:" 1014 | "AlwaysCreate" = "11:FALSE" 1015 | "DeleteAtUninstall" = "11:FALSE" 1016 | "Transitive" = "11:FALSE" 1017 | "Keys" 1018 | { 1019 | "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_3AB40697EFDB4F509F7420F4ADA138C3" 1020 | { 1021 | "Name" = "8:[Manufacturer]" 1022 | "Condition" = "8:" 1023 | "AlwaysCreate" = "11:FALSE" 1024 | "DeleteAtUninstall" = "11:FALSE" 1025 | "Transitive" = "11:FALSE" 1026 | "Keys" 1027 | { 1028 | } 1029 | "Values" 1030 | { 1031 | } 1032 | } 1033 | } 1034 | "Values" 1035 | { 1036 | } 1037 | } 1038 | } 1039 | } 1040 | "HKCU" 1041 | { 1042 | "Keys" 1043 | { 1044 | "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_B95AEA3C16874BA2A95AD9E2B338B150" 1045 | { 1046 | "Name" = "8:Software" 1047 | "Condition" = "8:" 1048 | "AlwaysCreate" = "11:FALSE" 1049 | "DeleteAtUninstall" = "11:FALSE" 1050 | "Transitive" = "11:FALSE" 1051 | "Keys" 1052 | { 1053 | "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_E93EC30CD3E34B4DAF9D35DDDDC80CCA" 1054 | { 1055 | "Name" = "8:[Manufacturer]" 1056 | "Condition" = "8:" 1057 | "AlwaysCreate" = "11:FALSE" 1058 | "DeleteAtUninstall" = "11:FALSE" 1059 | "Transitive" = "11:FALSE" 1060 | "Keys" 1061 | { 1062 | } 1063 | "Values" 1064 | { 1065 | } 1066 | } 1067 | } 1068 | "Values" 1069 | { 1070 | } 1071 | } 1072 | } 1073 | } 1074 | "HKCR" 1075 | { 1076 | "Keys" 1077 | { 1078 | } 1079 | } 1080 | "HKU" 1081 | { 1082 | "Keys" 1083 | { 1084 | } 1085 | } 1086 | "HKPU" 1087 | { 1088 | "Keys" 1089 | { 1090 | } 1091 | } 1092 | } 1093 | "Sequences" 1094 | { 1095 | } 1096 | "Shortcut" 1097 | { 1098 | "{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_208E6A9D276C4BAE9202CF67EA0F4FD4" 1099 | { 1100 | "Name" = "8:SpotlightX" 1101 | "Arguments" = "8:" 1102 | "Description" = "8:" 1103 | "ShowCmd" = "3:1" 1104 | "IconIndex" = "3:0" 1105 | "Transitive" = "11:FALSE" 1106 | "Target" = "8:_C477EEA44F504CC5A38CB203D0C8647F" 1107 | "Folder" = "8:_3C58CC0962F9435FA1EE5C5ABB7E3A2A" 1108 | "WorkingFolder" = "8:_EE3EB1FC9CE641DF97A9DFF649D17D92" 1109 | "Icon" = "8:_79E25EC8DFD349E79B1D8AC7EF6E7AAC" 1110 | "Feature" = "8:" 1111 | } 1112 | "{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_FE82D87D61724065AC320CCA7A763D79" 1113 | { 1114 | "Name" = "8:SpotlightX" 1115 | "Arguments" = "8:" 1116 | "Description" = "8:" 1117 | "ShowCmd" = "3:1" 1118 | "IconIndex" = "3:0" 1119 | "Transitive" = "11:FALSE" 1120 | "Target" = "8:_C477EEA44F504CC5A38CB203D0C8647F" 1121 | "Folder" = "8:_FFD0D6077DD4426B9C029D0FB2352CD0" 1122 | "WorkingFolder" = "8:_EE3EB1FC9CE641DF97A9DFF649D17D92" 1123 | "Icon" = "8:_79E25EC8DFD349E79B1D8AC7EF6E7AAC" 1124 | "Feature" = "8:" 1125 | } 1126 | } 1127 | "UserInterface" 1128 | { 1129 | "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_371943059C064DD58B0B4788CF7B5AC8" 1130 | { 1131 | "Name" = "8:#1902" 1132 | "Sequence" = "3:1" 1133 | "Attributes" = "3:3" 1134 | "Dialogs" 1135 | { 1136 | "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_936C10CD1FFB4CD18679DCD07247A081" 1137 | { 1138 | "Sequence" = "3:100" 1139 | "DisplayName" = "8:Finished" 1140 | "UseDynamicProperties" = "11:TRUE" 1141 | "IsDependency" = "11:FALSE" 1142 | "SourcePath" = "8:\\VsdFinishedDlg.wid" 1143 | "Properties" 1144 | { 1145 | "BannerBitmap" 1146 | { 1147 | "Name" = "8:BannerBitmap" 1148 | "DisplayName" = "8:#1001" 1149 | "Description" = "8:#1101" 1150 | "Type" = "3:8" 1151 | "ContextData" = "8:Bitmap" 1152 | "Attributes" = "3:4" 1153 | "Setting" = "3:1" 1154 | "UsePlugInResources" = "11:TRUE" 1155 | } 1156 | "UpdateText" 1157 | { 1158 | "Name" = "8:UpdateText" 1159 | "DisplayName" = "8:#1058" 1160 | "Description" = "8:#1158" 1161 | "Type" = "3:15" 1162 | "ContextData" = "8:" 1163 | "Attributes" = "3:0" 1164 | "Setting" = "3:1" 1165 | "Value" = "8:#1258" 1166 | "DefaultValue" = "8:#1258" 1167 | "UsePlugInResources" = "11:TRUE" 1168 | } 1169 | } 1170 | } 1171 | } 1172 | } 1173 | "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_62BCBB5EC9B64CEFAA7B6A90CF395F18" 1174 | { 1175 | "Name" = "8:#1900" 1176 | "Sequence" = "3:1" 1177 | "Attributes" = "3:1" 1178 | "Dialogs" 1179 | { 1180 | "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_11866648D5B74AE7BD08A92938FFD72F" 1181 | { 1182 | "Sequence" = "3:300" 1183 | "DisplayName" = "8:Confirm Installation" 1184 | "UseDynamicProperties" = "11:TRUE" 1185 | "IsDependency" = "11:FALSE" 1186 | "SourcePath" = "8:\\VsdConfirmDlg.wid" 1187 | "Properties" 1188 | { 1189 | "BannerBitmap" 1190 | { 1191 | "Name" = "8:BannerBitmap" 1192 | "DisplayName" = "8:#1001" 1193 | "Description" = "8:#1101" 1194 | "Type" = "3:8" 1195 | "ContextData" = "8:Bitmap" 1196 | "Attributes" = "3:4" 1197 | "Setting" = "3:1" 1198 | "UsePlugInResources" = "11:TRUE" 1199 | } 1200 | } 1201 | } 1202 | "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_3AB3476509B7423DACFA5E0B1EDF3D9B" 1203 | { 1204 | "Sequence" = "3:200" 1205 | "DisplayName" = "8:Installation Folder" 1206 | "UseDynamicProperties" = "11:TRUE" 1207 | "IsDependency" = "11:FALSE" 1208 | "SourcePath" = "8:\\VsdFolderDlg.wid" 1209 | "Properties" 1210 | { 1211 | "BannerBitmap" 1212 | { 1213 | "Name" = "8:BannerBitmap" 1214 | "DisplayName" = "8:#1001" 1215 | "Description" = "8:#1101" 1216 | "Type" = "3:8" 1217 | "ContextData" = "8:Bitmap" 1218 | "Attributes" = "3:4" 1219 | "Setting" = "3:1" 1220 | "UsePlugInResources" = "11:TRUE" 1221 | } 1222 | "InstallAllUsersVisible" 1223 | { 1224 | "Name" = "8:InstallAllUsersVisible" 1225 | "DisplayName" = "8:#1059" 1226 | "Description" = "8:#1159" 1227 | "Type" = "3:5" 1228 | "ContextData" = "8:1;True=1;False=0" 1229 | "Attributes" = "3:0" 1230 | "Setting" = "3:0" 1231 | "Value" = "3:1" 1232 | "DefaultValue" = "3:1" 1233 | "UsePlugInResources" = "11:TRUE" 1234 | } 1235 | } 1236 | } 1237 | "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_6100EFE49BCD4C288B72B4743C10179E" 1238 | { 1239 | "Sequence" = "3:100" 1240 | "DisplayName" = "8:Welcome" 1241 | "UseDynamicProperties" = "11:TRUE" 1242 | "IsDependency" = "11:FALSE" 1243 | "SourcePath" = "8:\\VsdWelcomeDlg.wid" 1244 | "Properties" 1245 | { 1246 | "BannerBitmap" 1247 | { 1248 | "Name" = "8:BannerBitmap" 1249 | "DisplayName" = "8:#1001" 1250 | "Description" = "8:#1101" 1251 | "Type" = "3:8" 1252 | "ContextData" = "8:Bitmap" 1253 | "Attributes" = "3:4" 1254 | "Setting" = "3:1" 1255 | "UsePlugInResources" = "11:TRUE" 1256 | } 1257 | "CopyrightWarning" 1258 | { 1259 | "Name" = "8:CopyrightWarning" 1260 | "DisplayName" = "8:#1002" 1261 | "Description" = "8:#1102" 1262 | "Type" = "3:3" 1263 | "ContextData" = "8:" 1264 | "Attributes" = "3:0" 1265 | "Setting" = "3:1" 1266 | "Value" = "8:#1202" 1267 | "DefaultValue" = "8:#1202" 1268 | "UsePlugInResources" = "11:TRUE" 1269 | } 1270 | "Welcome" 1271 | { 1272 | "Name" = "8:Welcome" 1273 | "DisplayName" = "8:#1003" 1274 | "Description" = "8:#1103" 1275 | "Type" = "3:3" 1276 | "ContextData" = "8:" 1277 | "Attributes" = "3:0" 1278 | "Setting" = "3:1" 1279 | "Value" = "8:#1203" 1280 | "DefaultValue" = "8:#1203" 1281 | "UsePlugInResources" = "11:TRUE" 1282 | } 1283 | } 1284 | } 1285 | } 1286 | } 1287 | "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_66BC7A761A1A41E3B558813989BD01EF" 1288 | { 1289 | "UseDynamicProperties" = "11:FALSE" 1290 | "IsDependency" = "11:FALSE" 1291 | "SourcePath" = "8:\\VsdUserInterface.wim" 1292 | } 1293 | "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_66F8073F5C5A443EA78588C6532A6723" 1294 | { 1295 | "Name" = "8:#1901" 1296 | "Sequence" = "3:2" 1297 | "Attributes" = "3:2" 1298 | "Dialogs" 1299 | { 1300 | "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_81B783FB5F674ECD8913F111B223255C" 1301 | { 1302 | "Sequence" = "3:100" 1303 | "DisplayName" = "8:Progress" 1304 | "UseDynamicProperties" = "11:TRUE" 1305 | "IsDependency" = "11:FALSE" 1306 | "SourcePath" = "8:\\VsdAdminProgressDlg.wid" 1307 | "Properties" 1308 | { 1309 | "BannerBitmap" 1310 | { 1311 | "Name" = "8:BannerBitmap" 1312 | "DisplayName" = "8:#1001" 1313 | "Description" = "8:#1101" 1314 | "Type" = "3:8" 1315 | "ContextData" = "8:Bitmap" 1316 | "Attributes" = "3:4" 1317 | "Setting" = "3:1" 1318 | "UsePlugInResources" = "11:TRUE" 1319 | } 1320 | "ShowProgress" 1321 | { 1322 | "Name" = "8:ShowProgress" 1323 | "DisplayName" = "8:#1009" 1324 | "Description" = "8:#1109" 1325 | "Type" = "3:5" 1326 | "ContextData" = "8:1;True=1;False=0" 1327 | "Attributes" = "3:0" 1328 | "Setting" = "3:0" 1329 | "Value" = "3:1" 1330 | "DefaultValue" = "3:1" 1331 | "UsePlugInResources" = "11:TRUE" 1332 | } 1333 | } 1334 | } 1335 | } 1336 | } 1337 | "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_7501FB13BC634FEC9432E0FF6AB425DD" 1338 | { 1339 | "Name" = "8:#1901" 1340 | "Sequence" = "3:1" 1341 | "Attributes" = "3:2" 1342 | "Dialogs" 1343 | { 1344 | "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_9E71A215C7754F2583C6599B9D7CFD5F" 1345 | { 1346 | "Sequence" = "3:100" 1347 | "DisplayName" = "8:Progress" 1348 | "UseDynamicProperties" = "11:TRUE" 1349 | "IsDependency" = "11:FALSE" 1350 | "SourcePath" = "8:\\VsdProgressDlg.wid" 1351 | "Properties" 1352 | { 1353 | "BannerBitmap" 1354 | { 1355 | "Name" = "8:BannerBitmap" 1356 | "DisplayName" = "8:#1001" 1357 | "Description" = "8:#1101" 1358 | "Type" = "3:8" 1359 | "ContextData" = "8:Bitmap" 1360 | "Attributes" = "3:4" 1361 | "Setting" = "3:1" 1362 | "UsePlugInResources" = "11:TRUE" 1363 | } 1364 | "ShowProgress" 1365 | { 1366 | "Name" = "8:ShowProgress" 1367 | "DisplayName" = "8:#1009" 1368 | "Description" = "8:#1109" 1369 | "Type" = "3:5" 1370 | "ContextData" = "8:1;True=1;False=0" 1371 | "Attributes" = "3:0" 1372 | "Setting" = "3:0" 1373 | "Value" = "3:1" 1374 | "DefaultValue" = "3:1" 1375 | "UsePlugInResources" = "11:TRUE" 1376 | } 1377 | } 1378 | } 1379 | } 1380 | } 1381 | "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_82D8DC5D23654920A191BB4F11545C38" 1382 | { 1383 | "UseDynamicProperties" = "11:FALSE" 1384 | "IsDependency" = "11:FALSE" 1385 | "SourcePath" = "8:\\VsdBasicDialogs.wim" 1386 | } 1387 | "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_D297B0C45A694CA4A17366012DA415CE" 1388 | { 1389 | "Name" = "8:#1900" 1390 | "Sequence" = "3:2" 1391 | "Attributes" = "3:1" 1392 | "Dialogs" 1393 | { 1394 | "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_2AA083618F674E1989F404363B03144C" 1395 | { 1396 | "Sequence" = "3:200" 1397 | "DisplayName" = "8:Installation Folder" 1398 | "UseDynamicProperties" = "11:TRUE" 1399 | "IsDependency" = "11:FALSE" 1400 | "SourcePath" = "8:\\VsdAdminFolderDlg.wid" 1401 | "Properties" 1402 | { 1403 | "BannerBitmap" 1404 | { 1405 | "Name" = "8:BannerBitmap" 1406 | "DisplayName" = "8:#1001" 1407 | "Description" = "8:#1101" 1408 | "Type" = "3:8" 1409 | "ContextData" = "8:Bitmap" 1410 | "Attributes" = "3:4" 1411 | "Setting" = "3:1" 1412 | "UsePlugInResources" = "11:TRUE" 1413 | } 1414 | } 1415 | } 1416 | "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_82BFB6689B824D4A9192D39EE09D29C7" 1417 | { 1418 | "Sequence" = "3:100" 1419 | "DisplayName" = "8:Welcome" 1420 | "UseDynamicProperties" = "11:TRUE" 1421 | "IsDependency" = "11:FALSE" 1422 | "SourcePath" = "8:\\VsdAdminWelcomeDlg.wid" 1423 | "Properties" 1424 | { 1425 | "BannerBitmap" 1426 | { 1427 | "Name" = "8:BannerBitmap" 1428 | "DisplayName" = "8:#1001" 1429 | "Description" = "8:#1101" 1430 | "Type" = "3:8" 1431 | "ContextData" = "8:Bitmap" 1432 | "Attributes" = "3:4" 1433 | "Setting" = "3:1" 1434 | "UsePlugInResources" = "11:TRUE" 1435 | } 1436 | "CopyrightWarning" 1437 | { 1438 | "Name" = "8:CopyrightWarning" 1439 | "DisplayName" = "8:#1002" 1440 | "Description" = "8:#1102" 1441 | "Type" = "3:3" 1442 | "ContextData" = "8:" 1443 | "Attributes" = "3:0" 1444 | "Setting" = "3:1" 1445 | "Value" = "8:#1202" 1446 | "DefaultValue" = "8:#1202" 1447 | "UsePlugInResources" = "11:TRUE" 1448 | } 1449 | "Welcome" 1450 | { 1451 | "Name" = "8:Welcome" 1452 | "DisplayName" = "8:#1003" 1453 | "Description" = "8:#1103" 1454 | "Type" = "3:3" 1455 | "ContextData" = "8:" 1456 | "Attributes" = "3:0" 1457 | "Setting" = "3:1" 1458 | "Value" = "8:#1203" 1459 | "DefaultValue" = "8:#1203" 1460 | "UsePlugInResources" = "11:TRUE" 1461 | } 1462 | } 1463 | } 1464 | "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_C34B50BCCA2D4D59B813E0E1737BFD14" 1465 | { 1466 | "Sequence" = "3:300" 1467 | "DisplayName" = "8:Confirm Installation" 1468 | "UseDynamicProperties" = "11:TRUE" 1469 | "IsDependency" = "11:FALSE" 1470 | "SourcePath" = "8:\\VsdAdminConfirmDlg.wid" 1471 | "Properties" 1472 | { 1473 | "BannerBitmap" 1474 | { 1475 | "Name" = "8:BannerBitmap" 1476 | "DisplayName" = "8:#1001" 1477 | "Description" = "8:#1101" 1478 | "Type" = "3:8" 1479 | "ContextData" = "8:Bitmap" 1480 | "Attributes" = "3:4" 1481 | "Setting" = "3:1" 1482 | "UsePlugInResources" = "11:TRUE" 1483 | } 1484 | } 1485 | } 1486 | } 1487 | } 1488 | "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_EB9A5413304E4217BF73CA4F2A2722E8" 1489 | { 1490 | "Name" = "8:#1902" 1491 | "Sequence" = "3:2" 1492 | "Attributes" = "3:3" 1493 | "Dialogs" 1494 | { 1495 | "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_C4EF9CA087054E00AC37304BBC745FB9" 1496 | { 1497 | "Sequence" = "3:100" 1498 | "DisplayName" = "8:Finished" 1499 | "UseDynamicProperties" = "11:TRUE" 1500 | "IsDependency" = "11:FALSE" 1501 | "SourcePath" = "8:\\VsdAdminFinishedDlg.wid" 1502 | "Properties" 1503 | { 1504 | "BannerBitmap" 1505 | { 1506 | "Name" = "8:BannerBitmap" 1507 | "DisplayName" = "8:#1001" 1508 | "Description" = "8:#1101" 1509 | "Type" = "3:8" 1510 | "ContextData" = "8:Bitmap" 1511 | "Attributes" = "3:4" 1512 | "Setting" = "3:1" 1513 | "UsePlugInResources" = "11:TRUE" 1514 | } 1515 | } 1516 | } 1517 | } 1518 | } 1519 | } 1520 | "MergeModule" 1521 | { 1522 | } 1523 | "ProjectOutput" 1524 | { 1525 | "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_C477EEA44F504CC5A38CB203D0C8647F" 1526 | { 1527 | "SourcePath" = "8:..\\CleanUI\\obj\\Release\\CleanUI.exe" 1528 | "TargetName" = "8:" 1529 | "Tag" = "8:" 1530 | "Folder" = "8:_EE3EB1FC9CE641DF97A9DFF649D17D92" 1531 | "Condition" = "8:" 1532 | "Transitive" = "11:FALSE" 1533 | "Vital" = "11:TRUE" 1534 | "ReadOnly" = "11:FALSE" 1535 | "Hidden" = "11:FALSE" 1536 | "System" = "11:FALSE" 1537 | "Permanent" = "11:FALSE" 1538 | "SharedLegacy" = "11:FALSE" 1539 | "PackageAs" = "3:1" 1540 | "Register" = "3:1" 1541 | "Exclude" = "11:FALSE" 1542 | "IsDependency" = "11:FALSE" 1543 | "IsolateTo" = "8:" 1544 | "ProjectOutputGroupRegister" = "3:1" 1545 | "OutputConfiguration" = "8:Release|Any CPU" 1546 | "OutputGroupCanonicalName" = "8:Built" 1547 | "OutputProjectGuid" = "8:{95B8F9EE-B888-4223-8840-F5C7D176BDA2}" 1548 | "ShowKeyOutput" = "11:TRUE" 1549 | "ExcludeFilters" 1550 | { 1551 | } 1552 | } 1553 | } 1554 | } 1555 | } 1556 | --------------------------------------------------------------------------------