mirror of
https://github.com/builtbybel/BloatyNosy.git
synced 2024-11-21 23:43:09 +01:00
Commit 2024.5.13
This commit is contained in:
parent
b12c13cca6
commit
62332cecef
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 |
@ -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';");
|
||||
|
||||
|
@ -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}`;");
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
{
|
||||
@ -49,7 +49,7 @@ namespace Interop
|
||||
{
|
||||
if (!string.IsNullOrEmpty(e.Data))
|
||||
{
|
||||
// Handle error data
|
||||
// Handle error data
|
||||
logger.Log($"Error: {e.Data}", Color.Red);
|
||||
}
|
||||
};
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -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
|
||||
{
|
||||
@ -67,4 +66,4 @@ namespace Interop
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
|
6
src/Winpilot/MainForm.Designer.cs
generated
6
src/Winpilot/MainForm.Designer.cs
generated
@ -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;
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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")]
|
||||
|
101
src/Winpilot/Views/SettingsPageView.Designer.cs
generated
101
src/Winpilot/Views/SettingsPageView.Designer.cs
generated
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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");
|
||||
}
|
||||
}
|
@ -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>
|
60
src/Winpilot/Walks/Ads/FileExplorerAds.cs
Normal file
60
src/Winpilot/Walks/Ads/FileExplorerAds.cs
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
56
src/Winpilot/Walks/Ads/FinishSetupAds.cs
Normal file
56
src/Winpilot/Walks/Ads/FinishSetupAds.cs
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
61
src/Winpilot/Walks/Ads/LockScreenAds.cs
Normal file
61
src/Winpilot/Walks/Ads/LockScreenAds.cs
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
@ -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()
|
||||
{
|
64
src/Winpilot/Walks/Ads/SettingsAds.cs
Normal file
64
src/Winpilot/Walks/Ads/SettingsAds.cs
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
@ -16,7 +16,7 @@ namespace Walks
|
||||
|
||||
public override string ID()
|
||||
{
|
||||
return "Ads in Windows 11 Start";
|
||||
return "Start menu Ads";
|
||||
}
|
||||
|
||||
public override bool CheckFeature()
|
60
src/Winpilot/Walks/Ads/TailoredExperiences.cs
Normal file
60
src/Winpilot/Walks/Ads/TailoredExperiences.cs
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
57
src/Winpilot/Walks/Ads/TipsAndSuggestions.cs
Normal file
57
src/Winpilot/Walks/Ads/TipsAndSuggestions.cs
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
56
src/Winpilot/Walks/Ads/WelcomeExperienceAds.cs
Normal file
56
src/Winpilot/Walks/Ads/WelcomeExperienceAds.cs
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
@ -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">
|
||||
|
@ -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;
|
||||
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;
|
||||
cursor: pointer;
|
||||
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;
|
||||
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 */
|
||||
@ -331,36 +463,36 @@ body {
|
||||
|
||||
/* Styling for logContainer */
|
||||
#logContainer {
|
||||
position: fixed;
|
||||
bottom: 110px;
|
||||
position: fixed;
|
||||
bottom: 80px;
|
||||
left: 20px;
|
||||
right: calc(20% + 100px);
|
||||
z-index: 999; /* Ensure it's below Clippy */
|
||||
background-color: #f7f6ca; /* Yellow color */
|
||||
font-size: 14px;
|
||||
color: #000000;
|
||||
border: 2px solid #000000;
|
||||
border-radius: 10px;
|
||||
padding: 2px;
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
||||
right: calc(20% + 100px);
|
||||
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: #000080; /* Blue-ish color to match Clippy's text */
|
||||
border: 2px 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: calc(50% - 10px); /* Center vertically */
|
||||
right: -20px; /* Position on the right side */
|
||||
border-width: 10px;
|
||||
border-style: solid;
|
||||
border-color: transparent transparent transparent #000;
|
||||
z-index: -1; /* Ensure it's behind logContainer */
|
||||
content: "";
|
||||
position: absolute;
|
||||
bottom: 15px; /* Distance from the bottom */
|
||||
right: -16px; /* from the right */
|
||||
border-width: 8px;
|
||||
border-style: solid;
|
||||
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,41 +637,11 @@ 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 {
|
||||
@ -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 {
|
||||
|
835
src/Winpilot/app-backend/UI_dark.css
Normal file
835
src/Winpilot/app-backend/UI_dark.css
Normal 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;
|
||||
}
|
@ -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 it’s not a web wrapper, it doesn’t 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": "Spotify’s 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"
|
||||
}
|
||||
]
|
@ -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 */
|
||||
|
||||
var visibleButtons = 1; // Track the number of visible buttons
|
||||
var buttonIds = ['btnAppxHeader', 'btnStoreHeader', 'btnTiny11']; // IDs of additional buttons
|
||||
|
||||
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;
|
||||
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
|
||||
|
BIN
src/Winpilot/app-backend/chatbotPaperclip.png
Normal file
BIN
src/Winpilot/app-backend/chatbotPaperclip.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 46 KiB |
Binary file not shown.
Before Width: | Height: | Size: 124 KiB |
@ -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!",
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -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."
|
||||
}
|
||||
]
|
||||
|
Loading…
Reference in New Issue
Block a user