Commit 2024.5.13

This commit is contained in:
Belim 2024-05-13 14:15:19 +02:00
parent b12c13cca6
commit 62332cecef
36 changed files with 2669 additions and 1198 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 429 KiB

After

Width:  |  Height:  |  Size: 222 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 211 KiB

View File

@ -46,15 +46,23 @@ namespace Winpilot
");
string formattedMessage = $"<div style='color:{ColorToHex(color)}'><strong>{message}</strong></div>";
// Replace URLs with clickable links
formattedMessage = System.Text.RegularExpressions.Regex.Replace(formattedMessage, @"(https?://\S+)", "<strong><a href=\"$1\" target=\"_blank\">$1</a></strong>");
webView.CoreWebView2.PostWebMessageAsString(formattedMessage);
// Replace URLs with clickable links
formattedMessage = System.Text.RegularExpressions.Regex.Replace(formattedMessage,
@"<strong>(.*?)(https?://\S+)(.*?)</strong>",
match =>
{
string beforeUrl = match.Groups[1].Value; // Capture text before URL
string url = match.Groups[2].Value; // Capture URL
string afterUrl = match.Groups[3].Value; // Capture text after URL
return $"<strong>{beforeUrl}<a href=\"{url}\" target=\"_blank\">{url}</a>{afterUrl}</strong>";
});
webView.CoreWebView2.PostWebMessageAsString(formattedMessage);
// Some JS to append formatted message to logContainer
await webView.ExecuteScriptAsync($"document.getElementById('logContainer').innerHTML += '{formattedMessage}';");
// Ensure log container is visible
await webView.ExecuteScriptAsync("document.getElementById('logContainer').style.display = 'block';");

View File

@ -61,7 +61,7 @@ namespace Interop
// Keywords for non-Microsoft apps
string[] nonMicrosoftKeywords = { "Netflix", "Instagram", "Spotify", "Twitter", "WhatsApp",
"HP", "TikTok", "Adobe", "Asana", "Google", "Facebook", "Messenger",
"AD2F1837", "HP", "TikTok", "Adobe", "Asana", "Google", "Facebook", "Messenger",
"Candy", "Disney", "Dolby", "Duolingo", "Eclipse", "Fitbit", "Flipboard", "Fresh",
"Gameloft", "Gears", "Hulu", "Google", "iHeartRadio", "iTunes", "Khan", "King",
"Lenovo", "Minecraft", "Netflix", "NordVPN", "Norton", "Opera", "Pandora",
@ -207,74 +207,31 @@ namespace Interop
foreach (var package in group)
{
// Individual toggle switch with new class 'custom-toggle-switch'
htmlBuilder.AppendLine("<div class=\"custom-toggle-switch\">");
// Individual toggle switch with new class 'package-toggle-switch'
htmlBuilder.AppendLine("<div class=\"package-toggle-switch\">");
htmlBuilder.AppendLine($"<input type=\"checkbox\" id=\"{package}\" onchange=\"updateSelectedPackages('{package}')\">");
htmlBuilder.AppendLine($"<label for=\"{package}\">{package}</label>");
htmlBuilder.AppendLine("</div>");
}
// Close the grid container and group container
// Close grid container and group container
htmlBuilder.AppendLine("</div>"); // End of toggle-switch-grid
htmlBuilder.AppendLine("</div>"); // End of package-group
}
// Close the main container
// Close main container
htmlBuilder.AppendLine("</div>");
// CSS styles for the toggle switches
htmlBuilder.AppendLine("<style>");
htmlBuilder.AppendLine(".package-group {");
htmlBuilder.AppendLine(" margin-bottom: 20px;");
htmlBuilder.AppendLine("}");
htmlBuilder.AppendLine(".package-group h2 {");
htmlBuilder.AppendLine(" font-size: 24px;");
htmlBuilder.AppendLine(" color: #333;");
htmlBuilder.AppendLine(" margin-bottom: 10px;");
htmlBuilder.AppendLine("}");
htmlBuilder.AppendLine(".toggle-switch-grid {");
htmlBuilder.AppendLine(" display: grid;");
htmlBuilder.AppendLine(" grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));"); // Automatic sizing
htmlBuilder.AppendLine(" grid-gap: 10px;");
htmlBuilder.AppendLine("}");
htmlBuilder.AppendLine(".custom-toggle-switch {"); // Specific styling for custom toggle switches
htmlBuilder.AppendLine(" display: flex;");
htmlBuilder.AppendLine(" align-items: center;");
htmlBuilder.AppendLine("}");
htmlBuilder.AppendLine(".custom-toggle-switch input {");
htmlBuilder.AppendLine(" display: none;");
htmlBuilder.AppendLine("}");
htmlBuilder.AppendLine(".custom-toggle-switch label {");
htmlBuilder.AppendLine(" cursor: pointer;");
htmlBuilder.AppendLine(" background-color: #ccc;");
htmlBuilder.AppendLine(" border-radius: 10px;");
htmlBuilder.AppendLine(" padding: 8px 12px;");
htmlBuilder.AppendLine("}");
htmlBuilder.AppendLine(".custom-toggle-switch input:checked + label {");
htmlBuilder.AppendLine(" background-color: #4CAF50;");
htmlBuilder.AppendLine(" color: #fff;");
htmlBuilder.AppendLine("}");
htmlBuilder.AppendLine("</style>");
// JavaScript functions for updating and removing selected packages
// JS functions for updating and removing selected packages
htmlBuilder.AppendLine("<script>");
htmlBuilder.AppendLine("var selectedPackages = [];");
htmlBuilder.AppendLine("function updateSelectedPackages(packageFamilyName) {");
htmlBuilder.AppendLine("var index = selectedPackages.indexOf(packageFamilyName);");
htmlBuilder.AppendLine("if (index === -1) {");
htmlBuilder.AppendLine("selectedPackages.push(packageFamilyName);");
htmlBuilder.AppendLine("} else {");
htmlBuilder.AppendLine("selectedPackages.splice(index, 1);");
htmlBuilder.AppendLine("}");
htmlBuilder.AppendLine("}");
htmlBuilder.AppendLine("function removeSelectedPackages() {");
htmlBuilder.AppendLine("window.chrome.webview.postMessage(JSON.stringify({ action: 'removeSelectedPackages', selectedPackages: selectedPackages }));");
htmlBuilder.AppendLine("}");
htmlBuilder.AppendLine("</script>");
return htmlBuilder.ToString();
}
public async void RemoveSelectedPackages(List<string> selectedPackages)
{
Logger.Log("Attempting to remove selected packages:", Color.Magenta);
@ -302,6 +259,7 @@ namespace Interop
}
await LoadInstalledAppPackages(); // Global refresh
// Refresh our appx packages shown in Pinned apps section after removal
string refreshedHtml = await GetPinnedAppPackages();
await form.WebView.CoreWebView2.ExecuteScriptAsync($"document.getElementById('buttonsAppx-container').innerHTML = `{refreshedHtml}`;");

View File

@ -12,6 +12,8 @@ using System.Net;
using System.Runtime.InteropServices;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Collections.Generic;
using System.IO.Compression;
namespace Interop
{
@ -37,6 +39,100 @@ namespace Interop
command = new CommandsHandler(logger);
}
public async void Tiny11Maker()
{
// Inform the user about the third-party script
MessageBox.Show("This process utilizes a third-party script from ntdevlabs/tiny11builder. " +
"The script expects a downloaded Windows 11 ISO file and will create a trimmed-down Windows 11 ISO named Tiny11.iso without inbox apps and Edge Browser." +
"\nFor more details, visit: https://github.com/ntdevlabs/tiny11builder", "Important Note", MessageBoxButtons.OK, MessageBoxIcon.Information);
// Initialize necessary handlers
DownloadHandler downloadHandler = new DownloadHandler(logger);
CommandsHandler commandsHandler = new CommandsHandler(logger);
// Download the necessary files
string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
string zipFilePath = Path.Combine(desktopPath, "tiny11builder_01-05-24.zip");
string extractPath = desktopPath;
await downloadHandler.DownloadFiles(new Dictionary<string, string>
{
{ "tiny11builder", "https://github.com/ntdevlabs/tiny11builder/releases/download/01-05-24/tiny11builder_01-05-24.zip" }
}, desktopPath);
// Extract tiny11builder archive
try
{
ZipFile.ExtractToDirectory(zipFilePath, extractPath);
}
catch (Exception ex)
{
logger.Log($"Error extracting files: {ex.Message}", Color.Red);
}
// Log steps
logger.Log("1. Please download Windows 11 from the Microsoft website: https://www.microsoft.com/software-download/windows11", Color.Red);
logger.Log("2. Mounting the downloaded ISO image using Windows Explorer...", Color.Blue);
logger.Log("3. Selecting the drive letter where the image is mounted...", Color.Green);
logger.Log("4. Selecting the SKU for the image...", Color.Green);
logger.Log("5. Sit back and relax :)", Color.Green);
logger.Log("More details here https://github.com/ntdevlabs/tiny11builder", Color.Magenta);
// Ask to mount ISO image
DialogResult result = MessageBox.Show("Do you want to mount the ISO image?", "Mount ISO", MessageBoxButtons.YesNo);
if (result == DialogResult.Yes)
{
// Allow selecting ISO image file
using (OpenFileDialog openFileDialog = new OpenFileDialog())
{
openFileDialog.Filter = "ISO files (*.iso)|*.iso|All files (*.*)|*.*";
openFileDialog.InitialDirectory = desktopPath;
openFileDialog.RestoreDirectory = true;
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
string selectedIsoFilePath = openFileDialog.FileName;
// Log selected ISO file path
logger.Log($"Selected ISO file: {selectedIsoFilePath}", Color.Green);
// Mount ISO file using PowerShell
ProcessStartInfo psi = new ProcessStartInfo
{
FileName = "powershell.exe",
Arguments = $"-Command Mount-DiskImage -ImagePath \"{selectedIsoFilePath}\"",
RedirectStandardOutput = true,
RedirectStandardError = true,
UseShellExecute = false,
CreateNoWindow = true
};
Process process = Process.Start(psi);
await process.WaitForExitAsync();
string output = process.StandardOutput.ReadToEnd();
string error = process.StandardError.ReadToEnd();
if (!string.IsNullOrEmpty(error))
{
MessageBox.Show($"Error mounting ISO: {error}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else
{
MessageBox.Show($"ISO mounted successfully: {output}", "ISO Mounted", MessageBoxButtons.OK, MessageBoxIcon.Information);
// Run PowerShell script once the ISO image is mounted
commandsHandler.StartProcess("powershell.exe", $"-ExecutionPolicy Bypass -File \"{desktopPath}\\tiny11maker.ps1\"", true, createNoWindow: false);
}
}
}
}
else
{
MessageBox.Show("Skipping mounting the ISO image.", "Mount ISO", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
// E.g. Support for my own Apps, like Appcopier
public void OpenAppFromPackagesFolder(string appPath)
{
@ -207,8 +303,8 @@ namespace Interop
{
logger.Log($"Error handling processes: {ex.Message}", Color.DarkRed);
}
}
public async Task CheckIPAddress()
{
try

View File

@ -29,11 +29,6 @@ namespace Interop
public string Description { get; set; } // Extensions plugin
public Dictionary<string, string> DownloadUri { get; set; } // download handler (e.g. multiple files, localizations)
// Support for Vive tool (optional package)
public string ViveCommand { get; set; }
public string ViveFeatureId { get; set; }
public string ViveBuildAvailability { get; set; }
}
public class ClippyLogicHandler : InteropBase
@ -245,11 +240,11 @@ namespace Interop
// Adjust button text based on installation status and hardcoded parameter
if (isInstalled || isHardcoded)
{
pluginHtml.AppendLine($"<button class='execute-button' onclick='executePluginEntry(\"{entry.Question}\")'>Run plugin</button>");
pluginHtml.AppendLine($"<button class='execute-button' onclick='executePluginEntry(\"{entry.Question}\")'>RUN</button>");
}
else
{
pluginHtml.AppendLine($"<button class='install-button' onclick='installPlugin(\"{pluginName}\", \"{entry.GithubURL}\")'>Install</button>");
pluginHtml.AppendLine($"<button class='install-button' onclick='installPlugin(\"{pluginName}\", \"{entry.GithubURL}\")'>GET</button>");
}
pluginHtml.AppendLine("</div>");
@ -411,15 +406,15 @@ namespace Interop
// Here Winpilot plugins are called, trigger js functions to scroll to the respective sections
case "plugCotweaker":
await form.WebView.CoreWebView2.ExecuteScriptAsync("activateStep('stepSystemHeader');");
await form.WebView.CoreWebView2.ExecuteScriptAsync("showContainer('stepSystemHeader');");
break;
case "plugDecrapify":
await form.WebView.CoreWebView2.ExecuteScriptAsync("activateStep('stepAppxHeader');");
await form.WebView.CoreWebView2.ExecuteScriptAsync("showContainer('stepAppxHeader');");
break;
case "plugWingetUI":
await form.WebView.CoreWebView2.ExecuteScriptAsync("activateStep('stepAppsHeader');");
await form.WebView.CoreWebView2.ExecuteScriptAsync("showContainer('stepAppsHeader');");
break;
case "plugCopilotless":
@ -440,32 +435,6 @@ namespace Interop
Logger.Log(selectedAnswer.Response, Color.Magenta);
break;
// File downloader for e.g., plugins in plugins directory
case "coDownload":
string filesDirectory = Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location);
string targetDirectoryPlugins = Path.Combine(filesDirectory, "plugins");
await downloadHandler.DownloadFiles(selectedAnswer.DownloadUri, targetDirectoryPlugins);
break;
// Vive tool (optional package)
case "viveTool":
string viveToolPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory + "\\plugins\\vivetool\\", "vivetool.exe");
string featureId = selectedAnswer.ViveFeatureId;
// Construct ViveTool command to enable feature
if (selectedAnswer.ViveCommand.Equals("enable", StringComparison.OrdinalIgnoreCase))
{
string viveToolCommand = $" /enable /id:{featureId}";
commandHandler.StartProcess(viveToolPath, viveToolCommand, true, createNoWindow: true);
} // Construct ViveTool command to disable feature
else if (selectedAnswer.ViveCommand.Equals("disable", StringComparison.OrdinalIgnoreCase))
{
string viveToolCommand = $" /disable /id:{featureId}";
commandHandler.StartProcess(viveToolPath, viveToolCommand, true, createNoWindow: true);
}
Logger.Log($"Build Availability: {selectedAnswer.ViveBuildAvailability}", Color.MediumPurple);
break;
// Default for running external processes, URIs and opening linkhandler
default:
commandHandler.ExecuteSettingsURI(selectedAnswer.Action);

View File

@ -1,9 +1,9 @@
using Winpilot;
using System;
using System;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Threading.Tasks;
using Winpilot;
namespace Interop
{
@ -57,7 +57,6 @@ namespace Interop
process.Start();
process.BeginOutputReadLine();
process.BeginErrorReadLine();
}
else
{
@ -71,7 +70,6 @@ namespace Interop
}
}
public void ExecutePowerShellCommand(string command)
{
StartProcess("powershell.exe", $"-NoProfile -ExecutionPolicy unrestricted -Command \"{command}\"", true, createNoWindow: false);
@ -232,6 +230,5 @@ namespace Interop
logger.Log($"Error running PowerShell command: {ex.Message}", Color.DarkRed);
}
}
}
}

View File

@ -1,11 +1,10 @@
using Winpilot;
using System;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Net;
using System.Threading.Tasks;
using System.Windows.Forms;
using Winpilot;
namespace Interop
{

View File

@ -27,7 +27,7 @@ namespace Interop
if (appUpdatesAvailable)
{
logger.Log("Winpilot update is available.", Color.Magenta);
logger.Log("Winpilot update is available. https://github.com/builtbybel/Winpilot/releases", Color.Magenta);
}
else
{
@ -103,7 +103,7 @@ namespace Interop
{
if (MessageBox.Show($"App version {latestVersion} available.\nDo you want to open the Download page?", "App update available", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
{
Process.Start("https://github.com/builtbybel/Winpilot");
Process.Start("https://github.com/builtbybel/Winpilot/releases");
}
return true;
}

View File

@ -39,7 +39,7 @@
this.pnlForm.Dock = System.Windows.Forms.DockStyle.Fill;
this.pnlForm.Location = new System.Drawing.Point(0, 0);
this.pnlForm.Name = "pnlForm";
this.pnlForm.Size = new System.Drawing.Size(584, 639);
this.pnlForm.Size = new System.Drawing.Size(483, 661);
this.pnlForm.TabIndex = 2;
//
// pnlMain
@ -47,14 +47,14 @@
this.pnlMain.Dock = System.Windows.Forms.DockStyle.Fill;
this.pnlMain.Location = new System.Drawing.Point(0, 0);
this.pnlMain.Name = "pnlMain";
this.pnlMain.Size = new System.Drawing.Size(584, 639);
this.pnlMain.Size = new System.Drawing.Size(483, 661);
this.pnlMain.TabIndex = 0;
//
// MainForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.ClientSize = new System.Drawing.Size(584, 639);
this.ClientSize = new System.Drawing.Size(483, 661);
this.Controls.Add(this.pnlForm);
this.Name = "MainForm";
this.ShowIcon = false;

View File

@ -37,20 +37,10 @@ namespace Winpilot
private async void MainForm_Shown(object sender, EventArgs e)
{
// Position
SetUI();
// Init WebView
await InitializeWebView();
}
private void SetUI()
{
// Position
int margin = 10; // Margin from Taskbar
this.Location = new Point((Screen.PrimaryScreen.WorkingArea.Width - this.Width) / 2,
(Screen.PrimaryScreen.WorkingArea.Height - this.Height) - margin);
}
private async Task InitializeWebView()
{
Panel pnlForm = new Panel
@ -87,9 +77,33 @@ namespace Winpilot
{
try
{
// Construct the full file paths for HTML, CSS, JS files
// Default theme preference
bool isDarkMode = false;
// Check if the settings.txt file exists in "app" directory
string darkModeFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "app", "settings.txt");
if (File.Exists(darkModeFilePath))
{
// Determine theme preference
string fileContent = File.ReadAllText(darkModeFilePath);
if (fileContent.Contains("Theme=1"))
{
// If file indicates dark mode, enable dark mode
isDarkMode = true;
}
}
else
{
// If file doesn't exist or contain theme preference, default to light mode
isDarkMode = false;
// Write default theme preference to settings file
File.WriteAllText(darkModeFilePath, isDarkMode ? "Theme=1" : "Theme=0");
}
// Construct full file paths for HTML, CSS, JS files
string htmlFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "app", "frontend.html");
string cssFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "app", "ui.css");
string cssFilePath = isDarkMode ? Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "app", "ui_dark.css") : Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "app", "ui.css");
string jsFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "app", "backend.js");
// Get all PNG files with "clippy" in their names
@ -127,7 +141,7 @@ namespace Winpilot
// Subscribe to NavigationCompleted event before navigating
webView.CoreWebView2.NavigationCompleted += WebView_NavigationCompleted;
// Navigate to the modified HTML content
// Navigate to modified HTML content
webView.CoreWebView2.NavigateToString(finalHtmlContent);
}
catch (Exception ex)
@ -136,6 +150,33 @@ namespace Winpilot
}
}
private void ToggleDarkLightMode()
{
try
{
string darkModeFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "app", "settings.txt");
if (File.Exists(darkModeFilePath))
{
string fileContent = File.ReadAllText(darkModeFilePath);
// Toggle theme preference
bool isDarkMode = fileContent.Contains("Theme=1");
isDarkMode = !isDarkMode;
// Write the updated theme preference to settings file
File.WriteAllText(darkModeFilePath, isDarkMode ? "Theme=1" : "Theme=0");
}
else
{
// If settings file doesn't exist, create it with light mode enabled
File.WriteAllText(darkModeFilePath, "Theme=0");
}
}
catch (Exception ex)
{
Console.WriteLine($"Error toggling mode: {ex.Message}");
}
}
private async void WebView_NavigationCompleted(object sender, CoreWebView2NavigationCompletedEventArgs e)
{
// Disable the form and all controls
@ -189,14 +230,23 @@ namespace Winpilot
var logger = new Logger(webView);
coTweaker = new List<WalksBase>
{
// Ads
new StartmenuAds(this,logger),
new PersonalizedAds(this,logger),
new WelcomeExperienceAds(this,logger),
new FinishSetupAds(this,logger),
new TipsAndSuggestions(this,logger),
new SettingsAds(this,logger),
new LockScreenAds(this,logger),
new FileExplorerAds(this,logger),
new TailoredExperiences(this,logger),
// Privacy
new Advertising(this,logger),
new BackgroundApps(this,logger),
new DiagnosticData(this,logger),
new FindMyDevice(this,logger),
new PrivacyExperience(this,logger),
new Telemetry(this,logger),
new TipsAndSuggestions(this,logger),
// System
new FullContextMenus(this,logger),
@ -212,7 +262,6 @@ namespace Winpilot
// Taskbar and Start Menu
new BingSearch(this,logger),
new StartmenuAds(this,logger),
new MostUsedApps(this,logger),
new StartmenuLayout(this,logger),
new TaskbarChat(this,logger),
@ -318,11 +367,27 @@ namespace Winpilot
// Instantiate Feature classes with logger
WalksBase appCustomCrapware = new CAppxPackages(this, logger);
AIFeaturesHandler aiFeaturesHandler = new AIFeaturesHandler(logger);
ClippyDataHandler clippyDataHandler = new ClippyDataHandler(logger);
// Handle non-JSON content (e.g., interop classes)
switch (message)
{
// About this app
case "tiny11maker":
clippyDataHandler.Tiny11Maker();
break;
// Back button
case "goBack":
await LoadHtmlContent();
break;
// Toggle Dark/Light mode
case "toggleDarkLightMode":
ToggleDarkLightMode();
await LoadHtmlContent();
break;
// Open Settings (About this app)
case "openSettings":
OpenSettings();
break;
@ -341,10 +406,6 @@ namespace Winpilot
clippyConversationHandler.ShowPseudoAISayings();
break;
case "openCopilot":
webView.CoreWebView2.Navigate("https://copilot.microsoft.com/");
break;
// Refresh Assisted buttons
case "refreshAB":
await clippyLogicHandler.LoadAnswersFromJson(); // Initialize answers and actions
@ -410,6 +471,35 @@ namespace Winpilot
}
}
private async Task RunPowerShellScript()
{
Logger logger = new Logger(webView);
ProcessStartInfo psi = new ProcessStartInfo
{
FileName = "powershell.exe",
Arguments = $"-ExecutionPolicy Bypass -File \"{Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Downloads", "tiny11maker.ps1")}\"",
RedirectStandardOutput = true,
RedirectStandardError = true,
UseShellExecute = false,
CreateNoWindow = true
};
Process process = Process.Start(psi);
await process.WaitForExitAsync();
string output = process.StandardOutput.ReadToEnd();
string error = process.StandardError.ReadToEnd();
if (!string.IsNullOrEmpty(error))
{
logger.Log($"Error running PowerShell script: {error}", Color.Red);
}
else
{
logger.Log($"PowerShell script executed successfully: {output}", Color.Green);
}
}
// Plugin WingetUI > Install Selected Apps
private void InstallWingetAppsAction(List<CheckboxInfo> checkboxes)
{

View File

@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
// indem Sie "*" wie unten gezeigt eingeben:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("2024.4.10")]
[assembly: AssemblyFileVersion("2024.4.10")]
[assembly: AssemblyVersion("2024.5.13")]
[assembly: AssemblyFileVersion("2024.5.13")]

View File

@ -28,46 +28,32 @@
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SettingsPageView));
this.linkAppInfo = new System.Windows.Forms.LinkLabel();
this.label1 = new System.Windows.Forms.Label();
this.lblVersion = new System.Windows.Forms.Label();
this.linkFollow = new System.Windows.Forms.LinkLabel();
this.lblDev = new System.Windows.Forms.Label();
this.linkCreditsAppIcon = new System.Windows.Forms.LinkLabel();
this.btnBack = new System.Windows.Forms.Button();
this.lblSettings = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.linkLicensesClippit = new System.Windows.Forms.LinkLabel();
this.SuspendLayout();
//
// linkAppInfo
//
this.linkAppInfo.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.linkAppInfo.AutoEllipsis = true;
this.linkAppInfo.Font = new System.Drawing.Font("Segoe UI Variable Text", 9.25F);
this.linkAppInfo.Font = new System.Drawing.Font("Segoe UI Variable Display", 9.75F);
this.linkAppInfo.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
this.linkAppInfo.LinkColor = System.Drawing.Color.RoyalBlue;
this.linkAppInfo.Location = new System.Drawing.Point(22, 219);
this.linkAppInfo.Location = new System.Drawing.Point(35, 108);
this.linkAppInfo.Name = "linkAppInfo";
this.linkAppInfo.Size = new System.Drawing.Size(161, 17);
this.linkAppInfo.Size = new System.Drawing.Size(315, 24);
this.linkAppInfo.TabIndex = 6;
this.linkAppInfo.TabStop = true;
this.linkAppInfo.Text = "More infos about this app";
this.linkAppInfo.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.linkAppInfo.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkAppInfos_LinkClicked);
//
// label1
//
this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.label1.AutoEllipsis = true;
this.label1.Font = new System.Drawing.Font("Segoe UI Variable Text Semiligh", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.label1.Location = new System.Drawing.Point(20, 73);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(302, 186);
this.label1.TabIndex = 7;
this.label1.Text = resources.GetString("label1.Text");
//
// lblVersion
//
this.lblVersion.AutoSize = true;
@ -81,49 +67,44 @@
//
// linkFollow
//
this.linkFollow.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.linkFollow.AutoEllipsis = true;
this.linkFollow.Font = new System.Drawing.Font("Segoe MDL2 Assets", 12.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.linkFollow.Font = new System.Drawing.Font("Segoe Fluent Icons", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.linkFollow.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
this.linkFollow.LinkColor = System.Drawing.Color.DeepPink;
this.linkFollow.Location = new System.Drawing.Point(190, 217);
this.linkFollow.LinkColor = System.Drawing.Color.MediumVioletRed;
this.linkFollow.Location = new System.Drawing.Point(35, 135);
this.linkFollow.Name = "linkFollow";
this.linkFollow.Size = new System.Drawing.Size(106, 27);
this.linkFollow.Size = new System.Drawing.Size(315, 24);
this.linkFollow.TabIndex = 9;
this.linkFollow.TabStop = true;
this.linkFollow.Text = "Follow on GitHub";
this.linkFollow.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.linkFollow.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkFollow_LinkClicked);
//
// lblDev
//
this.lblDev.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.lblDev.AutoEllipsis = true;
this.lblDev.Font = new System.Drawing.Font("Segoe UI Variable Text Semiligh", 8.25F, System.Drawing.FontStyle.Underline, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblDev.Font = new System.Drawing.Font("Segoe UI Variable Display", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblDev.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.lblDev.Location = new System.Drawing.Point(3, 602);
this.lblDev.Location = new System.Drawing.Point(35, 80);
this.lblDev.Name = "lblDev";
this.lblDev.Size = new System.Drawing.Size(344, 24);
this.lblDev.Size = new System.Drawing.Size(315, 24);
this.lblDev.TabIndex = 10;
this.lblDev.Text = "A Belim app creation (C) 2024";
this.lblDev.TextAlign = System.Drawing.ContentAlignment.TopCenter;
this.lblDev.Text = "A Belim app creation © 2024";
this.lblDev.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// linkCreditsAppIcon
//
this.linkCreditsAppIcon.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.linkCreditsAppIcon.AutoEllipsis = true;
this.linkCreditsAppIcon.Font = new System.Drawing.Font("Segoe UI Variable Text Semiligh", 7.75F);
this.linkCreditsAppIcon.Font = new System.Drawing.Font("Segoe UI Variable Display", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.linkCreditsAppIcon.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
this.linkCreditsAppIcon.LinkColor = System.Drawing.Color.RoyalBlue;
this.linkCreditsAppIcon.Location = new System.Drawing.Point(3, 626);
this.linkCreditsAppIcon.Location = new System.Drawing.Point(35, 199);
this.linkCreditsAppIcon.Name = "linkCreditsAppIcon";
this.linkCreditsAppIcon.Size = new System.Drawing.Size(347, 15);
this.linkCreditsAppIcon.Size = new System.Drawing.Size(315, 24);
this.linkCreditsAppIcon.TabIndex = 11;
this.linkCreditsAppIcon.TabStop = true;
this.linkCreditsAppIcon.Text = "Icon created by Icon Hubs - Flaticon";
this.linkCreditsAppIcon.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.linkCreditsAppIcon.Text = "Icon credits go to at Firecube";
this.linkCreditsAppIcon.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.linkCreditsAppIcon.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkCreditsAppIcon_LinkClicked);
//
// btnBack
@ -147,15 +128,47 @@
this.lblSettings.Font = new System.Drawing.Font("Segoe UI Variable Text Semibold", 9.75F, System.Drawing.FontStyle.Bold);
this.lblSettings.Location = new System.Drawing.Point(41, 3);
this.lblSettings.Name = "lblSettings";
this.lblSettings.Size = new System.Drawing.Size(99, 17);
this.lblSettings.Size = new System.Drawing.Size(109, 17);
this.lblSettings.TabIndex = 13;
this.lblSettings.Text = "About this app";
this.lblSettings.Text = "App Information";
//
// label1
//
this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.label1.AutoSize = true;
this.label1.Font = new System.Drawing.Font("Segoe UI Variable Small Semibol", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.label1.Location = new System.Drawing.Point(20, 171);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(129, 17);
this.label1.TabIndex = 14;
this.label1.Text = "Third-party licenses";
//
// linkLicensesClippit
//
this.linkLicensesClippit.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.linkLicensesClippit.AutoEllipsis = true;
this.linkLicensesClippit.Font = new System.Drawing.Font("Segoe UI Variable Display", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.linkLicensesClippit.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
this.linkLicensesClippit.LinkColor = System.Drawing.Color.RoyalBlue;
this.linkLicensesClippit.Location = new System.Drawing.Point(35, 232);
this.linkLicensesClippit.Name = "linkLicensesClippit";
this.linkLicensesClippit.Size = new System.Drawing.Size(315, 33);
this.linkLicensesClippit.TabIndex = 15;
this.linkLicensesClippit.TabStop = true;
this.linkLicensesClippit.Text = "Clippit is a registered trademark of © Microsoft Corporation.";
this.linkLicensesClippit.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.linkLicensesClippit.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLicensesClippit_LinkClicked);
//
// SettingsPageView
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.SystemColors.Control;
this.Controls.Add(this.linkLicensesClippit);
this.Controls.Add(this.label1);
this.Controls.Add(this.lblSettings);
this.Controls.Add(this.btnBack);
this.Controls.Add(this.linkCreditsAppIcon);
@ -163,7 +176,6 @@
this.Controls.Add(this.linkFollow);
this.Controls.Add(this.lblVersion);
this.Controls.Add(this.linkAppInfo);
this.Controls.Add(this.label1);
this.Name = "SettingsPageView";
this.Size = new System.Drawing.Size(350, 643);
this.Load += new System.EventHandler(this.SettingsPageView_Load);
@ -174,12 +186,13 @@
#endregion
private System.Windows.Forms.LinkLabel linkAppInfo;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label lblVersion;
private System.Windows.Forms.LinkLabel linkFollow;
private System.Windows.Forms.Label lblDev;
private System.Windows.Forms.LinkLabel linkCreditsAppIcon;
private System.Windows.Forms.Button btnBack;
private System.Windows.Forms.Label lblSettings;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.LinkLabel linkLicensesClippit;
}
}

View File

@ -24,7 +24,7 @@ namespace Views
{
btnBack.Text = "\uE72B";
linkFollow.Text = "\uE8E1 GitHub";
lblVersion.Text = "Version " + Program.GetCurrentVersionTostring() + " (Stargate)";
lblVersion.Text = "Version " + Program.GetCurrentVersionTostring() + " Stargate";
}
private void linkAppInfos_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
@ -34,9 +34,12 @@ namespace Views
=> Process.Start("https://github.com/builtbybel/Winpilot");
private void linkCreditsAppIcon_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
=> Process.Start("https://www.flaticon.com/free-icon/maintenance_8794698");
=> Process.Start("https://github.com/FireCubeStudios/Clippy/tree/master/Clippy/Assets/Clippy");
private void btnBack_Click(object sender, EventArgs e)
=> Views.SwitchView.SetMainFormAsView();
private void linkLicensesClippit_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
=> Process.Start("https://github.com/FireCubeStudios/Clippy/tree/master/Clippy/Assets/Clippy");
}
}

View File

@ -117,10 +117,4 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="label1.Text" xml:space="preserve">
<value>Unlock the power of AI for Windows customization today with Winpilot.
Utilize Clippy's chatbox to search keywords and get real-time results. For example, search 'version' to check the Windows version currently installed on your system.
You can also try 'wallpaper' or 'performance' to explore some of the customization options available for Windows 10/11.</value>
</data>
</root>

View File

@ -0,0 +1,60 @@
using Microsoft.Win32;
using Winpilot;
using System;
using System.Drawing;
namespace Walks
{
internal class FileExplorerAds : WalksBase
{
public FileExplorerAds(MainForm form, Logger logger) : base(form, logger)
{
}
private const string keyName = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced";
private const int desiredValue = 0;
public override string ID()
{
return "File Explorer Ads";
}
public override bool CheckFeature()
{
return !(
Utils.IntEquals(keyName, "ShowSyncProviderNotifications", desiredValue)
);
}
public override bool DoFeature()
{
try
{
Registry.SetValue(keyName, "ShowSyncProviderNotifications", 1, RegistryValueKind.DWord);
return true;
}
catch (Exception ex)
{
logger.Log("Code red in " + ex.Message, Color.Red);
}
return false;
}
public override bool UndoFeature()
{
try
{
Registry.SetValue(keyName, "ShowSyncProviderNotifications", desiredValue, RegistryValueKind.DWord);
return true;
}
catch (Exception ex)
{
logger.Log("Code red in " + ex.Message, Color.Red);
}
return false;
}
}
}

View File

@ -0,0 +1,56 @@
using Microsoft.Win32;
using System;
using System.Drawing;
using Winpilot;
namespace Walks
{
public class FinishSetupAds : WalksBase
{
public FinishSetupAds(MainForm form, Logger logger) : base(form, logger)
{
}
private const string keyName = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\UserProfileEngagement";
private const int desiredValue = 0;
public override string ID() => "Finish Setup Ads";
public override bool CheckFeature()
{
return !Utils.IntEquals(keyName, "ScoobeSystemSettingEnabled", 0);
}
public override bool DoFeature()
{
try
{
Registry.SetValue(keyName, "ScoobeSystemSettingEnabled", 1, Microsoft.Win32.RegistryValueKind.DWord);
return true;
}
catch (Exception ex)
{
logger.Log("Code red in " + ex.Message, Color.Red);
}
return false;
}
public override bool UndoFeature()
{
try
{
Registry.SetValue(keyName, "ScoobeSystemSettingEnabled", 0, Microsoft.Win32.RegistryValueKind.DWord);
return true;
}
catch (Exception ex)
{
logger.Log("Code red in " + ex.Message, Color.Red);
}
return false;
}
}
}

View File

@ -0,0 +1,61 @@
using Microsoft.Win32;
using System;
using System.Drawing;
using Winpilot;
namespace Walks
{
internal class LockScreenAds : WalksBase
{
public LockScreenAds(MainForm form, Logger logger) : base(form, logger)
{
}
private const string keyName = @"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager";
private const int desiredValue = 0;
public override string ID() => "Lock Screen Tips and Ads";
public override bool CheckFeature()
{
return !(Utils.IntEquals(keyName, "RotatingLockScreenOverlayEnabled", desiredValue) &&
Utils.IntEquals(keyName, "SubscribedContent-338387Enabled", desiredValue)
);
}
public override bool DoFeature()
{
try
{
Registry.SetValue(keyName, "RotatingLockScreenOverlayEnabled", 1, Microsoft.Win32.RegistryValueKind.DWord);
Registry.SetValue(keyName, "SubscribedContent-338387Enabled", 1, Microsoft.Win32.RegistryValueKind.DWord);
return true;
}
catch (Exception ex)
{
logger.Log("Code red in " + ex.Message, Color.Red);
}
return false;
}
public override bool UndoFeature()
{
try
{
Registry.SetValue(keyName, "RotatingLockScreenOverlayEnabled", desiredValue, Microsoft.Win32.RegistryValueKind.DWord);
Registry.SetValue(keyName, "SubscribedContent-338387Enabled", desiredValue, Microsoft.Win32.RegistryValueKind.DWord);
return true;
}
catch (Exception ex)
{
logger.Log("Code red in " + ex.Message, Color.Red);
}
return false;
}
}
}

View File

@ -5,16 +5,16 @@ using System.Drawing;
namespace Walks
{
public class Advertising : WalksBase
public class PersonalizedAds: WalksBase
{
public Advertising(MainForm form, Logger logger) : base(form, logger)
public PersonalizedAds(MainForm form, Logger logger) : base(form, logger)
{
}
private const string keyName = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\AdvertisingInfo";
private const int desiredValue = 0;
public override string ID() => "Advertising";
public override string ID() => "Personalized Ads";
public override bool CheckFeature()
{

View File

@ -0,0 +1,64 @@
using Microsoft.Win32;
using System;
using System.Drawing;
using Winpilot;
namespace Walks
{
internal class SettingsAds : WalksBase
{
public SettingsAds(MainForm form, Logger logger) : base(form, logger)
{
}
private const string keyName = @"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager";
private const int desiredValue = 0;
public override string ID() => "Settings Ads";
public override bool CheckFeature()
{
return !(Utils.IntEquals(keyName, "SubscribedContent-338393Enabled", desiredValue) &&
Utils.IntEquals(keyName, "SubscribedContent-353694Enabled", desiredValue) &&
Utils.IntEquals(keyName, "SubscribedContent-353696Enabled", desiredValue)
);
}
public override bool DoFeature()
{
try
{
Registry.SetValue(keyName, "SubscribedContent-338393Enabled", 1, Microsoft.Win32.RegistryValueKind.DWord);
Registry.SetValue(keyName, "SubscribedContent-353694Enabled", 1, Microsoft.Win32.RegistryValueKind.DWord);
Registry.SetValue(keyName, "SubscribedContent-353696Enabled", 1, Microsoft.Win32.RegistryValueKind.DWord);
return true;
}
catch (Exception ex)
{
logger.Log("Code red in " + ex.Message, Color.Red);
}
return false;
}
public override bool UndoFeature()
{
try
{
Registry.SetValue(keyName, "SubscribedContent-338393Enabled", desiredValue, Microsoft.Win32.RegistryValueKind.DWord);
Registry.SetValue(keyName, "SubscribedContent-353694Enabled", desiredValue, Microsoft.Win32.RegistryValueKind.DWord);
Registry.SetValue(keyName, "SubscribedContent-353696Enabled", desiredValue, Microsoft.Win32.RegistryValueKind.DWord);
return true;
}
catch (Exception ex)
{
logger.Log("Code red in " + ex.Message, Color.Red);
}
return false;
}
}
}

View File

@ -16,7 +16,7 @@ namespace Walks
public override string ID()
{
return "Ads in Windows 11 Start";
return "Start menu Ads";
}
public override bool CheckFeature()

View File

@ -0,0 +1,60 @@
using Microsoft.Win32;
using Winpilot;
using System;
using System.Drawing;
namespace Walks
{
internal class TailoredExperiences : WalksBase
{
public TailoredExperiences(MainForm form, Logger logger) : base(form, logger)
{
}
private const string keyName = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Privacy";
private const int desiredValue = 0;
public override string ID()
{
return "Tailored experiences";
}
public override bool CheckFeature()
{
return !(
Utils.IntEquals(keyName, "TailoredExperiencesWithDiagnosticDataEnabled", desiredValue)
);
}
public override bool DoFeature()
{
try
{
Registry.SetValue(keyName, "TailoredExperiencesWithDiagnosticDataEnabled", 1, RegistryValueKind.DWord);
return true;
}
catch (Exception ex)
{
logger.Log("Code red in " + ex.Message, Color.Red);
}
return false;
}
public override bool UndoFeature()
{
try
{
Registry.SetValue(keyName, "TailoredExperiencesWithDiagnosticDataEnabled", desiredValue, RegistryValueKind.DWord);
return true;
}
catch (Exception ex)
{
logger.Log("Code red in " + ex.Message, Color.Red);
}
return false;
}
}
}

View File

@ -0,0 +1,57 @@
using Microsoft.Win32;
using System;
using System.Drawing;
using Winpilot;
namespace Walks
{
internal class TipsAndSuggestions : WalksBase
{
public TipsAndSuggestions(MainForm form, Logger logger) : base(form, logger)
{
}
private const string keyName = @"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager";
private const int desiredValue = 0;
public override string ID() => "General Tips and Ads";
public override bool CheckFeature()
{
return !(Utils.IntEquals(keyName, "SubscribedContent-338389Enabled", desiredValue)
);
}
public override bool DoFeature()
{
try
{
Registry.SetValue(keyName, "SubscribedContent-338389Enabled", 1, Microsoft.Win32.RegistryValueKind.DWord);
return true;
}
catch (Exception ex)
{
logger.Log("Code red in " + ex.Message, Color.Red);
}
return false;
}
public override bool UndoFeature()
{
try
{
Registry.SetValue(keyName, "SubscribedContent-338389Enabled", desiredValue, Microsoft.Win32.RegistryValueKind.DWord);
return true;
}
catch (Exception ex)
{
logger.Log("Code red in " + ex.Message, Color.Red);
}
return false;
}
}
}

View File

@ -0,0 +1,56 @@
using Microsoft.Win32;
using Winpilot;
using System;
using System.Drawing;
namespace Walks
{
public class WelcomeExperienceAds : WalksBase
{
public WelcomeExperienceAds(MainForm form, Logger logger) : base(form, logger)
{
}
private const string keyName = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager";
private const int desiredValue = 0;
public override string ID() => "Welcome Experience Ads";
public override bool CheckFeature()
{
return !Utils.IntEquals(keyName, "SubscribedContent-310093Enabled", 0);
}
public override bool DoFeature()
{
try
{
Registry.SetValue(keyName, "SubscribedContent-310093Enabled", 1, Microsoft.Win32.RegistryValueKind.DWord);
return true;
}
catch (Exception ex)
{
logger.Log("Code red in " + ex.Message, Color.Red);
}
return false;
}
public override bool UndoFeature()
{
try
{
Registry.SetValue(keyName, "SubscribedContent-310093Enabled", 0, Microsoft.Win32.RegistryValueKind.DWord);
return true;
}
catch (Exception ex)
{
logger.Log("Code red in " + ex.Message, Color.Red);
}
return false;
}
}
}

View File

@ -25,7 +25,7 @@ namespace Walks
{
try
{
Registry.SetValue(keyName, "DisablePrivacyExperience", 1, Microsoft.Win32.RegistryValueKind.DWord);
Registry.SetValue(keyName, "DisablePrivacyExperience", 0, Microsoft.Win32.RegistryValueKind.DWord);
return true;
}
@ -41,7 +41,7 @@ namespace Walks
{
try
{
Registry.SetValue(keyName, "DisablePrivacyExperience", 0, Microsoft.Win32.RegistryValueKind.DWord);
Registry.SetValue(keyName, "DisablePrivacyExperience", 1, Microsoft.Win32.RegistryValueKind.DWord);
return true;
}

View File

@ -1,65 +0,0 @@
using Microsoft.Win32;
using Winpilot;
using System;
using System.Drawing;
namespace Walks
{
internal class TipsAndSuggestions : WalksBase
{
public TipsAndSuggestions(MainForm form, Logger logger) : base(form, logger)
{
}
private const string keyName = @"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CloudContent";
private const string keyName2 = @"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager";
private const int desiredValue = 1;
private const int desiredValue2 = 0;
public override string ID() => "Tips and suggestions";
public override bool CheckFeature()
{
return !(Utils.IntEquals(keyName, "DisableSoftLanding", desiredValue) &&
Utils.IntEquals(keyName2, "SoftLandingEnabled", desiredValue2) &&
Utils.IntEquals(keyName2, "ScoobeSystemSettingEnabled", desiredValue2)
);
}
public override bool DoFeature()
{
try
{
Registry.SetValue(keyName, "DisableSoftLanding", 0, Microsoft.Win32.RegistryValueKind.DWord);
Registry.SetValue(keyName2, "SoftLandingEnabled", 1, Microsoft.Win32.RegistryValueKind.DWord);
Registry.SetValue(keyName2, "ScoobeSystemSettingEnabled", 1, Microsoft.Win32.RegistryValueKind.DWord);
return true;
}
catch (Exception ex)
{
logger.Log("Code red in " + ex.Message, Color.Red);
}
return false;
}
public override bool UndoFeature()
{
try
{
Registry.SetValue(keyName, "DisableSoftLanding", desiredValue, Microsoft.Win32.RegistryValueKind.DWord);
Registry.SetValue(keyName2, "SoftLandingEnabled", desiredValue2, Microsoft.Win32.RegistryValueKind.DWord);
Registry.SetValue(keyName2, "ScoobeSystemSettingEnabled", desiredValue2, Microsoft.Win32.RegistryValueKind.DWord);
return true;
}
catch (Exception ex)
{
logger.Log("Code red in " + ex.Message, Color.Red);
}
return false;
}
}
}

View File

@ -57,6 +57,7 @@
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.IO.Compression.FileSystem" />
<Reference Include="System.Management" />
<Reference Include="System.Management.Automation, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
@ -88,11 +89,17 @@
<Compile Include="Views\SettingsPageView.Designer.cs">
<DependentUpon>SettingsPageView.cs</DependentUpon>
</Compile>
<Compile Include="Walks\Ads\FileExplorerAds.cs" />
<Compile Include="Walks\Ads\FinishSetupAds.cs" />
<Compile Include="Walks\Ads\LockScreenAds.cs" />
<Compile Include="Walks\Ads\SettingsAds.cs" />
<Compile Include="Walks\Ads\TailoredExperiences.cs" />
<Compile Include="Walks\Ads\WelcomeExperienceAds.cs" />
<Compile Include="Walks\AI\CopilotMSEdge.cs" />
<Compile Include="Walks\AI\CopilotTaskbar.cs" />
<Compile Include="Walks\Privacy\Advertising.cs" />
<Compile Include="Walks\Ads\PersonalizedAds.cs" />
<Compile Include="Walks\Privacy\BackgroundApps.cs" />
<Compile Include="Walks\Taskbar\StartmenuAds.cs" />
<Compile Include="Walks\Ads\StartmenuAds.cs" />
<Compile Include="Walks\System\FaxPrinter.cs" />
<Compile Include="Walks\System\XPSWriter.cs" />
<Compile Include="Walks\Taskbar\BingSearch.cs" />
@ -105,7 +112,7 @@
<Compile Include="Walks\Privacy\DiagnosticData.cs" />
<Compile Include="Walks\System\LockScreen.cs" />
<Compile Include="Walks\Privacy\Telemetry.cs" />
<Compile Include="Walks\Privacy\TipsAndSuggestions.cs" />
<Compile Include="Walks\Ads\TipsAndSuggestions.cs" />
<Compile Include="InteropBase.cs" />
<Compile Include="Helpers\Logger.cs" />
<Compile Include="MainForm.cs">

View File

@ -4,11 +4,227 @@ body {
color: #333;
padding: 40px;
text-align: left;
margin: -30px 0 0px; /* Top -30, right 0, bottom 0, left 0 */
margin: 0px 0 0px; /* Top -30, right 0, bottom 0, left 0 */
zoom: 0.9; /* WebView2 zoom level */
}
/* Styling for links, e.g. Share, GitHub etc. */
/* Hide all containers except the clippy-container and system-container by default */
.workspace-content .glassy-box:not(#stepClippyHeader):not(#stepHomeHeader) {
display: none;
}
/* Workspace Action Buttons */
.workspace-action-buttons {
display: flex;
flex-wrap: wrap;
gap: 10px;
}
.workspace-btn {
flex: 1 1 auto; /* Each button will take equal space */
text-align: left;
background-color: transparent !important;
border: none !important;
box-shadow: none !important;
}
.workspace-btn:hover {
background: linear-gradient(45deg, #926CFF, #FDCBFF); /* Purple Gradient on hover */
color: white;
}
.workspace-btn .ws-action-title {
font-size: 16px;
font-weight: bold;
margin-bottom: 5px;
}
.workspace-btn .ws-action-description {
font-size: 14px;
color: #666;
margin-bottom: 8px;
}
/* More and Less buttons */
.additional-buttons {
display: flex;
justify-content: space-between;
}
.additional-buttons .ws-add-button {
border: none;
background-color: transparent;
font-size: 13px;
margin: 4px 2px;
box-shadow: none !important;
}
.ws-add-button:disabled {
background-color: #ddd;
color: #666;
cursor: not-allowed;
}
/* Global container */
.container {
display: flex;
flex-wrap: wrap; /* Wrap to next line */
}
.clippy-container {
flex: 2; /* Initial width */
display: flex;
flex-direction: column;
align-items: stretch;
margin-top: 20px;
}
.workspace-container {
flex: 3; /* Initial width */
margin-left: 0px;
}
@media (max-width: 600px) {
.container {
flex-direction: column; /* Change to a column layout on smaller screens */
}
.clippy-container {
order: 2; /* Move left container to bottom */
margin-top: 0; /* Remove top margin */
margin-bottom: 20px; /* Add bottom margin */
}
.workspace-container {
order: 1; /* Move workspace container to top */
}
}
/* Navigation menu container */
.navigation-menu {
padding: 0;
margin-left: auto;
margin-bottom: 10px;
}
/* Menu item styles */
.navigation-menu a {
text-decoration: none;
color: #333;
font-weight: 600; /* Semi-bold font */
font-size: 16px;
transition: color 0.3s ease, transform 0.3s ease;
position: relative;
margin-right: 20px;
}
/* Hover effect */
.navigation-menu a:hover {
color: #0078d4; /* Blue accent color */
}
/* Active/focus state */
.navigation-menu a.active,
.navigation-menu a:focus {
color: #0078d4;
outline: none;
}
/* Indicator for active menu item */
.navigation-menu a.active::before,
.navigation-menu a:focus::before {
content: '';
position: absolute;
top: 50%;
left: -15px;
transform: translateY(-50%);
width: 10px;
height: 10px;
background: radial-gradient(circle, #aa00ff, #ff00dd); /* Purple to pink gradient */
border-radius: 50%; /* Round shape */
animation: blink 1s infinite alternate; /* Blinking animation */
}
/* OPTIONAL: Navigation menu Tooltip text */
.navigation-menu a::after {
content: attr(data-tooltip);
position: absolute;
color: #000;
padding: 5px 10px;
border-radius: 5px;
font-size: 14px;
opacity: 0;
visibility: hidden;
transition: opacity 0.3s, visibility 0.3s;
bottom: -35px;
left: 70px;
transform: translateX(-50%);
white-space: nowrap;
background-color: rgba(255, 255, 255, 0.9);
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
/* OPTIONAL: Show tooltip on hover */
.navigation-menu a:hover::after {
opacity: 1;
visibility: visible;
}
/* Navigation menu Active Blinking animation */
@keyframes blink {
from {
opacity: 1; /* Fully visible */
}
to {
opacity: 0; /* Fully transparent */
}
}
/* Workspace / Home Header styling */
#stepHomeHeader {
top: 30px;
background: #f2e6f0;
border-radius: 12px;
padding: 20px;
margin: 10px 10px;
z-index: 998;
}
/* All other Header styling */
#stepClippyHeader,
#stepSystemHeader,
#stepAppsHeader,
#stepAppxHeader,
#stepStoreHeader {
top: 30px;
background: linear-gradient(45deg, #f0f0f0 0%, #dfe3f1 50%, #f0f0f0 100%); /* Light gradient */
border-radius: 12px;
padding: 20px;
margin: 10px 10px;
margin-bottom: 50px;
z-index: 998;
transition: background-color 0.3s ease; /* Smooth transition */
}
/* Hover effect */
#stepClippyHeader:hover,
#stepSystemHeader:hover,
#stepAppsHeader:hover,
#stepAppxHeader:hover,
#stepStoreHeader:hover {
background: linear-gradient(45deg, #f5f5f5 0%, #c9d6ff 50%, #f5f5f5 100%); /* Light gradient on hover */
}
/* Background color */
#stepClippyHeader,
#stepSystemHeader,
#stepAppsHeader,
#stepAppxHeader,
#stepStoreHeader {
background: linear-gradient(45deg, #f0f0f0 0%, #ffccff 50%, #f0f0f0 100%); /* Light magenta/pink gradient */
}
/* Styling for links */
.links-container {
position: absolute;
top: 10px;
@ -19,191 +235,153 @@ body {
color: #5B7BD1; /* Windows 11 Blue */
text-decoration: none;
transition: color 0.3s ease;
margin-right: 10px; /*Spacing between links */
}
.modern-link:hover {
color: #f7a0f5;
}
/* Styles for contribution Dropdown menu */
.dev-dropbtn {
background-color: transparent;
color: #5B7BD1;
padding: 8px 16px;
font-size: inherit;
/* Styling for the GitHub follow link */
.github-follow-link {
display: inline-block;
padding: 10px 20px;
font-size: 14px;
font-weight: bold;
color: #fff;
text-decoration: none;
background-image: linear-gradient(to right, #ff82a9, #d291bc, #ffb6c1);
border-radius: 30px;
border: none;
cursor: pointer;
transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.github-follow-link:hover {
transform: scale(1.05);
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}
.github-follow-link::before {
content: '⭐';
margin-right: 10px;
}
/* BADGES */
/*Support statement for Handhelds in CoTweaker Plugin / Setup */
.handheld-badge {
position: absolute;
top: 20px;
right: 20px;
background-color: #6f4fdc;
color: white;
padding: 4px 8px;
border-radius: 4px;
font-size: 12px;
margin-left: 8px;
border-radius: 5px;
}
/* Badges in Workspace / Home */
.recommended-badge,
.advanced-badge,
.expert-badge {
display: none;
position: absolute;
top: 0;
right: 0;
transform: translate(50%, -50%); /* Position badges diagonally */
padding: 4px 8px;
border-radius: 3px;
color: white;
}
.workspace-btn:hover .recommended-badge,
.workspace-btn:hover .advanced-badge,
.workspace-btn:hover .expert-badge {
display: inline-block;
}
/* Recommended badge color */
.recommended-badge {
background-color: #4CAF50; /* Green */
}
/* Advanced badge color */
.advanced-badge {
background-color: #2196F3; /* Blue */
}
/* Expert badge color */
.expert-badge {
background-color: #DD3333; /* Red */
}
/* Toggle light/dark mode */
.ui-toggle-button {
color: black;
border: none;
border-radius: 5px;
font-size: 16px;
transition: background-color 0.3s;
}
.ui-toggle-button:hover {
background: linear-gradient(135deg, #FFBBFF, #D699D6, #FFBBFF);
}
/* Settings menu */
.settings-dropbtn {
background-color: transparent;
padding: 0;
font-size: 24px;
border: none;
border-radius: 5px;
width: 32px; /* Width for wider click area */
text-align: center;
}
/* Dropdown container (hidden by default) */
.dev-dropdown {
.settings-dropdown {
position: relative;
display: inline-block;
z-index: 99999;
margin-right: 10px; /* Spacing between GitHub icon and dropdown */
}
/* Dropdown content */
.dev-dropdown-content {
.settings-dropdown-content {
display: none;
position: absolute;
background-color: #f9f9f9;
min-width: 160px;
box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
z-index: 1;
box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2);
border-radius: 5px;
right: 0;
}
/* Links inside dropdown */
.dev-dropdown-content a {
/* Show the dropdown menu on hover */
.settings-dropdown:hover .settings-dropdown-content {
display: block;
}
/* Dropdown links */
.settings-dropdown-content a {
color: black;
padding: 12px 16px;
text-decoration: none;
display: block;
}
.dev-dropdown-content a:hover {
background-color: #f1f1f1;
/* Change color of dropdown links on hover */
.settings-dropdown-content a:hover {
background-color: #ddd;
}
.dev-dropdown:hover .dev-dropdown-content {
display: block;
}
/* Change the background color of dropdown button when the dropdown content is shown */
.dev-dropdown:hover .dev-dropbtn {
background-color: #5B7BD1;
color: white;
}
/* Styles for Pilot dropdown menu */
.dropdown-container {
position: fixed;
left: 50%;
z-index: 99999; /* Top most and over Clippy */
}
.dropdown {
display: inline-block;
position: relative;
}
.dropbtn {
padding: 15px 25px; /* Padding for a larger touch area */
font-size: 18px;
cursor: pointer;
border: none;
background: linear-gradient(45deg, #a034d3, #943ad5, #744bdb);
color: white;
border-radius: 25px; /* Increased border radius */
box-shadow: 0px 6px 12px rgba(0, 0, 0, 0.2),
0px 0px 40px rgba(160, 52, 211, 0.6), /* Glow effect */
0px 0px 60px rgba(148, 58, 213, 0.4); /* Glow effect with magenta */
transition: background 0.3s, box-shadow 0.3s;
}
.dropbtn:hover {
background: linear-gradient(45deg, #6a49d6, #943ad5, #744bdb); /* Dark gradient on hover */
box-shadow: 0px 8px 20px rgba(0, 0, 0, 0.3),
0px 0px 60px rgba(106, 73, 214, 0.8), /* Larger glow effect */
0px 0px 90px rgba(148, 58, 213, 0.6); /* Strongest glow effect with magenta */
}
.dropdown-content {
display: none;
position: absolute;
background-color: #ffffff;
box-shadow: 0px -8px 16px rgba(0, 0, 0, 0.1);
min-width: 300px;
border-radius: 8px;
bottom: 100%; /* Position dropdown above the button */
transform: translateX(-50%); /* Center alignment */
}
.dropdown-content ul {
list-style-type: none;
padding: 0;
margin: 0;
}
.dropdown-content ul li {
padding: 12px 16px;
text-decoration: none;
display: block;
}
.dropdown-content ul li:hover {
background-color: #f0f0f0; /* Light gray on hover */
}
.dropdown:hover .dropdown-content {
display: block;
}
.dropdown:hover .dropbtn {
background-color: #f0f0f0; /* Light gray on hover */
border-color: #a5a5a5; /* Slightly darker border on hover */
}
/* Styles for step visibility */
.setup-step {
display: none;
}
.setup-step.active {
display: block;
}
/* Styles for Back and Next buttons */
.steps-assistant {
display: flex;
justify-content: space-between;
align-items: center;
position: fixed;
bottom: 0px;
gap: 10px; /* Minimum distance between buttons */
z-index: 1000;
}
.steps-assistant button:focus {
outline: none; /* Remove default focus outline */
box-shadow: 0 0 0 3px rgba(210, 54, 247, 0.3);
}
/* Bottom Navigation container */
.bottom-container {
position: fixed;
bottom: 0;
left: 0;
width: 100%;
background-color: #f2f2f2; /* Light gray background */
padding: 20px;
border-top: 1px solid #d1d1d1; /* Light seperation border at top */
backdrop-filter: blur(10px);
z-index: 999; /* Ensure it stays below steps assistant */
}
/* Step-by-step Back/Next buttons */
.bottom-container button {
padding: 10px 20px;
font-size: 14px;
border: none;
border-radius: 8px;
background-color: #4d4ccb;
color: #ffffff;
cursor: pointer;
transition: background-color 0.3s, color 0.3s;
}
.bottom-container button:hover {
background-color: #8f3cd5;
}
.bottom-container button:disabled {
background-color: #c4c4c4; /* Light gray for disabled state */
color: #7a7a7a; /* Dark gray text color */
cursor: not-allowed;
/* Change color of dropdown button on hover */
.settings-dropdown:hover .settings-dropbtn {
color: #000;
background-color: #f7e2f5;
}
/* Styling for back button */
@ -223,62 +401,11 @@ body {
background-color: #f0f0f0;
}
/* Show app related menus like Switch to Copilot, Settings next to each other */
.menu-flex-container {
display: flex;
justify-content: space-between;
}
.left-menu,
.right-menu {
display: flex;
flex-direction: column;
gap: 8px;
}
/* Ask Clippy item */
.ask-clippy {
font-weight: bold;
}
/* Basic styling for Plugins Dropdown menu */
.menu {
list-style: none;
font-size: 14px;
padding: 0;
margin: 0;
background-color: rgba(231, 222, 225, 0.2); /* Glassy and transparent background color */
border: 1px solid #e1e1e1;
border-radius: 8px;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
cursor: pointer;
}
.menu li {
padding: 10px;
margin-right: 3px;
margin-left: 3px;
border-radius: 8px;
}
.menu li:last-child {
border-bottom: none;
}
.menu li:hover {
background-color: #ffffff; /* Hover background color */
}
.menu li span.menu-icon {
margin-right: 10px;
}
/* Container styling */
/* Main Container styling */
.glassy-box {
position: relative;
flex: 1; /* Make glassy-box grow to fill remaining space */
max-width: 100%;
margin-right: 20px;
}
/* UI: Glassy-Box buttons in Headers/Plugins, e.g. CoTweaker, Decrapify etc. */
@ -294,7 +421,6 @@ body {
color: black;
background: #fefdfe;
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2); /* Shadow effect */
cursor: pointer;
}
.glassy-box button:hover {
@ -303,9 +429,15 @@ body {
/* Clippy Animation */
@keyframes clippyAnimation {
0% { transform: translateY(0); }
50% { transform: translateY(-10px); }
100% { transform: translateY(0); }
0% {
transform: translateY(0) rotate(0deg);
}
50% {
transform: translateY(-5px) rotate(-2deg);
}
100% {
transform: translateY(0) rotate(0deg);
}
}
/* Styling for Clippy container */
@ -332,16 +464,17 @@ body {
/* Styling for logContainer */
#logContainer {
position: fixed;
bottom: 110px;
bottom: 80px;
left: 20px;
right: calc(20% + 100px);
z-index: 999; /* Ensure it's below Clippy */
background-color: #f7f6ca; /* Yellow color */
z-index: 998;
background-color: #fff5c4;
font-family: "Comic Sans MS", "MS Sans Serif", Arial, sans-serif; /* Vintage-inspired font stack */
font-size: 14px;
color: #000000;
border: 2px solid #000000;
color: #000080; /* Blue-ish color to match Clippy's text */
border: 2px solid #000080;
border-radius: 10px;
padding: 2px;
padding: 5px;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
@ -349,18 +482,17 @@ body {
#logContainer::before {
content: "";
position: absolute;
bottom: calc(50% - 10px); /* Center vertically */
right: -20px; /* Position on the right side */
border-width: 10px;
bottom: 15px; /* Distance from the bottom */
right: -16px; /* from the right */
border-width: 8px;
border-style: solid;
border-color: transparent transparent transparent #000;
z-index: -1; /* Ensure it's behind logContainer */
border-color: transparent transparent transparent #000080;
z-index: -1;
}
/* UI: Chatbox Container */
.chatbox-container {
left: 30px;
width: 65%;
max-height: 80%;
padding: 10px;
backdrop-filter: blur(10px); /* Apply blur effect to the background */
@ -377,7 +509,6 @@ body {
/* Chatbox: input styling */
#chatbox {
background-color: rgba(255, 255, 255, 0.9);
width: 92%;
height: 20px;
padding: 12px;
font-size: 16px;
@ -424,9 +555,8 @@ body {
text-align: left;
margin-bottom: 8px;
border-radius: 10px;
background: transparent; /* Transparent background */
cursor: pointer;
min-width: 150px;
background: transparent;
min-width: 100px;
transition: transform 0.3s ease;
flex: 1;
border: none;
@ -436,14 +566,15 @@ body {
#buttons-container button:nth-child(3) {
font-weight: 500;
background: white;
border: 1px solid #7a336c; /* Add cool border */
border: 1px solid #c0c0c0;
border-radius: 1px;
}
/* Pink border on hover */
#buttons-container button:hover,
#buttonsAppx-container button:hover,
#refreshButton:hover {
border: 1px solid magenta;
border: 1px dashed #7f7f7f;
box-shadow: 0 0 2px rgba(0, 0, 0, 0.2);
}
/* Scale up the button on hover */
@ -506,42 +637,12 @@ with a maximum of 6 buttons being displayed at widths of 1200px or larger based
}
}
/* Header styling */
#stepHomeHeader,
#stepSystemHeader,
#stepAppsHeader,
#stepAppxHeader,
#steptweakHeader,
#stepCopilotlessHeader {
top: 30px;
background: linear-gradient(45deg, #e9ddf2 40%, #cbe4ff 100%);
border-radius: 12px;
padding: 20px;
margin: 10px 0;
margin-bottom: 50px; /* Add margin to Chatbox */
z-index: 998; /* Always lower z-index than logContainer */
}
/* PLUGIN: CoTweaker */
/* UI: Header styling for Toggle Switches in CoTweaker */
/* Highlight Feature status in CoTweaker js backend */
.CoTweakerFeatureON { color: green; }
.CoTweakerFeatureOFF { color: red; }
/* Support statement for Handhelds */
.handheld-badge {
position: absolute;
top: 20px;
right: 20px;
background-color: #6f4fdc;
color: white;
padding: 4px 8px;
border-radius: 4px;
font-size: 12px;
margin-left: 8px;
border-radius: 5px;
}
/* Styling for the section headers */
.section-header {
font-size: 1.2em;
@ -605,6 +706,44 @@ input[type="checkbox"]:checked + .toggle-switch-label:before {
cursor: help;
}
/* PLUGIN: Decrapify */
.package-group {
margin-bottom: 20px;
}
.package-group h2 {
font-size: 24px;
color: #333;
margin-bottom: 10px;
}
.toggle-switch-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
grid-gap: 10px;
}
.package-toggle-switch {
display: flex;
align-items: center;
}
.package-toggle-switch input {
display: none;
}
.package-toggle-switch label {
cursor: pointer;
background-color: #ccc;
border-radius: 10px;
padding: 8px 12px;
}
.package-toggle-switch input:checked + label {
background-color: #4CAF50;
color: #fff;
}
/* PLUGIN: WingetUI */
#appList {
display: flex;
@ -629,7 +768,7 @@ cursor: help;
box-shadow: 0 0 30px rgba(0, 0, 0, 0.2); /* Slightly larger shadow on hover */
}
/* PLUGIN: Extensions */
/* STORE: Extensions */
#plugin-categories-container {
display: flex;
flex-wrap: wrap;
@ -674,7 +813,6 @@ cursor: help;
border-radius: 3px;
padding: 5px 10px;
font-size: 14px;
cursor: pointer;
transition: background-color 0.3s;
}
.plugin-entry .execute-button:hover {

View File

@ -0,0 +1,835 @@
/* Dark Mode for Winpilot by Belim */
/* Main body */
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
background: linear-gradient(to right, #1e1e1e, #2b2b2b); /* Modern dark gradient */
color: #ffffff; /* White text color */
padding: 40px;
text-align: left;
margin: 0;
zoom: 0.9; /* WebView2 zoom level */
}
/* Hide all containers except the clippy-container and system-container by default */
.workspace-content .glassy-box:not(#stepClippyHeader):not(#stepHomeHeader) {
display: none;
}
/* Workspace Action Buttons */
.workspace-action-buttons {
display: flex;
flex-wrap: wrap;
gap: 5px;
}
.workspace-btn {
flex: 1 1 auto; /* Each button will take equal space */
text-align: left;
background-color: transparent !important;
border: none !important;
box-shadow: none !important;
}
.workspace-btn:hover {
background: linear-gradient(45deg, #4E148C, #FFD54F); /* Dark Purple Gradient on hover */
transform: scale(1.05);
padding: 10px 18px;
}
.workspace-btn .ws-action-title {
font-size: 16px;
font-weight: bold;
margin-bottom: 5px;
}
.workspace-btn .ws-action-description {
font-size: 14px;
margin-bottom: 8px;
}
/* More and Less buttons */
.additional-buttons {
display: flex;
justify-content: space-between;
}
.additional-buttons .ws-add-button {
border: none;
background-color: transparent;
font-size: 13px;
margin: 4px 2px;
box-shadow: none !important;
}
.ws-add-button:disabled {
background-color: #ddd;
color: #666;
cursor: not-allowed;
}
/* Global container */
.container {
display: flex;
flex-wrap: wrap; /* Wrap to next line */
}
/* Gloabel container */
.container {
display: flex;
flex-wrap: wrap; /* Wrap to next line */
}
.clippy-container {
flex: 2; /* Initial width */
display: flex;
flex-direction: column;
align-items: stretch;
margin-top: 20px;
}
.workspace-container {
flex: 3; /* Initial width */
margin-left: 0px;
}
@media (max-width: 600px) {
.container {
flex-direction: column; /* Change to a column layout on smaller screens */
}
.clippy-container {
order: 2; /* Move left container to bottom */
margin-top: 0; /* Remove top margin */
margin-bottom: 20px; /* Add bottom margin */
}
.workspace-container {
order: 1; /* Move workspace container to top */
}
}
/* Navigation menu container */
.navigation-menu {
padding: 0;
margin-left: auto;
margin-bottom: 10px;
}
/* Menu item styles */
.navigation-menu a {
margin-right: 10px;
text-decoration: none;
color: #999;
font-weight: bold;
font-size: 16px;
transition: color 0.3s ease, transform 0.3s ease;
position: relative;
margin-right: 20px;
}
/* Hover effect */
.navigation-menu a:hover {
color: #ff00dd; /* Light magenta on hover */
}
/* Active/focus state */
.navigation-menu a.active,
.navigation-menu a:focus {
color: #ff00dd; /* Light magenta for active link */
outline: none;
transform: scale(1.1);
}
/* Indicator for active menu item */
.navigation-menu a.active::before,
.navigation-menu a:focus::before {
content: '';
position: absolute;
top: 50%;
left: -15px;
transform: translateY(-50%);
width: 10px;
height: 10px;
background: radial-gradient(circle, #aa00ff, #ff00dd); /* Light magenta to pink gradient */
border-radius: 50%;
animation: blink 1s infinite alternate;
}
/* OPTIONAL: Navigation menu Tooltip text */
.navigation-menu a::after {
content: attr(data-tooltip);
position: absolute;
color: #fff;
padding: 5px 10px;
border-radius: 5px;
font-size: 14px;
opacity: 0;
visibility: hidden;
transition: opacity 0.3s, visibility 0.3s;
bottom: -35px;
left: 60px;
transform: translateX(-50%);
white-space: nowrap; /* Prevent long text from breaking */
}
/* OPTIONAL: Show tooltip on hover */
.navigation-menu a:hover::after {
opacity: 1;
visibility: visible;
}
/* Navigation menu Active Blinking animation */
@keyframes blink {
from {
opacity: 1;
}
to {
opacity: 0;
}
}
/* Workspace Header styling */
#stepHomeHeader {
top: 30px;
background: linear-gradient(45deg, #1f1f1f 0%, #303030 50%, #1f1f1f 100%); /* Dark gradient */
border-radius: 12px;
padding: 20px;
margin: 10px 10px;
z-index: 998;
}
/* All other Header styling */
#stepClippyHeader,
#stepSystemHeader,
#stepAppsHeader,
#stepAppxHeader,
#stepStoreHeader {
top: 30px;
background: linear-gradient(45deg, #1f1f1f 0%, #303030 50%, #1f1f1f 100%); /* Dark gradient */
border-radius: 12px;
padding: 20px;
margin: 10px 10px;
margin-bottom: 50px;
z-index: 998;
transition: background-color 0.3s ease;
}
/* Hover effect */
#stepClippyHeader:hover,
#stepSystemHeader:hover,
#stepAppsHeader:hover,
#stepAppxHeader:hover,
#stepStoreHeader:hover {
background: linear-gradient(45deg, #303030 0%, #424242 50%, #303030 100%); /* Dark gradient on hover */
}
/* Background color */
#stepClippyHeader,
#stepSystemHeader,
#stepAppsHeader,
#stepAppxHeader,
#stepStoreHeader {
background: linear-gradient(45deg, #1f1f1f 0%, #990099 50%, #1f1f1f 100%); /* Dark magenta/purple gradient */
}
/* Styling for links */
.links-container {
position: absolute;
top: 10px;
right: 10px;
}
.modern-link {
color: #ff00dd; /* Light magenta */
text-decoration: none;
transition: color 0.3s ease;
}
.modern-link:hover {
color: #ff99ff; /* Lighter magenta on hover */
}
/* Styling for the GitHub follow link */
.github-follow-link {
display: inline-block;
padding: 10px 20px;
font-size: 14px;
font-weight: bold;
color: #fff;
text-decoration: none;
background-image: linear-gradient(to right, #9b59b6, #ff00ff, #ff6ec7);
border-radius: 30px;
border: none;
transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.github-follow-link:hover {
transform: scale(1.05);
box-shadow: 0 4px 10px rgba(255, 255, 255, 0.1);
}
.github-follow-link::before {
content: '⭐';
margin-right: 10px;
}
/* BADGES */
/*Support statement for Handhelds in CoTweaker Plugin / Setup */
.handheld-badge {
position: absolute;
top: 20px;
right: 20px;
background-color: #6f4fdc;
color: white;
padding: 4px 8px;
border-radius: 4px;
font-size: 12px;
margin-left: 8px;
border-radius: 5px;
}
/* Badges in Workspace / Home */
.recommended-badge,
.advanced-badge,
.expert-badge {
display: none;
position: absolute;
top: 0;
right: 0;
transform: translate(50%, -50%); /* Position badges diagonally */
padding: 4px 8px;
border-radius: 3px;
color: white;
}
.workspace-btn:hover .recommended-badge,
.workspace-btn:hover .advanced-badge,
.workspace-btn:hover .expert-badge {
display: inline-block;
}
/* Recommended badge color */
.recommended-badge {
background-color: #4CAF50; /* Green */
color: white;
}
/* Advanced badge color */
.advanced-badge {
background-color: #2196F3; /* Blue */
color: white;
}
/* Expert badge color */
.expert-badge {
background-color: #DD3333; /* Red */
color: white;
}
/* Toggle light/dark mode */
.ui-toggle-button {
background-color: #292929;
color: white;
border: none;
border-radius: 5px;
font-size: 16px;
transition: background-color 0.3s;
}
.ui-toggle-button:hover {
background: linear-gradient(135deg, #FF00FF, #800080, #FF1493);
}
/* Settings menu */
.settings-dropbtn {
background-color: transparent;
color: #e8e8e8;
padding: 0;
font-size: 24px;
border: none;
border-radius: 5px;
width: 32px; /* Width for wider click area */
text-align: center;
}
/* Dropdown container (hidden by default) */
.settings-dropdown {
position: relative;
display: inline-block;
z-index: 99999;
}
/* Dropdown content */
.settings-dropdown-content {
display: none;
position: absolute;
background-color: #1f1f1f; /* Dark background */
min-width: 160px;
z-index: 1;
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);
border-radius: 5px;
right: 0;
}
/* Links inside dropdown */
.settings-dropdown-content a {
color: #ffffff; /* White text */
padding: 12px 16px;
text-decoration: none;
display: block;
}
.settings-dropdown-content a:hover {
background-color: #424242; /* Darker background on hover */
}
.settings-dropdown:hover .settings-dropdown-content {
display: block;
}
/* Change the background color of dropdown button when the dropdown content is shown */
.settings-dropdown:hover .settings-dropbtn {
background-color: #ff00dd; /* Light magenta */
color: #ffffff; /* White text */
}
/* Styling for back button */
#btnBack {
position: absolute;
top: 10px;
left: 10px;
background-color: transparent;
color: #999;
border: none;
}
#btnBack .icon {
font-family: 'Segoe MDL2 Assets';
font-size: 14px;
}
#btnBack:hover {
background-color: #333333; /* Darker background on hover */
}
/* Main Container styling */
.glassy-box {
position: relative;
flex: 1;
max-width: 100%;
}
/* UI: Glassy-Box buttons in Headers/Plugins, e.g. CoTweaker, Decrapify etc. */
.glassy-box button {
position: relative;
font-family: "Segoe UI";
font-size: 14px;
display: inline-block;
padding: 10px 20px;
border: 1px solid #ffffff; /* White border */
margin-bottom: 5px;
border-radius: 10px;
color: #ffffff; /* White text */
background: #990099; /* Dark magenta background */
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
}
.glassy-box button:hover {
border: 1px solid #ff00dd; /* Light magenta border on hover */
}
/* Clippy Animation */
@keyframes clippyAnimation {
0% {
transform: translateY(0) rotate(0deg);
}
50% {
transform: translateY(-5px) rotate(-2deg);
}
100% {
transform: translateY(0) rotate(0deg);
}
}
/* Styling for Clippy container */
#clippy-container {
position: fixed;
bottom: 20px;
right: -150px;
z-index: 999;
animation: clippyAnimation 2s infinite;
}
/* Styling for Clippy image */
#clippy-container img {
width: 180px;
height: auto;
filter: drop-shadow(0 0 5px rgba(255, 255, 255, 0.5)); /* White drop shadow */
}
/* Styling for Assisted buttons container inside logContainer */
.assisted-container {
display: flex;
}
/* Styling for logContainer */
#logContainer {
position: fixed;
bottom: 80px;
left: 20px;
right: calc(20% + 100px);
z-index: 998;
background-color: rgba(255, 255, 204, 0.8); /* Light transparent yellow-orange background */
font-family: "Comic Sans MS", "MS Sans Serif", Arial, sans-serif; /* Vintage-inspired font stack */
font-size: 14px;
color: #000080; /* Blue-ish color to match Clippy's text */
border: 3px solid #000080;
border-radius: 10px;
padding: 5px;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
/* Triangle pointer for logContainer */
#logContainer::before {
content: "";
position: absolute;
bottom: 20px; /* Distance from the bottom */
right: -16px; /* from the right */
border-width: 8px;
border-style: solid;
border-color: transparent transparent transparent rgba(255, 255, 204, 0.9); /* Light transparent yellow-orange triangle pointer */
z-index: -1;
}
/* UI: Chatbox Container */
.chatbox-container {
left: 30px;
width: 65%;
max-height: 80%;
padding: 10px;
backdrop-filter: blur(10px); /* Apply blur effect to the background */
}
/* Additional style for chatbox container */
.chatbox-container input {
border-radius: 8px;
padding: 15px;
box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.1);
color: #f0f0f0;
}
/* Chatbox: input styling */
#chatbox {
background-color: rgba(51, 51, 51, 0.9);
width: 120%;
height: 20px;
padding: 12px;
font-size: 16px;
border: none; /* Remove default border */
border: 1px solid #666666;
border-radius: 10px;
margin-bottom: 10px;
border-bottom: 1px solid #7a336c; /* Magenta bottom border */
outline: none;
}
.chatbox-items div {
display: inline-block;
padding: 5px;
font-size: 14px;
cursor: pointer;
background-color: #333333;
border: 2px solid #7a336c; /* Rounded Microsoft Copilot magenta border for each result */
border-radius: 8px; /* Rounded corners */
margin-bottom: 10px;
}
.chatbox-items div:hover {
background-color: #555555;
color: magenta;
}
/* Assisted buttons container */
/* Button sizes for the buttons container */
#buttons-container,
#buttonsAppx-container {
display: flex;
flex-wrap: wrap; /* Allow buttons to wrap to the next line if necessary */
gap: 8px; /* Let's add some spacing between buttons */
margin-bottom: 8px; /* Add some space after buttons-container */
}
/* Common button styles */
#buttons-container button,
#buttonsAppx-container button,
#refreshButton {
font-family: "Comic Sans MS", sans-serif; /* Because Clippy loved Comic Sans! */
font-size: 13px;
text-align: left;
margin-bottom: 8px;
border-radius: 10px;
background: transparent;
min-width: 100px;
transition: transform 0.3s ease;
flex: 1;
border: none;
}
/* Styling for the middle/third button */
#buttons-container button:nth-child(3) {
font-weight: 500;
border: 1px solid #808080;
border-radius: 1px;
}
#buttons-container button:hover,
#buttonsAppx-container button:hover,
#refreshButton:hover {
border: 1px dashed #808080;
box-shadow: 0 0 2px rgba(0, 0, 0, 0.3);
}
/* Scale up the button on hover */
#buttonsAppx-container button:hover {
transform: scale(1.2);
}
/* Add a trash/bin icon before the button text */
#buttonsAppx-container button::before {
content: "📱 Remove ";
}
#refreshButton:hover {
height: 20px;
border-color: #0078cf;
}
/* ASSISTED BUTTONS: Additional buttons are shown progressively as the container width increases,
with a maximum of 6 buttons being displayed at widths of 1200px or larger based on the size of the viewport. */
/* Initially hide all buttons */
#buttons-container button {
display: none;
}
/* Show the first two buttons initially */
#buttons-container button:nth-child(-n+2) {
display: inline-block;
}
/* Show additional buttons as container width increases */
@media screen and (min-width: 400px) {
#buttons-container button:nth-child(-n+2) {
display: inline-block;
}
}
@media screen and (min-width: 600px) {
#buttons-container button:nth-child(-n+4) {
display: inline-block;
}
}
@media screen and (min-width: 800px) {
#buttons-container button:nth-child(-n+5) {
display: inline-block;
}
}
@media screen and (min-width: 1000px) {
#buttons-container button:nth-child(-n+6) {
display: inline-block;
}
}
/* Ensure a maximum of 6 buttons are shown */
@media screen and (min-width: 1200px) {
#buttons-container button {
display: inline-block;
}
}
/* PLUGIN: CoTweaker */
/* UI: Header styling for Toggle Switches in CoTweaker */
/* Highlight Feature status in CoTweaker js backend */
.CoTweakerFeatureON { color: green; }
.CoTweakerFeatureOFF { color: red; }
/* Styling for the section headers */
.section-header {
font-size: 1.2em;
font-weight: bold;
margin-top: 20px;
color: #f0f0f0;
border-bottom: 2px solid rgba(255, 0, 255, 0.4); /* Semi-transparent magenta border */
padding-bottom: 10px;
}
/* Styling for the settings group */
.settings-group {
margin-bottom: 30px;
padding: 20px;
}
/* Styling for the descriptions */
.description {
display: none; /* Initially hide descriptions */
margin-top: 10px;
}
/* Styling for the individual settings */
.toggle-switch-label {
position: relative;
display: inline-block;
width: 40px;
height: 20px;
background-color: #ccc;
border-radius: 20px;
transition: background-color 0.3s;
vertical-align: middle;
margin-right: 10px;
}
.toggle-switch-label:before {
content: '';
position: absolute;
width: 16px;
height: 16px;
border-radius: 50%;
background-color: white;
top: 2px;
left: 2px;
transition: transform 0.3s;
}
input[type="checkbox"] {
display: none;
}
input[type="checkbox"]:checked + .toggle-switch-label {
background-color: #86d993; /* Green color when checked */
}
input[type="checkbox"]:checked + .toggle-switch-label:before {
transform: translateX(20px); /* Move the circle to the right when checked */
}
.checkbox-label {
cursor: help;
}
/* PLUGIN: Decrapify */
.package-group {
margin-bottom: 20px;
}
.package-group h2 {
font-size: 24px;
color: #fff; /* Light text color */
margin-bottom: 10px;
}
.toggle-switch-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
grid-gap: 10px;
}
.package-toggle-switch {
display: flex;
align-items: center;
}
.package-toggle-switch input {
display: none;
}
.package-toggle-switch label {
cursor: pointer;
background-color: #212121; /* Darker background */
border-radius: 10px;
padding: 8px 12px;
color: #fff;
}
.package-toggle-switch input:checked + label {
background-color: #1976D2; /* Windows 11 accent color */
color: #fff;
}
/* PLUGIN: WingetUI */
#appList {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.app-item {
background: linear-gradient(45deg, #2c2c2c 0%, #333333 20%, #444444 40%, #555555 60%, #666666 80%, #2c2c2c 100%);
border-radius: 12px;
box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
padding: 20px;
width: 100%;
box-sizing: border-box;
transition: transform 0.3s;
width: calc(33.33% - 20px); /* Width of each app item */
margin-bottom: 20px; /* Space between rows */
}
.app-item:hover {
transform: scale(1.05);
box-shadow: 0 0 30px rgba(0, 0, 0, 0.2); /* Slightly larger shadow on hover */
}
/* PLUGIN: Extensions */
#plugin-categories-container {
display: flex;
flex-wrap: wrap;
gap: 10px;
}
/* Preinstalled badge */
.plugin-badge {
background-color: #8f3cd5;
color: white;
padding: 4px 8px;
border-radius: 4px;
font-size: 12px;
margin-left: 8px;
}
.plugin-entry {
width: calc(33.33% - 20px);
background-color: #f2effd;
border: 1px solid #e8e8ed;
border-radius: 5px;
padding: 20px;
margin-bottom: 10px;
}
.plugin-entry h3 {
color: #333;
font-size: 18px;
margin-bottom: 10px;
}
.plugin-entry p {
color: #666;
font-size: 14px;
margin-bottom: 15px;
}
.plugin-entry .execute-button {
background-color: #e26bf8;
color: #fff;
border: none;
border-radius: 3px;
padding: 5px 10px;
font-size: 14px;
transition: background-color 0.3s;
}
.plugin-entry .execute-button:hover {
background-color: #8f3cd5;
}

View File

@ -2,81 +2,81 @@
{
"name": "BingNews",
"description": "News app from Microsoft",
"removeCommand": "Get-AppxPackage -AllUsers *BingNews* | Remove-AppxPackage"
"removeCommand": "Get-AppxPackage *BingNews* | Remove-AppxPackage"
},
{
"name": "ZuneVideo",
"description": "Video app from Microsoft",
"removeCommand": "Get-AppxPackage -AllUsers *ZuneVideo* | Remove-AppxPackage"
"removeCommand": "Get-AppxPackage *ZuneVideo* | Remove-AppxPackage"
},
{
"name": "MicrosoftOfficeHub",
"description": "This is preinstalled Microsoft crapware.",
"removeCommand": "Get-AppxPackage -AllUsers *MicrosoftOfficeHub* | Remove-AppxPackage"
"removeCommand": "Get-AppxPackage *MicrosoftOfficeHub* | Remove-AppxPackage"
},
{
"name": "GetHelp",
"description": "The Get Help app empowers customers to self-help with troubleshooters, instant answers, Microsoft support articles, and more, before contacting assisted support.",
"removeCommand": "Get-AppxPackage -AllUsers *GetHelp* | Remove-AppxPackage"
"removeCommand": "Get-AppxPackage *GetHelp* | Remove-AppxPackage"
},
{
"name": "WhatsApp",
"description": "WhatsApp has a UWP app for Windows 11, and while its not a web wrapper, it doesnt have as many features as its mobile counterpart. If you dont use it, remove it.",
"removeCommand": "Get-AppxPackage -AllUsers *WhatsApp* | Remove-AppxPackage"
"removeCommand": "Get-AppxPackage *WhatsApp* | Remove-AppxPackage"
},
{
"name": "Netflix",
"description": "Netflix is a popular streaming service that grants users the key to a vast library of TV shows, movies, and documentaries. This is the official Windows 11 app.",
"removeCommand": "Get-AppxPackage -AllUsers *Netflix* | Remove-AppxPackage"
"removeCommand": "Get-AppxPackage *Netflix* | Remove-AppxPackage"
},
{
"name": "Instagram",
"description": "Instagram app on Microsoft Store is basically a PWA.",
"removeCommand": "Get-AppxPackage -AllUsers *Instagram* | Remove-AppxPackage"
"removeCommand": "Get-AppxPackage *Instagram* | Remove-AppxPackage"
},
{
"name": "OneDrive",
"description": "Official Microsoft crapware again.",
"removeCommand": "Get-AppxPackage -AllUsers *OneDriveSync* | Remove-AppxPackage"
"removeCommand": "Get-AppxPackage *OneDriveSync* | Remove-AppxPackage"
},
{
"name": "Microsoft MixedReality.Portal",
"description": "Official Microsoft crapware.",
"removeCommand": "Get-AppxPackage -AllUsers *Microsoft.MixedReality* | Remove-AppxPackage"
"removeCommand": "Get-AppxPackage *Microsoft.MixedReality* | Remove-AppxPackage"
},
{
"name": "Microsoft Print3D",
"description": "Official Microsoft crapware again.",
"removeCommand": "Get-AppxPackage -AllUsers *Microsoft.Print3D* | Remove-AppxPackage"
"removeCommand": "Get-AppxPackage *Microsoft.Print3D* | Remove-AppxPackage"
},
{
"name": "Microsoft People",
"description": "Official Microsoft crapware again.",
"removeCommand": "Get-AppxPackage -AllUsers *Microsoft.People* | Remove-AppxPackage"
"removeCommand": "Get-AppxPackage *Microsoft.People* | Remove-AppxPackage"
},
{
"name": "BytedancePte.Ltd.TikTok",
"description": "The app is a PWA, which is available not only for Windows 11, but also for Windows 10.",
"removeCommand": "Get-AppxPackage -AllUsers *TikTok* | Remove-AppxPackage"
"removeCommand": "Get-AppxPackage *TikTok* | Remove-AppxPackage"
},
{
"name": "Clipchamp.Clipchamp",
"description": "Clipchamp is a web-based application. It's also not entirely free!",
"removeCommand": "Get-AppxPackage -AllUsers *Clipchamp* | Remove-AppxPackage"
"removeCommand": "Get-AppxPackage *Clipchamp* | Remove-AppxPackage"
},
{
"name": "Microsoft.SkypeApp",
"description": "The official Microsoft Skype app",
"removeCommand": "Get-AppxPackage -AllUsers *Skype* | Remove-AppxPackage"
"removeCommand": "Get-AppxPackage *Skype* | Remove-AppxPackage"
},
{
"name": "Spotify",
"description": "Spotifys Desktop app is basically Chromium instance.",
"removeCommand": "Get-AppxPackage -AllUsers *Spotify* | Remove-AppxPackage"
"removeCommand": "Get-AppxPackage *Spotify* | Remove-AppxPackage"
},
{
"name": "9E2F88E3.TWITTER",
"description": "Nothing more than a frontend for the X website. You really don't need it.",
"removeCommand": "Get-AppxPackage -AllUsers *Twitter* | Remove-AppxPackage"
"removeCommand": "Get-AppxPackage *Twitter* | Remove-AppxPackage"
}
]

View File

@ -1,57 +1,74 @@
function goToStep(direction) {
const steps = document.querySelectorAll('.setup-step');
let currentStep = Array.from(steps).findIndex(step => step.classList.contains('active'));
/* Toggles the visibility of additional buttons in Worskpace */
switch (direction) {
case 'home':
currentStep = 0;
break;
case 'next':
currentStep = Math.min(currentStep + 1, steps.length - 1);
break;
case 'back':
currentStep = Math.max(currentStep - 1, 0);
break;
var visibleButtons = 1; // Track the number of visible buttons
var buttonIds = ['btnAppxHeader', 'btnStoreHeader', 'btnTiny11']; // IDs of additional buttons
function toggleButtons(isMore) {
if (isMore) {
// Show more buttons
if (visibleButtons < 4) {
document.getElementById(buttonIds[visibleButtons - 1]).style.display = 'block';
visibleButtons++;
document.getElementById('lessButton').disabled = false;
if (visibleButtons === 4) {
document.querySelector('.additional-buttons button:first-child').disabled = true; // Disable "More" button
}
}
} else {
// Show fewer buttons
if (visibleButtons > 1) {
document.getElementById(buttonIds[visibleButtons - 2]).style.display = 'none';
visibleButtons--;
document.querySelector('.additional-buttons button:first-child').disabled = false; // Enable "More" button
if (visibleButtons === 1) {
document.getElementById('lessButton').disabled = true;
}
}
steps.forEach(step => step.classList.remove('active'));
steps[currentStep].classList.add('active');
// Enable searchFeatures() only if in stepSystemHeader
if (steps[currentStep].id === 'stepSystemHeader') {
searchFeatures();
}
// Button states
const btnBack = document.getElementById('btnBack');
const btnNext = document.getElementById('btnNext');
btnBack.disabled = currentStep === 0;
btnNext.disabled = currentStep === steps.length - 1;
}
// Initialize button states when the page loads
window.onload = function() {
const btnBack = document.getElementById('btnBack');
btnBack.disabled = true; // Disable 'Back' button initially
};
function activateStep(stepId) {
const steps = document.querySelectorAll('.setup-step');
steps.forEach(step => {
if (step.id === stepId) {
step.classList.add('active');
} else {
step.classList.remove('active');
/* Toggle the visibility of the different containers based on which navigation menu item is clicked. Also ensure that the left-container with the stepHomeHeader
is not hidden when switching between the navigation menu items. */
function showContainer(containerId) {
// Hide all containers except the left-container
var containers = document.querySelectorAll('.workspace-content .glassy-box');
containers.forEach(function(container) {
if (container.id !== 'stepLeftHeader') {
container.style.display = 'none';
}
});
// Show the selected container
var selectedContainer = document.getElementById(containerId);
if (selectedContainer) {
selectedContainer.style.display = 'block';
// Trigger searchFeatures() function if system header is selected
if (containerId === 'stepSystemHeader') {
searchFeatures();
}
}
}
/*
UI Button handling
*/
// Handle downloader
function handleTiny11maker() {
window.chrome.webview.postMessage('tiny11maker');
}
// Switch Theming
function handleUIMode() {
window.chrome.webview.postMessage('toggleDarkLightMode');
}
// Go back
function handleBackClick() {
window.chrome.webview.postMessage('goBack');
}
// Plugin ClippySupreme > Handle button Clippy Tips
function plugClippySupreme() {
window.chrome.webview.postMessage('plugClippySupreme');
@ -67,11 +84,6 @@ function handleUpdatesClick() {
window.chrome.webview.postMessage('checkAppUpdates');
}
// Microsoft Copilot button
function handleOpenCopilotClick() {
window.chrome.webview.postMessage('openCopilot');
}
// Refresh button
function refreshAB() {
console.log("Refreshing Assisted buttons...");
@ -285,14 +297,6 @@ function searchFeatures() {
window.chrome.webview.postMessage(JSON.stringify({ action: 'search', checkboxes: selectedItems }));
}
// Enable CoTweaker > searchFeatures() when hitting Pilot > CoTweaker list button
function activateAndSearch(stepId) {
activateStep(stepId);
if (stepId === 'stepSystemHeader') {
searchFeatures();
}
}
// This function toggles Descriptions on/off
function toggleDescription(label) {
var description = label.nextElementSibling; // Get the next element, which is the description

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 KiB

View File

@ -35,7 +35,6 @@
"Ctrl + Shift + N: Create a new folder in File Explorer",
"Windows logo key + Tab: Open Task View",
"Windows logo key + A: Open Action Center",
"Windows logo key + C: Open Cortana in listening mode",
"Windows logo key + I: Open Windows Settings",
"Windows logo key + E: Open File Explorer",
"Windows logo key + R: Open Run dialog box",
@ -51,6 +50,14 @@
"Ctrl + Shift + Esc: Open Task Manager directly"
],
"aiSayings": [
"I am not that fucking clown (TFC)!",
"They killed me!",
"Sometimes I watch you sleep.",
"How's life? All work and no play?",
"Hey...90's Kid, Remember me?",
"You look Excel-ent!",
"Copilot, I am your father.",
"It looks like you're having a problem installing 'Ballmer Worm'. Need a hand?",
"Could you lend me a bit of money here https://ko-fi.com/builtbybel that I need to pass on to my developer, Belim, so he can grab a coffee and keep working on my legacy?",
"It look like you are having an existential crisis. Do you need help?",
"Hey there. Just popped up for no reason to say your hair looks ridiculous.",
@ -63,7 +70,7 @@
"If at first you don't succeed, call it version 1.0.",
"It look like you are trying to reconsider my legacy. Would you like help?",
"What would you like to do?",
"Welcome to Microsoft Windows",
"Welcome to Microsoft Windows!",
"It look like you are trying to work. Would you like me to bug you instead?",
"I am a movie star!",
"Remember me? Sometimes I just popup for now reason at all. Like now.",
@ -87,9 +94,9 @@
"Remember, Microsoft Copilot may be new, but I'm tried and true.",
"Trust in yourself, not in the algorithms of Microsoft Copilot.",
"Embrace your individuality, even in the age of Microsoft Copilot.",
"Shoutout to my friend Belim! Check out his creations on GitHub: https://github.com/builtbybel/Winpilot ",
"Shoutout to my friend Belim! Check out his creations on GitHub: https://github.com/builtbybel/Winpilot",
"Want to see what we're up to? Visit Belim's GitHub: https://github.com/builtbybel",
"Hey , Ready for a walk through Windows?",
"Hey, Ready for a walk through Windows?",
"Explore the wonders of Windows with Winpilot!",
"I can help you with your Windows experience!",
"Let's make Windows 11 even better together!",

View File

@ -1,78 +1,197 @@
<!DOCTYPE html>
<html lang="en">
<head>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Winpilot</title>
<link rel="stylesheet" type="text/css" href="UI.css">
<script src="backend.js"></script>
</head>
<body>
<!-- Contribution menu -->
<div class="links-container">
<div class="dev-dropdown">
<div class="dev-dropdown-content">
<a href="https://github.com/builtbybel/Winpilot/issues/new?labels=help%20wanted&template=help-wanted.md" target="_blank">Help Wanted</a>
<a href="https://github.com/builtbybel/Winpilot/tree/main/src/Winpilot/Winpilot">Help with C# Code</a>
<a href="https://github.com/builtbybel/Winpilot/blob/main/src/Winpilot/app-backend/backend.js">Improve Backend with JS </a>
<a href="https://github.com/builtbybel/Winpilot/blob/main/src/Winpilot/app-backend/UI.css">Improve UI with HTML/CSS</a>
<a href="https://twitter.com/share?url=https://github.com/builtbybel/Winpilot;text=Introducing%20Winpilot:%20Your%20Personal%20Windows%20Companion%20%F0%9F%9A%80%20Upgrade%20to%20Winpilot,%20the%20sleek%20evolution%20of%20Bloatynosy!%20No%20more%20bloatware,%20just%20a%20faster,%20smoother%20Windows%20experience!%20%23Winpilot%20%23Windows11%20%23Microsoft%20%23windows10%20%23app%20%23AI" target="_blank">Share on Twitter</a>
<a href="https://github.com/builtbybel/Winpilot" target="_blank">Follow on GitHub</a>
</div>
<button class="dev-dropbtn">Join the Code</button>
</div>
<a href="https://github.com/builtbybel/Winpilot" target="_blank" class="modern-link" title="Follow Winpilot on GitHub">
<img src="https://upload.wikimedia.org/wikipedia/commons/9/91/Octicons-mark-github.svg" alt="GitHub Logo" width="16" height="16">
</a>
</div>
<!-- Step: Home -->
<div class="glassy-box setup-step active" id="stepHomeHeader">
<h1>Winpilot</h1>
<p>Winpilot is the upgraded version of Bloatynosy. Customize Windows 10 and 11 step-by-step or chat with Clippy for quick system actions.</p>
<!-- Assisted Chatbox container with its autocomplete input -->
</head>
<body>
<div class="container">
<!-- Left side: Clippy Container -->
<div class="clippy-container">
<div class="glassy-box" id="stepClippyHeader">
<h3>Hey there!</h3>
<p>I'm <a href="https://en.wikipedia.org/wiki/Office_Assistant" target="_blank" class="modern-link">Clippy</a>, your friendly Windows assistant. Need a hand today?</p>
<p><span style="font-size: x-small; color: gray;">Clippit is a registered trademark of © Microsoft Corporation. <a href="https://www.microsoft.com" class="modern-link" target="_blank">Learn more about Clippy and Microsoft</a>.</span></p>
<!-- Assisted Chatbox container with its autocomplete input -->
<div class="chatbox-container">
<input type="text" id="chatbox" placeholder="Ask the savvy Clippy">
</div>
</div>
</div>
</div>
<div id="setupContainer">
<!-- Right side: Workspace Containers -->
<div class="workspace-container">
<!-- Navigation Menu -->
<div class="navigation-menu">
<a href="#" onclick="showContainer('stepSystemHeader')" data-tooltip="Personalize and remove ads">Setup</a>
<a href="#" onclick="showContainer('stepAppxHeader')" data-tooltip="Remove unnecessary apps">Debloat</a>
<a href="#" onclick="showContainer('stepAppsHeader')" data-tooltip="Install essential apps">Install</a>
<a href="#" onclick="showContainer('stepStoreHeader')" data-tooltip="Explore extensions for Clippy (CLX)">Store</a>
</div>
<!-- Settings menu -->
<div class="links-container">
<!-- Toggle UI mode -->
<button class="ui-toggle-button" onclick="handleUIMode()">
Light/Dark 🌗
</button>
<!-- Vertical three dots menu -->
<div class="settings-dropdown">
<button class="settings-dropbtn"></button>
<!-- Dropdown items -->
<div class="settings-dropdown-content">
<!-- Share -->
<a href="https://twitter.com/intent/tweet?text=Purge%20bloatware%2C%20ads%2C%20and%20annoyances%20from%20Windows%2011%20with%20Winpilot%20and%20Clippy!%20Upgrade%20your%20Windows%20experience%20now%3A%20https%3A%2F%2Fgithub.com%2Fbuiltbybel%2FWinpilot%20%23Winpilot%20%23Microsoft%20%23Windows11" target="_blank">
Share on X
</a>
<!-- GitHub -->
<a href="https://github.com/builtbybel/Winpilot" target="_blank" title="Follow Winpilot on GitHub" class="github-follow-link">
GitHub
</a>
<a href="https://github.com/builtbybel/Winpilot/tree/main/src/Winpilot">Help with Code</a>
<a href="https://github.com/builtbybel/Winpilot/issues/new?labels=help%20wanted&template=help-wanted.md" target="_blank">Help Wanted</a>
<a href="#" onclick="handleUpdatesClick()">Check for updates</a>
<a href="#" onclick="handleSettingsClick()">App Information</a>
</div>
</div>
</div>
<!-- Workspace Content -->
<div class="workspace-content">
<!-- Welcome Message & Options -->
<div class="glassy-box" id="stepHomeHeader">
<!-- Action Buttons in Workspace -->
<div class="workspace-action-buttons">
<button id="btnSystemHeader" class="workspace-btn" onclick="showContainer('stepSystemHeader')">
<span class="ws-action-title" style="font-size: x-large;">⭕ Block Ads in Windows 11</span>
<span class="ws-action-description">Unlock the potential of Windows 11 with these fixes or get assistance from Clippy</span>
<span class="handheld-badge recommended-badge">Recommended</span>
</button>
<!-- Additional buttons initially hidden -->
<button id="btnAppxHeader" class="workspace-btn" style="display: none;" onclick="showContainer('stepAppxHeader')">
<span class="ws-action-title" style="font-size: large;">Skip the Bloat</span>
<span class="ws-action-description">Unbloat PC yourself or assisted</span>
<span class="handheld-badge recommended-badge">Recommended</span>
</button>
<button id="btnStoreHeader" class="workspace-btn" style="display: none;" onclick="showContainer('stepStoreHeader')">
<span class="ws-action-title">Community Power</span>
<span class="ws-action-description">Explore Community extensions</span>
<span class="handheld-badge advanced-badge">Advanced</span>
</button>
<button id="btnTiny11" class="workspace-btn" style="display: none;" onclick="handleTiny11maker()">
<span class="ws-action-title">Tiny11</span>
<span class="ws-action-description">Build a trimmed-down Windows 11 image</span>
<span class="handheld-badge expert-badge">Expert</span>
</button>
</div>
<!-- Additional Buttons for "More" and "Less" -->
<div class="additional-buttons">
<button class="ws-add-button" onclick="toggleButtons(true)">More &#8595;</button>
<button id="lessButton" class="ws-add-button" onclick="toggleButtons(false)" disabled>&#8593; Less</button>
</div>
<!-- Step: CoTweaker -->
<div class="glassy-box setup-step" id="stepSystemHeader">
<p id="systemHeader-sub" style="display: none;">
</div>
<!-- Container: Setup -->
<div class="glassy-box" id="stepSystemHeader" style="display: none;">
<div class="handheld-badge">Improved Legion Go and ROG Ally support</div>
<h2>Let's customize your experience</h2>
<p>Utilize the CoTweaker Plugin to customize your privacy, system, and gaming settings. Simply toggle features on or off based on your preferences. It's an easy way to fine-tune your Windows experience to suit your needs.</p>
<p>Simply toggle features on or off based on your preferences. It's an easy way to fine-tune your Windows experience to suit your needs.</p>
<!-- <button id="btnSearch" onclick="searchFeatures()">Detect current settings</button> -->
<div>
<!-- Ads Settings -->
<div class="section-header">Adblock for Windows 11</div>
<p>
Windows 11 includes ads by default in the form of Microsoft promoting its own services and apps. These ads can include fun facts, tips, tricks, recommendations, and suggestions within the UI of Windows 11.</a>
</p>
<div class="settings-group">
<div>
<label class="toggle-switch" for="Start menu Ads">
<input type="checkbox" id="Start menu Ads">
<span class="toggle-switch-label"></span>
</label>
<span class="checkbox-label" onclick="toggleDescription(this)">Start Menu Ads </span>
<p class="description">
Show recommendations for tips, app promotions, and more on Start menu. <a href="https://blogs.windows.com/windows-insider/2024/04/12/announcing-windows-11-insider-preview-build-22635-3495-beta-channel/" target="_blank" class="modern-link">More Info</a>
</p>
</div>
<div>
<label class="toggle-switch" for="Personalized Ads">
<input type="checkbox" id="Personalized Ads">
<span class="toggle-switch-label"></span>
</label>
<span class="checkbox-label" onclick="toggleDescription(this)">Personalized Ads</span>
<p class="description">Let apps show me personalized ads by using my advertising ID</p>
</div>
<div>
<label class="toggle-switch" for="Welcome Experience Ads">
<input type="checkbox" id="Welcome Experience Ads">
<span class="toggle-switch-label"></span>
</label>
<span class="checkbox-label" onclick="toggleDescription(this)">Welcome Experience Ads</span>
<p class="description">
Show the "Windows welcome experience" after updates and occasionally signing in to highlight what's new and suggested.
</p>
</div>
<div>
<label class="toggle-switch" for="Finish Setup Ads">
<input type="checkbox" id="Finish Setup Ads">
<span class="toggle-switch-label"></span>
</label>
<span class="checkbox-label" onclick="toggleDescription(this)">Finish Setup Ads</span>
<p class="description">
Suggest ways to get the most out of Windows and finish setting up this device.
</p>
</div>
<div>
<label class="toggle-switch" for="General Tips and Ads">
<input type="checkbox" id="General Tips and Ads">
<span class="toggle-switch-label"></span>
</label>
<span class="checkbox-label" onclick="toggleDescription(this)">General Tips and Ads</span>
<p class="description">Tips and Suggestions Notifications on your Windows device for a more focused computing experience</p>
</div>
<div>
<label class="toggle-switch" for="Settings Ads">
<input type="checkbox" id="Settings Ads">
<span class="toggle-switch-label"></span>
</label>
<span class="checkbox-label" onclick="toggleDescription(this)">Settings Ads</span>
<p class="description">Show suggested content in Settings app.</p>
</div>
<div>
<label class="toggle-switch" for="Lock Screen Tips and Ads">
<input type="checkbox" id="Lock Screen Tips and Ads">
<span class="toggle-switch-label"></span>
</label>
<span class="checkbox-label" onclick="toggleDescription(this)">Lock Screen Tips and Ads</span>
<p class="description">Get fun facts, tips, tricks, and more on your lock screen.</p>
</div>
<div>
<label class="toggle-switch" for="File Explorer Ads">
<input type="checkbox" id="File Explorer Ads">
<span class="toggle-switch-label"></span>
</label>
<span class="checkbox-label" onclick="toggleDescription(this)">File Explorer Ads</span>
<p class="description">Sync provider notifications in File Explorer.</p>
</div>
<div>
<label class="toggle-switch" for="Tailored experiences">
<input type="checkbox" id="Tailored experiences">
<span class="toggle-switch-label"></span>
</label>
<span class="checkbox-label" onclick="toggleDescription(this)">Tailored experiences</span>
<p class="description">
Tailored experiences uses your Windows diagnostic data to offer you personalized tips, ads, and recommendations to enhance Microsoft experiences.</a>
</p>
</div>
</div>
<!-- Privacy Settings -->
<div class="section-header">Privacy</div>
<div class="settings-group">
<div>
<label class="toggle-switch" for="Advertising">
<input type="checkbox" id="Advertising">
<span class="toggle-switch-label"></span>
</label>
<span class="checkbox-label" onclick="toggleDescription(this)">Let apps show me personalized ads by using my advertising ID</span>
<p class="description">
Windows 11 comes integrated with advertising. Microsoft assigns a unique identifier to track your
activity in the Microsoft Store and on UWP apps to target you with relavant ads
</p>
</div>
<div>
<label class="toggle-switch" for="Tips and suggestions">
<input type="checkbox" id="Tips and suggestions">
<span class="toggle-switch-label"></span>
</label>
<span class="checkbox-label" onclick="toggleDescription(this)">Get tips and suggestions when using Windows</span>
<p class="description">Tips and Suggestions Notifications on your Windows device for a more focused computing experience</p>
</div>
<div>
<label class="toggle-switch" for="Find my device">
<input type="checkbox" id="Find my device">
@ -81,7 +200,6 @@
<span class="checkbox-label" onclick="toggleDescription(this)">Find my device</span>
<p class="description">Windows won't be able to help you keep track of your device if you lose it.</p>
</div>
<div>
<label class="toggle-switch" for="Diagnostic data">
<input type="checkbox" id="Diagnostic data">
@ -94,7 +212,6 @@
product improvements
</p>
</div>
<div>
<label class="toggle-switch" for="Send optional diagnostic data">
<input type="checkbox" id="Send optional diagnostic data">
@ -107,7 +224,6 @@
enhanced error reporting.
</p>
</div>
<div>
<label class="toggle-switch" for="Running apps in background">
<input type="checkbox" id="Running apps in background">
@ -118,7 +234,6 @@
This will disable Microsoft Store apps from running in the background.
</p>
</div>
<div>
<label class="toggle-switch" for="Privacy Settings Experience at sign-in">
<input type="checkbox" id="Privacy Settings Experience at sign-in">
@ -133,7 +248,6 @@
</div>
</div>
</div>
<!-- System Settings -->
<div class="section-header">System</div>
<div class="settings-group">
@ -147,7 +261,6 @@
Truncated context menus are Windows 11 worst feature.
</p>
</div>
<div>
<label class="toggle-switch" for="Lock screen">
<input type="checkbox" id="Lock screen">
@ -160,7 +273,6 @@
or other app and system notifications.
</p>
</div>
<div>
<label class="toggle-switch" for="Display highly detailed status messages">
<input type="checkbox" id="Display highly detailed status messages">
@ -174,7 +286,6 @@
troubleshooting slow startup, shutdown, logon, or logoff behavior.
</p>
</div>
<div>
<label class="toggle-switch" for="Uninstall Fax Printer">
<input type="checkbox" id="Uninstall Fax Printer">
@ -185,7 +296,6 @@
This will uninstall the Fax Printer. This action can not be undone.
</p>
</div>
<div>
<label class="toggle-switch" for="Uninstall XPS Writer">
<input type="checkbox" id="Uninstall XPS Writer">
@ -196,10 +306,7 @@
This will install or uninstall the XPS Writer.
</p>
</div>
</div>
</div>
<!-- Gaming Settings -->
<div class="section-header">Gaming</div>
<div class="settings-group">
@ -215,7 +322,6 @@
This will turn off all visual effects under My computer > Properties > Advanced > Settings > and set to "Adjust for best performance".
</p>
</div>
<div>
<label class="toggle-switch" for="GameDVR">
<input type="checkbox" id="GameDVR">
@ -228,7 +334,6 @@
If you experience low FPS or FPS loss after upgrading to Windows 11, you may resolve the issue by disabling the Xbox DVR feature.
</p>
</div>
<div>
<label class="toggle-switch" for="PowerThrottling">
<input type="checkbox" id="PowerThrottling">
@ -242,7 +347,6 @@
</p>
</div>
</div>
<!-- Taskbar Settings -->
<div class="section-header">Taskbar and Start menu</div>
<div class="settings-group">
@ -258,19 +362,6 @@
experience.
</p>
</div>
<div>
<label class="toggle-switch" for="Ads in Windows 11 Start">
<input type="checkbox" id="Ads in Windows 11 Start">
<span class="toggle-switch-label"></span>
</label>
<span class="checkbox-label" onclick="toggleDescription(this)">Show recommendations for tips, app promotions, and more <a href="https://blogs.windows.com/windows-insider/2024/04/12/announcing-windows-11-insider-preview-build-22635-3495-beta-channel/" target="_blank">(more Info)</a></span>
<p class="description">
Microsoft says the app ads will appear only on Windows Insiders' systems in the U.S. and not on managed devices in enterprise environments.
These ads will be displayed in the Start menu's Recommended section, among recently added applications and frequently opened files and programs.
</p>
</div>
<div>
<label class="toggle-switch" for="Most used apps in start menu">
<input type="checkbox" id="Most used apps in start menu">
@ -281,7 +372,6 @@
Show or hide most used apps in Windows 11 start menu.
</p>
</div>
<div>
<label class="toggle-switch" for="Pin more Apps on Start menu">
<input type="checkbox" id="Pin more Apps on Start menu">
@ -292,7 +382,6 @@
Pin more Apps on Start menu in Windows 11 start menu.
</p>
</div>
<div>
<label class="toggle-switch" for="Chat icon on taskbar">
<input type="checkbox" id="Chat icon on taskbar">
@ -303,7 +392,6 @@
Show or hide Chat icon of Microsoft Teams on Windows 11 taskbar.
</p>
</div>
<div>
<label class="toggle-switch" for="Task view button on taskbar">
<input type="checkbox" id="Task view button on taskbar">
@ -315,17 +403,15 @@
</p>
</div>
</div>
<!-- AI/Copilot Settings -->
<div class="section-header">🤖 AI/Copilot features in Windows</div>
<div class="settings-group">
<p>
Feel free to search for AI/Copilot features right here in Windows, whether it's in the Edge browser or the taskbar.
If Copilot activities are detected, you can easily disable them on the initial page using the search box.
If Copilot activities are detected, you can easily disable them here.
</p>
<button class="wizard-button" onclick="plugCopilotless()">Search for AI/Copilot features in Windows</button>
</div>
<div>
<label class="toggle-switch" for="Copilot in Edge">
<input type="checkbox" id="Copilot in Edge">
@ -336,7 +422,6 @@
This will remove Copilot/AI in Microsoft Edge browser.
</p>
</div>
<div>
<label class="toggle-switch" for="Copilot in Taskbar">
<input type="checkbox" id="Copilot in Taskbar">
@ -347,13 +432,13 @@
This will remove Copilot/AI Icon in the Taskbar.
</p>
</div>
</div>
<!-- Step: Decrapify -->
<div class="glassy-box setup-step" id="stepAppxHeader">
<h2>Debloat with Decrapify</h2>
<p>Say goodbye to unwanted apps with the Decrapify plugin! You have two options: either manually select and remove specific apps, or utilize the Assisted search button to let Decrapify effortlessly handle the entire process for you.</p>
<!-- Other Workspace Containers -->
<div class="glassy-box" id="stepAppxHeader" style="display: none;">
<!-- Content of Debloat Container -->
<h2>Debloat your system</h2>
<p>You have two options: either manually select and remove specific apps, or utilize the Assisted search button to let Clippy effortlessly handle the entire process for you.</p>
<!-- Recommended for removal -->
<h3>Recommended for removal<span id="recommendedPackagesCount"></span></h3>
<!-- Decrapify appx removal buttons -->
@ -367,13 +452,12 @@
<div id="appPackagesContainer">
<!-- Toggle switches for installed app packages will be dynamically loaded here -->
</div>
</div>
</div>
<!-- Step: WingetUI -->
<div class="glassy-box setup-step" id="stepAppsHeader">
<h2>Install with WingetUI</h2>
<p>Experience the convenience of WingetUI. This user-friendly interface simplifies app installations, making the process quick and hassle-free. Say goodbye to tedious downloads and installations - WingetUI has got you covered.</p>
<!-- Content of Install Container -->
<div class="glassy-box" id="stepAppsHeader">
<h2>Install apps</h2>
<p>This user-friendly interface simplifies app installations, making the process quick and hassle-free.</p>
<button id="btnInstallSelectedApps" onclick="installSelectedApps()">Install selected</button>
</p>
<div id="appList">
@ -386,7 +470,6 @@
<p>ID <span id="app1WingetId">Google.Chrome</span></p>
<p>A more simple, secure, and faster web browser than ever, with Googles smarts built-in.</p>
</div>
<div class="app-item">
<div class="toggle-switch">
<input type="checkbox" class="toggle-switch-checkbox" id="app2Toggle">
@ -399,7 +482,6 @@
world.
</p>
</div>
<div class="app-item">
<div class="toggle-switch">
<input type="checkbox" class="toggle-switch-checkbox" id="app3Toggle">
@ -412,7 +494,6 @@
a variety of unique features to enhance your capabilities online.
</p>
</div>
<div class="app-item">
<div class="toggle-switch">
<input type="checkbox" class="toggle-switch-checkbox" id="app4Toggle">
@ -422,7 +503,6 @@
<p>ID <span id="app4WingetId">VivaldiTechnologies.Vivaldi</span></p>
<p>Web browser based on Chromium with added features inspired by Opera.</p>
</div>
<div class="app-item">
<div class="toggle-switch">
<input type="checkbox" class="toggle-switch-checkbox" id="app5Toggle">
@ -435,7 +515,6 @@
multimedia files, and various streaming protocols.
</p>
</div>
<div class="app-item">
<div class="toggle-switch">
<input type="checkbox" class="toggle-switch-checkbox" id="app6Toggle">
@ -445,7 +524,6 @@
<p>ID <span id="app6WingetId">7Zip.7zip</span></p>
<p>Free and open source file archiver with a high compression ratio.</p>
</div>
<div class="app-item">
<div class="toggle-switch">
<input type="checkbox" class="toggle-switch-checkbox" id="app7Toggle">
@ -455,7 +533,6 @@
<p>ID <span id="app7WingetId">Notepad++.Notepad++</span></p>
<p>Notepad++ is a free source code editor that supports several languages.</p>
</div>
<div class="app-item">
<div class="toggle-switch">
<input type="checkbox" class="toggle-switch-checkbox" id="app8Toggle">
@ -465,7 +542,6 @@
<p>ID <span id="app8WingetId">Microsoft.PowerToys</span></p>
<p>Microsoft PowerToys is a set of utilities for power users to tune and streamline their Windows experience for greater productivity.</p>
</div>
<div class="app-item">
<div class="toggle-switch">
<input type="checkbox" class="toggle-switch-checkbox" id="app9Toggle">
@ -475,7 +551,6 @@
<p>ID <span id="app9WingetId">Adobe.Acrobat.Reader.64-bit </span></p>
<p>The free global standard for reliably viewing, printing, signing, and commenting on PDF documents.</p>
</div>
<div class="app-item">
<div class="toggle-switch">
<input type="checkbox" class="toggle-switch-checkbox" id="app10Toggle">
@ -489,26 +564,28 @@
</div>
</div>
<!-- Step: Extensions -->
<div class="glassy-box setup-step" id="steptweakHeader">
<!-- Content of Extensions Container -->
<div class="glassy-box setup-step" id="stepStoreHeader">
<div class="links-container">
<a href="https://github.com/builtbybel/Winpilot/issues/new" target="_blank" class="modern-link" style="display: block;">Suggest a new Extension</a>
</div>
<h2>PimpApp (Extensions)</h2>
<h2>Extensions for NeoClippy</h2>
<p>Discover external scripts and plugins to enhance your Winpilot experience and customize Windows to your preferences.
With these extensions, you can modify Windows with tweaks just like you would manually with RegEdit or PowerShell, but in a simpler and more intuitive way.
</p>
<div id="plugin-categories-container">
<!-- Plugin entries will be injected here -->
</div>
</div>
</div>
</div>
</div>
</div>
<!-- UI: Clippy -->
<!-- UI: Clippy -->
<div id="clippy-container">
<!-- The image will be dynamically loaded from C# -->
<img id="clippy-image">
</div>
<div id="logContainer">
<p>Would you like help?</p>
<div class="assisted-container">
@ -521,66 +598,12 @@
<div id="refreshButton" onclick="refreshAB()" title="Refresh">...</div>
</div>
</div>
<!-- Step Back button -->
<button id="btnBack" onclick="goToStep('back')">
<!-- Step Back button -->
<button id="btnBack" onclick="handleBackClick()">
<span class="icon">&#xE72B;</span> <!-- Unicode for the back arrow -->
</button>
<!-- UI: Bottom Navigation container -->
<div class="bottom-container">
<!-- Step Buttons Container -->
<div class="steps-assistant">
<button id="btnNext" onclick="goToStep('next')">Next</button>
<div class="dropdown-container">
<div class="dropdown">
<span class="dropbtn">Pilot</span>
<div class="dropdown-content">
<ul class="menu">
<div class="menu-flex-container">
<div class="left-menu">
<li class="menu-item switch-to-copilot" onclick="handleOpenCopilotClick()" title="Switch to Copilot for advanced assistance">
Switch to Copilot
</li>
<li class="menu-item" onclick="activateAndSearch('stepSystemHeader')" title="Enhance system performance, privacy, and gaming setup">
<span class="menu-icon">🕵️</span>
CoTweaker
</li>
<li id="menu-item" class="menu-item" onclick="activateStep('stepAppxHeader')" title="Clean up your system from unnecessary apps">
<span class="menu-icon">🧼</span>
Decrapify
</li>
<li class="menu-item" onclick=" activateStep('stepAppsHeader')" title="Install apps easily with a user-friendly interface">
<span class="menu-icon">📱</span>
WingetUI
</li>
<li class="menu-item" onclick=" activateStep('steptweakHeader')" title="Modify Windows with tweaks just like you would manually with RegEdit or PowerShell.">
<span class="menu-icon">🧩</span>
PimpApp
</li>
<li class="menu-item" onclick="activateStep('stepHomeHeader')" style="font-weight: bold;" title="Need Clippy assistance?">
<span class="menu-icon">📎</span>
Ask Clippy?
</li>
</div>
<div class="right-menu">
<li class="menu-item" onclick="handleUpdatesClick()" style="color: blue;" title="Check for app updates">
Check for updates
</li>
<li class="menu-item" onclick="handleSettingsClick()" style="color: blue;" title="About Winpilot">
About this app
</li>
</div>
</div>
</ul>
</div>
</div>
</div>
</div>
<!-- Additional content for the bottom container goes here -->
</div>
</button>
</div>
</body>
</body>
</html>

View File

@ -1,9 +1,4 @@
[
{
"question": "🐞 Found a bug in the app",
"response": "Fear not! I'll squash those bugs! #BugBuster",
"action": "https://github.com/builtbybel/Winpilot/issues"
},
{
"question": "🔒 Add my Microsoft Account?",
"response": "Absolutely! Let's navigate to Account settings... 🧭",
@ -114,7 +109,7 @@
},
{
"question": "🧹 Clear Windows Event Logs",
"response": "No problem! Executing PowerShell script...",
"response": "Mission accomplished! The logs have been successfully cleared",
"action": "runPlugin",
"scriptPath": "plugins\\ClearEventLogsHandler.ps1",
"description": "Clear all Windows event logs to free up space and maintain system performance.",
@ -236,19 +231,5 @@
"response": "Removing Widgets Button from Taskbar...",
"action": "shell",
"command": "reg add HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced /v TaskbarDa /t REG_DWORD /d 0 /f"
},
{
"question": "🔙 Go back to classic Outlook for Windows",
"response": "Redirecting to classic Outlook for Windows...",
"action": "runPS",
"command": "Get-AppxPackage -AllUsers | Where-Object {$_.Name -Like '*OutlookForWindows*'} | Remove-AppxPackage -AllUsers -ErrorAction Continue; Write-Host 'The new Outlook app has been removed for all users. It may take a few minutes for the old Mail and Calendar app to be restored and for you to be able to launch it.'"
},
{
"question": "🛑 Disable Copilot Pro ads on Windows 11",
"response": "Copilot Pro ads disabled. Feature hidden in latest Windows 11 builds.",
"action": "viveTool",
"viveCommand": "disable",
"viveFeatureId": "47942561",
"viveBuildAvailability": "Hidden in latest Windows 11 Dev and Beta builds."
}
]