commit fdcacf7e87caa25c1571fe2d4eeff4ea75534463
parent 7ac04614933b804656f372cfc09bc073aba0bacb
Author: maydayv7 <maydayv7@gmail.com>
Date: Fri, 1 May 2026 08:13:48 +0530
feat: Update Windows
Diffstat:
7 files changed, 2857 insertions(+), 3363 deletions(-)
diff --git a/windows/packages.ubundle b/windows/packages.ubundle
@@ -2,16 +2,16 @@
"export_version": 3,
"packages": [
{
- "Id": "9MVS1J51GMK6",
- "Name": "ngrok",
- "Version": "3.36.1.0",
- "Source": "msstore",
+ "Id": "7zip.7zip",
+ "Name": "7-Zip",
+ "Version": "26.01",
+ "Source": "winget",
"ManagerName": "Winget"
},
{
"Id": "@google/gemini-cli",
"Name": "Gemini Cli",
- "Version": "0.39.1",
+ "Version": "0.40.1",
"Source": "npm",
"ManagerName": "Npm"
},
@@ -37,28 +37,18 @@
"ManagerName": "Winget"
},
{
- "Id": "AmN.YASBGUI",
- "Name": "YASB GUI",
- "Version": "0.0.6.0",
- "Source": "winget",
- "ManagerName": "Winget"
- },
- {
"Id": "AmN.yasb",
"Name": "yasb",
- "Version": "1.9.1",
+ "Version": "2.0.0",
"Source": "winget",
"ManagerName": "Winget"
},
{
"Id": "Anthropic.Claude",
"Name": "Claude",
- "Version": "1.4758.0",
+ "Version": "1.5354.0.0",
"Source": "winget",
- "ManagerName": "Winget",
- "Updates": {
- "IgnoredVersion": "1.1348.0"
- }
+ "ManagerName": "Winget"
},
{
"Id": "AntibodySoftware.WizTree",
@@ -68,6 +58,13 @@
"ManagerName": "Winget"
},
{
+ "Id": "AppWork.JDownloader",
+ "Name": "JDownloader 2",
+ "Version": "2.0.260331",
+ "Source": "winget",
+ "ManagerName": "Winget"
+ },
+ {
"Id": "Audacity.Audacity",
"Name": "Audacity",
"Version": "3.7.7",
@@ -82,9 +79,9 @@
"ManagerName": "Winget"
},
{
- "Id": "BlenderFoundation.Blender",
+ "Id": "BlenderFoundation.Blender.LTS.4.2",
"Name": "blender",
- "Version": "5.1.1",
+ "Version": "4.2.16",
"Source": "winget",
"ManagerName": "Winget"
},
@@ -110,13 +107,6 @@
"ManagerName": "Winget"
},
{
- "Id": "CodeSector.TeraCopy",
- "Name": "TeraCopy",
- "Version": "3.17",
- "Source": "winget",
- "ManagerName": "Winget"
- },
- {
"Id": "CodecGuide.K-LiteCodecPack.Full",
"Name": "K-Lite Codec Pack Full",
"Version": "19.6.8",
@@ -124,9 +114,9 @@
"ManagerName": "Winget"
},
{
- "Id": "DevToys-app.DevToys",
- "Name": "DevToys",
- "Version": "2.0-preview.9",
+ "Id": "Devolutions.UniGetUI",
+ "Name": "UniGetUI",
+ "Version": "2026.1.7",
"Source": "winget",
"ManagerName": "Winget"
},
@@ -138,27 +128,16 @@
"ManagerName": "Winget"
},
{
- "Id": "DominikReichl.KeePass",
- "Name": "KeePass",
- "Version": "2.61",
+ "Id": "EpicGames.EpicGamesLauncher",
+ "Name": "Epic Games Launcher",
+ "Version": "1.3.176.0",
"Source": "winget",
"ManagerName": "Winget"
},
{
- "Id": "Eassos.DiskGenius",
- "Name": "DiskGenius",
- "Version": "6.0.0",
- "Source": "winget",
- "ManagerName": "Winget",
- "Updates": {
- "UpdatesIgnored": true,
- "IgnoredVersion": "*"
- }
- },
- {
- "Id": "EpicGames.EpicGamesLauncher",
- "Name": "Epic Games Launcher",
- "Version": "19.1.7.0",
+ "Id": "Exploitox.GoAwayEdge",
+ "Name": "GoAwayEdge",
+ "Version": "2.0.3.264",
"Source": "winget",
"ManagerName": "Winget"
},
@@ -170,31 +149,6 @@
"ManagerName": "Winget"
},
{
- "Id": "FilesCommunity.Files",
- "Name": "Files",
- "Version": "4.0.38.0",
- "Source": "winget",
- "ManagerName": "Winget"
- },
- {
- "Id": "Foxit.PhantomPDF.Subscription.MSI",
- "Name": "Foxit PDF Editor (MSI)",
- "Version": "2025.3.0.35737",
- "Source": "winget",
- "ManagerName": "Winget",
- "Updates": {
- "UpdatesIgnored": true,
- "IgnoredVersion": "*"
- }
- },
- {
- "Id": "FreeTube.FreeTube",
- "Name": "FreeTube",
- "Version": "0.24.0",
- "Source": "winget",
- "ManagerName": "Winget"
- },
- {
"Id": "GIMP.GIMP.3",
"Name": "GIMP",
"Version": "3.2.4.0",
@@ -202,17 +156,6 @@
"ManagerName": "Winget"
},
{
- "Id": "GPSoftware.DirectoryOpus",
- "Name": "Directory Opus",
- "Version": "13.22",
- "Source": "winget",
- "ManagerName": "Winget",
- "Updates": {
- "UpdatesIgnored": true,
- "IgnoredVersion": "*"
- }
- },
- {
"Id": "GermanCoding.SyncTrayzor",
"Name": "SyncTrayzor (x64)",
"Version": "2.1.0.0",
@@ -236,7 +179,7 @@
{
"Id": "Google.GoogleDrive",
"Name": "Google Drive",
- "Version": "123.0.1.0",
+ "Version": "124.0.3.0",
"Source": "winget",
"ManagerName": "Winget"
},
@@ -248,8 +191,8 @@
"ManagerName": "Winget"
},
{
- "Id": "Gyan.FFmpeg",
- "Name": "FFmpeg",
+ "Id": "Gyan.FFmpeg.Shared",
+ "Name": "FFmpeg (Shared)",
"Version": "8.1",
"Source": "winget",
"ManagerName": "Winget"
@@ -262,13 +205,6 @@
"ManagerName": "Winget"
},
{
- "Id": "IDRIX.VeraCrypt",
- "Name": "VeraCrypt",
- "Version": "1.26.24",
- "Source": "winget",
- "ManagerName": "Winget"
- },
- {
"Id": "IrfanSkiljan.IrfanView",
"Name": "IrfanView",
"Version": "4.73",
@@ -276,13 +212,6 @@
"ManagerName": "Winget"
},
{
- "Id": "JiriPolasek.ColorsforCommandPalette",
- "Name": "Colors for Command Palette",
- "Version": "0.10.0.0",
- "Source": "winget",
- "ManagerName": "Winget"
- },
- {
"Id": "JohnMacFarlane.Pandoc",
"Name": "Pandoc",
"Version": "3.9.0.2",
@@ -304,13 +233,6 @@
"ManagerName": "Winget"
},
{
- "Id": "LargeModGames.spotatui",
- "Name": "spotatui",
- "Version": "0.38.0",
- "Source": "winget",
- "ManagerName": "Winget"
- },
- {
"Id": "Logseq.Logseq",
"Name": "Logseq",
"Version": "0.10.15",
@@ -320,14 +242,7 @@
{
"Id": "M2Team.NanaZip",
"Name": "NanaZip",
- "Version": "6.0.1698.0",
- "Source": "winget",
- "ManagerName": "Winget"
- },
- {
- "Id": "Mega.MEGASync",
- "Name": "MEGAsync",
- "Version": "6.2.2",
+ "Version": "6.0.1701.0",
"Source": "winget",
"ManagerName": "Winget"
},
@@ -360,16 +275,9 @@
"ManagerName": "Winget"
},
{
- "Id": "Microsoft.DirectX",
- "Name": "DirectX End-User Runtime Installer",
- "Version": "9.29.1974.0",
- "Source": "winget",
- "ManagerName": "Winget"
- },
- {
- "Id": "Microsoft.DotNet.DesktopRuntime.6",
- "Name": "Microsoft .NET Windows Desktop Runtime 6.0",
- "Version": "6.0.36",
+ "Id": "Microsoft.DotNet.DesktopRuntime.10",
+ "Name": "Microsoft .NET Windows Desktop Runtime 10.0",
+ "Version": "10.0.7",
"Source": "winget",
"ManagerName": "Winget"
},
@@ -381,16 +289,9 @@
"ManagerName": "Winget"
},
{
- "Id": "Microsoft.DotNet.DesktopRuntime.9",
- "Name": "Microsoft .NET Windows Desktop Runtime 9.0",
- "Version": "9.0.15",
- "Source": "winget",
- "ManagerName": "Winget"
- },
- {
- "Id": "Microsoft.GameInput",
- "Name": "Microsoft GameInput",
- "Version": "3.3.195.0",
+ "Id": "Microsoft.Edge",
+ "Name": "Microsoft Edge",
+ "Version": "147.0.3912.86",
"Source": "winget",
"ManagerName": "Winget"
},
@@ -399,16 +300,12 @@
"Name": "Microsoft 365 Apps for enterprise",
"Version": "16.0.19929.20090",
"Source": "winget",
- "ManagerName": "Winget",
- "Updates": {
- "UpdatesIgnored": true,
- "IgnoredVersion": "*"
- }
+ "ManagerName": "Winget"
},
{
- "Id": "Microsoft.OpenJDK.21",
- "Name": "Microsoft Build of OpenJDK with Hotspot 21",
- "Version": "21.0.10.7",
+ "Id": "Microsoft.OpenJDK.25",
+ "Name": "Microsoft Build of OpenJDK with Hotspot 25",
+ "Version": "25.0.2.10",
"Source": "winget",
"ManagerName": "Winget"
},
@@ -422,7 +319,14 @@
{
"Id": "Microsoft.PowerToys",
"Name": "PowerToys",
- "Version": "0.99.0",
+ "Version": "0.99.1",
+ "Source": "winget",
+ "ManagerName": "Winget"
+ },
+ {
+ "Id": "Microsoft.Sysinternals.Suite",
+ "Name": "Sysinternals Suite",
+ "Version": "2026-04-09",
"Source": "winget",
"ManagerName": "Winget"
},
@@ -455,72 +359,30 @@
"ManagerName": "Winget"
},
{
- "Id": "Microsoft.VCRedist.2005.x86",
- "Name": "Microsoft Visual C\u002B\u002B 2005 Redistributable (x86)",
- "Version": "8.0.61187",
- "Source": "winget",
- "ManagerName": "Winget"
- },
- {
- "Id": "Microsoft.VCRedist.2008.x64",
- "Name": "Microsoft Visual C\u002B\u002B 2008 Redistributable - x64",
- "Version": "9.0.30729.7523",
- "Source": "winget",
- "ManagerName": "Winget"
- },
- {
- "Id": "Microsoft.VCRedist.2008.x86",
- "Name": "Microsoft Visual C\u002B\u002B 2008 Redistributable - x86",
- "Version": "9.0.30729.7523",
- "Source": "winget",
- "ManagerName": "Winget"
- },
- {
- "Id": "Microsoft.VCRedist.2010.x64",
- "Name": "Microsoft Visual C\u002B\u002B 2010 x64 Redistributable",
- "Version": "10.0.40219",
- "Source": "winget",
- "ManagerName": "Winget"
- },
- {
- "Id": "Microsoft.VCRedist.2010.x86",
- "Name": "Microsoft Visual C\u002B\u002B 2010 x86 Redistributable",
- "Version": "10.0.40219",
- "Source": "winget",
- "ManagerName": "Winget"
- },
- {
"Id": "Microsoft.VCRedist.2015\u002B.x64",
"Name": "Microsoft Visual C\u002B\u002B v14 Redistributable (x64)",
- "Version": "14.44.35211.0",
+ "Version": "14.50.35719.0",
"Source": "winget",
"ManagerName": "Winget"
},
{
"Id": "Microsoft.VCRedist.2015\u002B.x86",
"Name": "Microsoft Visual C\u002B\u002B v14 Redistributable (x86)",
- "Version": "14.44.35211.0",
- "Source": "winget",
- "ManagerName": "Winget"
- },
- {
- "Id": "Microsoft.VSTOR",
- "Name": "Microsoft Visual Studio 2010 Tools for Office Runtime",
- "Version": "10.0.60922",
+ "Version": "14.50.35719.0",
"Source": "winget",
"ManagerName": "Winget"
},
{
"Id": "Microsoft.VisualStudio.Community",
"Name": "Visual Studio Community 2026",
- "Version": "18.5.1",
+ "Version": "18.5.2",
"Source": "winget",
"ManagerName": "Winget"
},
{
"Id": "Microsoft.VisualStudioCode",
"Name": "Microsoft Visual Studio Code",
- "Version": "1.117.0",
+ "Version": "1.118.1",
"Source": "winget",
"ManagerName": "Winget"
},
@@ -546,25 +408,18 @@
"ManagerName": "PowerShell7"
},
{
- "Id": "Microsoft.WinGet.Client",
- "Name": "Microsoft.WinGet.Client",
- "Version": "1.12.440",
- "Source": "PSGallery",
- "ManagerName": "PowerShell"
- },
- {
"Id": "Microsoft.WinGet.CommandNotFound",
"Name": "Microsoft.WinGet.CommandNotFound",
- "Version": "1.0.6.0",
+ "Version": "1.0.6",
"Source": "PSGallery",
- "ManagerName": "PowerShell"
+ "ManagerName": "PowerShell7"
},
{
- "Id": "Microsoft.WinGet.CommandNotFound",
- "Name": "Microsoft.WinGet.CommandNotFound",
- "Version": "1.0.6.0",
- "Source": "PSGallery",
- "ManagerName": "PowerShell7"
+ "Id": "Microsoft.WindowsAppRuntime.1.5",
+ "Name": "Windows App Runtime 1.5",
+ "Version": "\u003E 1.5.8",
+ "Source": "winget",
+ "ManagerName": "Winget"
},
{
"Id": "Microsoft.WindowsAppRuntime.1.6",
@@ -602,13 +457,6 @@
"ManagerName": "Winget"
},
{
- "Id": "Microsoft.XNARedist",
- "Name": "Microsoft XNA Framework Redistributable Refresh",
- "Version": "4.0.30901.0",
- "Source": "winget",
- "ManagerName": "Winget"
- },
- {
"Id": "Microsoft.msodbcsql.17",
"Name": "Microsoft ODBC Driver 17 for SQL Server",
"Version": "17.10.6.1",
@@ -618,19 +466,23 @@
{
"Id": "MongoDB.Compass.Full",
"Name": "MongoDB Compass",
- "Version": "1.49.5",
+ "Version": "1.49.5.0",
+ "Source": "winget",
+ "ManagerName": "Winget"
+ },
+ {
+ "Id": "Mozilla.Firefox",
+ "Name": "Mozilla Firefox (en-US)",
+ "Version": "150.0.1",
"Source": "winget",
"ManagerName": "Winget"
},
{
"Id": "Mozilla.Thunderbird",
"Name": "Mozilla Thunderbird (en-US)",
- "Version": "150.0",
+ "Version": "150.0.1",
"Source": "winget",
- "ManagerName": "Winget",
- "Updates": {
- "IgnoredVersion": "147.0.2"
- }
+ "ManagerName": "Winget"
},
{
"Id": "Neovim.Neovim",
@@ -668,16 +520,9 @@
"ManagerName": "Winget"
},
{
- "Id": "PSReadLine",
- "Name": "PSReadLine",
- "Version": "2.4.5",
- "Source": "PSGallery",
- "ManagerName": "PowerShell"
- },
- {
- "Id": "Pidgin.Pidgin",
- "Name": "Pidgin",
- "Version": "2.14.14",
+ "Id": "OpenJS.NodeJS.LTS",
+ "Name": "Node.js (LTS)",
+ "Version": "24.15.0",
"Source": "winget",
"ManagerName": "Winget"
},
@@ -689,21 +534,18 @@
"ManagerName": "Winget"
},
{
- "Id": "Python.PythonInstallManager",
- "Name": "Python Install Manager",
- "Version": "26.1.240.0",
+ "Id": "PuTTY.PuTTY",
+ "Name": "PuTTY",
+ "Version": "0.83.0.0",
"Source": "winget",
"ManagerName": "Winget"
},
{
- "Id": "QL-Win.QuickLook",
- "Name": "QuickLook",
- "Version": "4.4.0",
+ "Id": "Python.PythonInstallManager",
+ "Name": "Python Install Manager",
+ "Version": "26.1.240.0",
"Source": "winget",
- "ManagerName": "Winget",
- "Updates": {
- "IgnoredVersion": "4.4.0"
- }
+ "ManagerName": "Winget"
},
{
"Id": "REALiX.HWiNFO",
@@ -727,17 +569,6 @@
"ManagerName": "Winget"
},
{
- "Id": "RevoUninstaller.RevoUninstallerPro",
- "Name": "Revo Uninstaller Pro",
- "Version": "5.4.7",
- "Source": "winget",
- "ManagerName": "Winget",
- "Updates": {
- "UpdatesIgnored": true,
- "IgnoredVersion": "*"
- }
- },
- {
"Id": "Roblox.Roblox",
"Name": "Roblox Player",
"Version": "0.702.2.7020633",
@@ -745,16 +576,16 @@
"ManagerName": "Winget"
},
{
- "Id": "Rustlang.Rustup",
- "Name": "Rustup: the Rust toolchain installer",
- "Version": "1.29.0",
+ "Id": "Rufus.Rufus",
+ "Name": "Rufus",
+ "Version": "4.14",
"Source": "winget",
"ManagerName": "Winget"
},
{
- "Id": "ShareX.ShareX",
- "Name": "ShareX",
- "Version": "19.0.2",
+ "Id": "Rustlang.Rustup",
+ "Name": "Rustup: the Rust toolchain installer",
+ "Version": "1.29.0",
"Source": "winget",
"ManagerName": "Winget"
},
@@ -780,6 +611,13 @@
"ManagerName": "Winget"
},
{
+ "Id": "Stremio.Stremio",
+ "Name": "Stremio",
+ "Version": "4.4.181",
+ "Source": "winget",
+ "ManagerName": "Winget"
+ },
+ {
"Id": "SumatraPDF.SumatraPDF",
"Name": "SumatraPDF",
"Version": "3.6.1",
@@ -801,34 +639,6 @@
"ManagerName": "Winget"
},
{
- "Id": "Terminal-Icons",
- "Name": "Terminal Icons",
- "Version": "0.11.0",
- "Source": "PSGallery",
- "ManagerName": "PowerShell7"
- },
- {
- "Id": "Terminal-Icons",
- "Name": "Terminal Icons",
- "Version": "0.11.0",
- "Source": "PSGallery",
- "ManagerName": "PowerShell"
- },
- {
- "Id": "Tonec.InternetDownloadManager",
- "Name": "Internet Download Manager",
- "Version": "6.42.63",
- "Source": "winget",
- "ManagerName": "Winget"
- },
- {
- "Id": "Transmission.Transmission",
- "Name": "Transmission",
- "Version": "4.1.1",
- "Source": "winget",
- "ManagerName": "Winget"
- },
- {
"Id": "Valve.Steam",
"Name": "Steam",
"Version": "2.10.91.91",
@@ -857,6 +667,13 @@
"ManagerName": "Winget"
},
{
+ "Id": "Vivaldi.Vivaldi",
+ "Name": "Vivaldi",
+ "Version": "7.9.3970.60",
+ "Source": "winget",
+ "ManagerName": "Winget"
+ },
+ {
"Id": "VoodooSoft.DefenderUI",
"Name": "DefenderUI",
"Version": "2.05",
@@ -864,6 +681,13 @@
"ManagerName": "Winget"
},
{
+ "Id": "WinMerge.WinMerge",
+ "Name": "WinMerge",
+ "Version": "2.16.56.0",
+ "Source": "winget",
+ "ManagerName": "Winget"
+ },
+ {
"Id": "WinSCP.WinSCP",
"Name": "WinSCP",
"Version": "6.5.6",
@@ -878,37 +702,23 @@
"ManagerName": "Winget"
},
{
- "Id": "XPFNZKSKLBP7RJ",
- "Name": "PuTTY",
- "Version": "0.83.0.0",
- "Source": "msstore",
- "ManagerName": "Winget"
- },
- {
- "Id": "XnSoft.XnView.Classic",
- "Name": "XnView",
- "Version": "2.52.5",
+ "Id": "XnSoft.XnViewMP",
+ "Name": "XnView MP",
+ "Version": "1.11.1.0",
"Source": "winget",
"ManagerName": "Winget"
},
{
"Id": "ZedIndustries.Zed",
"Name": "Zed",
- "Version": "0.233.10",
- "Source": "winget",
- "ManagerName": "Winget"
- },
- {
- "Id": "Zoom.Zoom",
- "Name": "Zoom Workplace",
- "Version": "7.0.34412",
+ "Version": "1.0.0",
"Source": "winget",
"ManagerName": "Winget"
},
{
- "Id": "arndawg.zellij-windows",
- "Name": "zellij-windows",
- "Version": "0.43.1-win32.5",
+ "Id": "Zellij.Zellij",
+ "Name": "Zellij",
+ "Version": "0.4.11",
"Source": "winget",
"ManagerName": "Winget"
},
@@ -962,30 +772,23 @@
"ManagerName": "Winget"
},
{
- "Id": "lin-ycv.EverythingCmdPal",
+ "Id": "lin-ycv.EverythingCmdPal3",
"Name": "EverythingCmdPal",
- "Version": "0.5.25082.0",
+ "Version": "0.2.0.0",
"Source": "winget",
"ManagerName": "Winget"
},
{
- "Id": "npm",
- "Name": "Npm",
- "Version": "11.13.0",
+ "Id": "ncu",
+ "Name": "Ncu",
+ "Version": "0.2.1",
"Source": "npm",
"ManagerName": "Npm"
},
{
- "Id": "npm-check-updates",
- "Name": "Npm Check Updates",
- "Version": "22.0.1",
- "Source": "npm",
- "ManagerName": "Npm"
- },
- {
- "Id": "opencode-ai",
- "Name": "Opencode Ai",
- "Version": "1.14.28",
+ "Id": "npm",
+ "Name": "Npm",
+ "Version": "11.13.0",
"Source": "npm",
"ManagerName": "Npm"
},
@@ -1004,6 +807,13 @@
"ManagerName": "Npm"
},
{
+ "Id": "qBittorrent.qBittorrent",
+ "Name": "qBittorrent",
+ "Version": "5.1.4",
+ "Source": "winget",
+ "ManagerName": "Winget"
+ },
+ {
"Id": "repomix",
"Name": "Repomix",
"Version": "1.14.0",
@@ -1011,6 +821,13 @@
"ManagerName": "Npm"
},
{
+ "Id": "seerge.g-helper",
+ "Name": "g-helper",
+ "Version": "0.243",
+ "Source": "winget",
+ "ManagerName": "Winget"
+ },
+ {
"Id": "sharkdp.fd",
"Name": "fd",
"Version": "10.4.2",
@@ -1029,24 +846,7 @@
"Name": "Everything (Alpha)",
"Version": "1.5.0.1408",
"Source": "winget",
- "ManagerName": "Winget",
- "Updates": {
- "IgnoredVersion": "1.5.0.1404"
- }
- },
- {
- "Id": "winfetch",
- "Name": "Winfetch",
- "Version": "2.5.1",
- "Source": "PSGallery",
- "ManagerName": "PowerShell7"
- },
- {
- "Id": "xpm",
- "Name": "Xpm",
- "Version": "0.21.4",
- "Source": "npm",
- "ManagerName": "Npm"
+ "ManagerName": "Winget"
}
],
"incompatible_packages_info": "Incompatible packages cannot be installed from UniGetUI, either because they came from a local source (for example Local PC) or because the package manager was unavailable. Nevertheless, they have been listed here for logging purposes.",
@@ -1058,21 +858,9 @@
"Source": "Local PC"
},
{
- "Id": "ARP\\Machine\\X64\\Mozilla Firefox",
- "Name": "Mozilla Firefox (x64 en-US)",
- "Version": "150.0",
- "Source": "Local PC"
- },
- {
"Id": "ARP\\Machine\\X64\\MozillaMaintenanceService",
"Name": "Mozilla Maintenance Service",
- "Version": "149.0.2",
- "Source": "Local PC"
- },
- {
- "Id": "ARP\\Machine\\X64\\NAPS2 - Not Another PDF Scanner_is1",
- "Name": "NAPS2",
- "Version": "8.2.1",
+ "Version": "150.0.1",
"Source": "Local PC"
},
{
@@ -1090,12 +878,6 @@
{
"Id": "ARP\\Machine\\X64\\Steam App 291550",
"Name": "Brawlhalla",
- "Version": "1.0.0.0",
- "Source": "Steam"
- },
- {
- "Id": "ARP\\Machine\\X64\\Steam App 322170",
- "Name": "Geometry Dash",
"Version": "Unknown",
"Source": "Steam"
},
@@ -1106,66 +888,18 @@
"Source": "Steam"
},
{
- "Id": "ARP\\Machine\\X64\\Steam App 730",
- "Name": "Counter-Strike 2",
- "Version": "Unknown",
- "Source": "Steam"
- },
- {
"Id": "ARP\\Machine\\X64\\Steam App 837350",
"Name": "King of the Hat",
"Version": "Unknown",
"Source": "Steam"
},
{
- "Id": "ARP\\Machine\\X64\\WinMerge_is1",
- "Name": "WinMerge x64",
- "Version": "2.16.54.0",
- "Source": "Local PC"
- },
- {
- "Id": "ARP\\Machine\\X64\\mpv",
- "Name": "mpv media player",
- "Version": "2.0.0.0",
- "Source": "Local PC"
- },
- {
- "Id": "ARP\\Machine\\X64\\{010792BA-551A-3AC0-A7EF-0FAB4156C382}",
- "Name": "Microsoft Visual C\u002B\u002B 2013 x64 Additional Runtime - 12.0.40664",
- "Version": "12.0.40664",
- "Source": "Local PC"
- },
- {
- "Id": "ARP\\Machine\\X64\\{15C7B361-A0B2-4E79-93E0-868B5000BA3F}",
- "Name": "FortiClient VPN",
- "Version": "7.4.3.8758",
- "Source": "Local PC"
- },
- {
- "Id": "ARP\\Machine\\X64\\{37B8F9C7-03FB-3253-8781-2517C99D7C00}",
- "Name": "Microsoft Visual C\u002B\u002B 2012 x64 Additional Runtime - 11.0.61135",
- "Version": "11.0.61135",
- "Source": "Local PC"
- },
- {
"Id": "ARP\\Machine\\X64\\{49D3B636-E8F0-468D-97DA-DE48B32BBF57}",
"Name": "IIS 10.0 Express",
"Version": "10.0.11211",
"Source": "Local PC"
},
{
- "Id": "ARP\\Machine\\X64\\{53CF6934-A98D-3D84-9146-FC4EDF3D5641}",
- "Name": "Microsoft Visual C\u002B\u002B 2013 x64 Minimum Runtime - 12.0.40664",
- "Version": "12.0.40664",
- "Source": "Local PC"
- },
- {
- "Id": "ARP\\Machine\\X64\\{547DD641-59E6-4B8A-8C53-4C28C54B7658}",
- "Name": "Node.js",
- "Version": "24.13.1",
- "Source": "Local PC"
- },
- {
"Id": "ARP\\Machine\\X64\\{552ED017-461C-4DE5-8739-E04466E938FB}",
"Name": "RustDesk",
"Version": "1.4.6.29544831",
@@ -1184,33 +918,21 @@
"Source": "Local PC"
},
{
- "Id": "ARP\\Machine\\X64\\{61B44572-8722-4DAF-8ACF-8E742D30BCC5}",
- "Name": "Microsoft Visual C\u002B\u002B 2022 X64 Minimum Runtime - 14.50.35719",
- "Version": "14.50.35719",
+ "Id": "ARP\\Machine\\X64\\{636BAFAD-FFF4-46F6-8D31-005333DEBC65}",
+ "Name": "Microsoft .NET SDK 10.0.203 (x64) from Visual Studio",
+ "Version": "40.11.50261",
"Source": "Local PC"
},
{
"Id": "ARP\\Machine\\X64\\{6F320B93-EE3C-4826-85E0-ADF79F8D4C61}",
"Name": "Microsoft Visual Studio Installer",
- "Version": "4.4.38.63497",
- "Source": "Local PC"
- },
- {
- "Id": "ARP\\Machine\\X64\\{A7AB73A3-CB10-4AA5-9D38-6AEFFBDE4C91}",
- "Name": "Microsoft Teams Meeting Add-in for Microsoft Office",
- "Version": "1.25.28902",
- "Source": "Local PC"
- },
- {
- "Id": "ARP\\Machine\\X64\\{AECD4ED0-8A3B-41E9-92D1-6BEE0374CCAF}",
- "Name": "Microsoft Visual C\u002B\u002B 2022 X64 Additional Runtime - 14.50.35719",
- "Version": "14.50.35719",
+ "Version": "4.5.35.35368",
"Source": "Local PC"
},
{
"Id": "ARP\\Machine\\X64\\{B2FE1952-0186-46C3-BAEC-A80AA35AC5B8}_Display.Driver",
- "Name": "NVIDIA Graphics Driver 595.79",
- "Version": "595.79",
+ "Name": "NVIDIA Graphics Driver 596.36",
+ "Version": "596.36",
"Source": "Local PC"
},
{
@@ -1220,78 +942,6 @@
"Source": "Local PC"
},
{
- "Id": "ARP\\Machine\\X64\\{C2F4F289-EED5-4AF0-98F0-D2D22FE3C890}",
- "Name": "Microsoft .NET SDK 10.0.202 (x64) from Visual Studio",
- "Version": "40.10.62758",
- "Source": "Local PC"
- },
- {
- "Id": "ARP\\Machine\\X64\\{CF2BEA3C-26EA-32F8-AA9B-331F7E34BA97}",
- "Name": "Microsoft Visual C\u002B\u002B 2012 x64 Minimum Runtime - 11.0.61135",
- "Version": "11.0.61135",
- "Source": "Local PC"
- },
- {
- "Id": "ARP\\Machine\\X64\\{FC609131-6B77-4FC2-BC79-67E01BF894CC}_is1",
- "Name": "Revision Tool version 2.8.6",
- "Version": "2.8.6",
- "Source": "Local PC"
- },
- {
- "Id": "ARP\\Machine\\X64\\{ad8a2fa1-06e7-4b0d-927d-6e54b3d31028}",
- "Name": "Microsoft Visual C\u002B\u002B 2005 Redistributable (x64)",
- "Version": "8.0.61186",
- "Source": "Local PC"
- },
- {
- "Id": "ARP\\Machine\\X86\\Call of Duty: Black Ops 2_is1",
- "Name": "Call of Duty: Black Ops 2",
- "Version": "Unknown",
- "Source": "Local PC"
- },
- {
- "Id": "ARP\\Machine\\X86\\Call of Duty: Black Ops 3_is1",
- "Name": "Call of Duty: Black Ops 3",
- "Version": "Unknown",
- "Source": "Local PC"
- },
- {
- "Id": "ARP\\Machine\\X86\\Forza Horizon 5_is1",
- "Name": "Forza Horizon 5",
- "Version": "0.0.0",
- "Source": "Local PC"
- },
- {
- "Id": "ARP\\Machine\\X86\\FreeFileSync_is1",
- "Name": "FreeFileSync",
- "Version": "14.8",
- "Source": "Local PC"
- },
- {
- "Id": "ARP\\Machine\\X86\\VB:Voicemeeter {17359A74-1236-5467}",
- "Name": "Voicemeeter, The Virtual Mixing Console",
- "Version": "Unknown",
- "Source": "Local PC"
- },
- {
- "Id": "ARP\\Machine\\X86\\Vivaldi",
- "Name": "Vivaldi",
- "Version": "7.9.3970.59",
- "Source": "Local PC"
- },
- {
- "Id": "ARP\\Machine\\X86\\WinPcapInst",
- "Name": "WinPcap 4.1.3",
- "Version": "4.1.3",
- "Source": "Local PC"
- },
- {
- "Id": "ARP\\Machine\\X86\\qBittorrent",
- "Name": "qBittorrent",
- "Version": "5.1.4",
- "Source": "Local PC"
- },
- {
"Id": "ARP\\Machine\\X86\\{13D2A7A2-1B42-4C03-8F0F-697991259AEE}",
"Name": "Windows SDK AddOn",
"Version": "10.1.0.0",
@@ -1304,63 +954,9 @@
"Source": "Local PC"
},
{
- "Id": "ARP\\Machine\\X86\\{5A0DFA55-3851-45BC-8B20-95EA4BF5812D}",
- "Name": "Microsoft Visual C\u002B\u002B 2022 X86 Minimum Runtime - 14.50.35719",
- "Version": "14.50.35719",
- "Source": "Local PC"
- },
- {
- "Id": "ARP\\Machine\\X86\\{6730F587-C259-4C4C-A527-F7FF31D970F8}",
+ "Id": "ARP\\Machine\\X86\\{6300A8E0-851B-4638-ADBB-1385DCF1248D}",
"Name": "Epic Online Services",
- "Version": "4.2.1",
- "Source": "Local PC"
- },
- {
- "Id": "ARP\\Machine\\X86\\{773AD50D-AAE6-4BA1-AD01-B5A38874C840}",
- "Name": "Microsoft Visual C\u002B\u002B 2022 X86 Additional Runtime - 14.50.35719",
- "Version": "14.50.35719",
- "Source": "Local PC"
- },
- {
- "Id": "ARP\\Machine\\X86\\{8122DAB1-ED4D-3676-BB0A-CA368196543E}",
- "Name": "Microsoft Visual C\u002B\u002B 2013 x86 Minimum Runtime - 12.0.40664",
- "Version": "12.0.40664",
- "Source": "Local PC"
- },
- {
- "Id": "ARP\\Machine\\X86\\{889610CC-4337-4BDB-AC3B-4F21806C0BDE}_is1",
- "Name": "UniGetUI",
- "Version": "2026.1.7",
- "Source": "Local PC"
- },
- {
- "Id": "ARP\\Machine\\X86\\{B175520C-86A2-35A7-8619-86DC379688B9}",
- "Name": "Microsoft Visual C\u002B\u002B 2012 x86 Additional Runtime - 11.0.61135",
- "Version": "11.0.61135",
- "Source": "Local PC"
- },
- {
- "Id": "ARP\\Machine\\X86\\{BD95A8CD-1D9F-35AD-981A-3E7925026EBB}",
- "Name": "Microsoft Visual C\u002B\u002B 2012 x86 Minimum Runtime - 11.0.61135",
- "Version": "11.0.61135",
- "Source": "Local PC"
- },
- {
- "Id": "ARP\\Machine\\X86\\{C5E3A69D-D391-45A6-A8FB-00B01E2B010D}",
- "Name": "Microsoft Visual Basic/C\u002B\u002B Runtime (x86)",
- "Version": "1.1.0",
- "Source": "Local PC"
- },
- {
- "Id": "ARP\\Machine\\X86\\{D401961D-3A20-3AC7-943B-6139D5BD490A}",
- "Name": "Microsoft Visual C\u002B\u002B 2013 x86 Additional Runtime - 12.0.40664",
- "Version": "12.0.40664",
- "Source": "Local PC"
- },
- {
- "Id": "ARP\\User\\X64\\5a829402788eba0ad98c6cf39b7989b4",
- "Name": "Reddit",
- "Version": "1.0",
+ "Version": "4.3.1",
"Source": "Local PC"
},
{
@@ -1382,33 +978,15 @@
"Source": "Local PC"
},
{
- "Id": "ARP\\User\\X64\\pymanager-pythoncore-3.11-64",
- "Name": "Python 3.11.9",
- "Version": "3.11-64",
- "Source": "Local PC"
- },
- {
"Id": "ARP\\User\\X64\\pymanager-pythoncore-3.14-64",
- "Name": "Python 3.14.3",
+ "Name": "Python 3.14.4",
"Version": "3.14-64",
"Source": "Local PC"
},
{
- "Id": "ARP\\User\\X64\\pymanager-pythoncore-3.8-64",
- "Name": "Python 3.8.10",
- "Version": "3.8-64",
- "Source": "Local PC"
- },
- {
- "Id": "ARP\\User\\X64\\{DD3870DA-AF3C-4C73-B010-72944AB610C6}_is1",
- "Name": "Stremio version 5.0.16",
- "Version": "5.0.16",
- "Source": "Local PC"
- },
- {
- "Id": "MSIX\\5319275A.WhatsAppDesktop_2.2613.101.0_x64__cv1g1gvanyjgm",
+ "Id": "MSIX\\5319275A.WhatsAppDesktop_2.2615.101.0_x64__cv1g1gvanyjgm",
"Name": "WhatsApp",
- "Version": "2.2613.101.0",
+ "Version": "2.2615.101.0",
"Source": "Microsoft Store"
},
{
@@ -1430,15 +1008,9 @@
"Source": "Microsoft Store"
},
{
- "Id": "MSIX\\MEGASyncShellSparse_6.2.2.0_x64__8hw2nvev9rf4t",
- "Name": "MEGAsync",
- "Version": "6.2.2.0",
- "Source": "Microsoft Store"
- },
- {
- "Id": "MSIX\\MICROSOFT.MINECRAFTUWP_1.26.1301.0_x64__8wekyb3d8bbwe",
- "Name": "Minecraft for Windows",
- "Version": "1.26.1301.0",
+ "Id": "MSIX\\DongleInsovaki.MicaForEveryone_2.0.5.0_x64__t8299cmby5bjr",
+ "Name": "Mica For Everyone",
+ "Version": "2.0.5.0",
"Source": "Microsoft Store"
},
{
@@ -1460,21 +1032,15 @@
"Source": "Microsoft Store"
},
{
- "Id": "MSIX\\Microsoft.CommandPalette_0.10.11163.0_x64__8wekyb3d8bbwe",
+ "Id": "MSIX\\Microsoft.CommandPalette_0.10.11181.0_x64__8wekyb3d8bbwe",
"Name": "Command Palette",
- "Version": "0.10.11163.0",
+ "Version": "0.10.11181.0",
"Source": "Microsoft Store"
},
{
- "Id": "MSIX\\Microsoft.GamingApp_2603.1001.18.0_x64__8wekyb3d8bbwe",
+ "Id": "MSIX\\Microsoft.GamingApp_2604.1001.9.0_x64__8wekyb3d8bbwe",
"Name": "Xbox",
- "Version": "2603.1001.18.0",
- "Source": "Microsoft Store"
- },
- {
- "Id": "MSIX\\Microsoft.GamingServices_34.111.20001.0_x64__8wekyb3d8bbwe",
- "Name": "Gaming Services",
- "Version": "34.111.20001.0",
+ "Version": "2604.1001.9.0",
"Source": "Microsoft Store"
},
{
@@ -1508,18 +1074,18 @@
"Source": "Microsoft Store"
},
{
- "Id": "MSIX\\Microsoft.LanguageExperiencePacken-GB_26100.124.233.0_neutral__8wekyb3d8bbwe",
- "Name": "English (United Kingdom) Local Experience Pack",
- "Version": "26100.124.233.0",
- "Source": "Microsoft Store"
- },
- {
"Id": "MSIX\\Microsoft.MPEG2VideoExtension_1.2.13.0_x64__8wekyb3d8bbwe",
"Name": "MPEG-2 Video Extension",
"Version": "1.2.13.0",
"Source": "Microsoft Store"
},
{
+ "Id": "MSIX\\Microsoft.MicrosoftEdge.Stable_140.0.3485.66_neutral__8wekyb3d8bbwe",
+ "Name": "Microsoft Edge",
+ "Version": "140.0.3485.66",
+ "Source": "Microsoft Store"
+ },
+ {
"Id": "MSIX\\Microsoft.NET.Native.Framework.2.2_2.2.29512.0_x64__8wekyb3d8bbwe",
"Name": "Microsoft .Net Native Framework Package 2.2",
"Version": "2.2.29512.0",
@@ -1550,39 +1116,45 @@
"Source": "Microsoft Store"
},
{
+ "Id": "MSIX\\Microsoft.Office.OneNoteVirtualPrinter_1.0.0.0_x64__8wekyb3d8bbwe",
+ "Name": "OneNote Virtual Printer",
+ "Version": "1.0.0.0",
+ "Source": "Microsoft Store"
+ },
+ {
"Id": "MSIX\\Microsoft.OfficePushNotificationUtility_16.0.19929.20090_neutral__8wekyb3d8bbwe",
"Name": "OfficePushNotificationsUtility",
"Version": "16.0.19929.20090",
"Source": "Microsoft Store"
},
{
- "Id": "MSIX\\Microsoft.Paint_11.2601.401.0_x64__8wekyb3d8bbwe",
- "Name": "Paint",
- "Version": "11.2601.401.0",
+ "Id": "MSIX\\Microsoft.OutlookForWindows_1.2026.421.500_x64__8wekyb3d8bbwe",
+ "Name": "Outlook for Windows",
+ "Version": "1.2026.421.500",
"Source": "Microsoft Store"
},
{
- "Id": "MSIX\\Microsoft.PowerToys.FileLocksmithContextMenu_0.99.0.0_neutral__8wekyb3d8bbwe",
+ "Id": "MSIX\\Microsoft.PowerToys.FileLocksmithContextMenu_0.99.1.0_neutral__8wekyb3d8bbwe",
"Name": "PowerToys FileLocksmith Context Menu",
- "Version": "0.99.0.0",
+ "Version": "0.99.1.0",
"Source": "Microsoft Store"
},
{
- "Id": "MSIX\\Microsoft.PowerToys.ImageResizerContextMenu_0.99.0.0_neutral__8wekyb3d8bbwe",
+ "Id": "MSIX\\Microsoft.PowerToys.ImageResizerContextMenu_0.99.1.0_neutral__8wekyb3d8bbwe",
"Name": "PowerToys ImageResizer Context Menu",
- "Version": "0.99.0.0",
+ "Version": "0.99.1.0",
"Source": "Microsoft Store"
},
{
- "Id": "MSIX\\Microsoft.PowerToys.PowerRenameContextMenu_0.99.0.0_neutral__8wekyb3d8bbwe",
+ "Id": "MSIX\\Microsoft.PowerToys.PowerRenameContextMenu_0.99.1.0_neutral__8wekyb3d8bbwe",
"Name": "PowerToys PowerRename Context Menu",
- "Version": "0.99.0.0",
+ "Version": "0.99.1.0",
"Source": "Microsoft Store"
},
{
- "Id": "MSIX\\Microsoft.PowerToys.SparseApp_0.99.0.0_neutral__8wekyb3d8bbwe",
+ "Id": "MSIX\\Microsoft.PowerToys.SparseApp_0.99.1.0_neutral__8wekyb3d8bbwe",
"Name": "PowerToys.SparseApp",
- "Version": "0.99.0.0",
+ "Version": "0.99.1.0",
"Source": "Microsoft Store"
},
{
@@ -1622,39 +1194,15 @@
"Source": "Microsoft Store"
},
{
- "Id": "MSIX\\Microsoft.VCLibs.110.00.UWPDesktop_11.0.61135.0_x64__8wekyb3d8bbwe",
- "Name": "Microsoft Visual C\u002B\u002B 2012 UWP Desktop Runtime Package",
- "Version": "11.0.61135.0",
- "Source": "Microsoft Store"
- },
- {
- "Id": "MSIX\\Microsoft.VCLibs.110.00.UWPDesktop_11.0.61135.0_x86__8wekyb3d8bbwe",
- "Name": "Microsoft Visual C\u002B\u002B 2012 UWP Desktop Runtime Package",
- "Version": "11.0.61135.0",
- "Source": "Microsoft Store"
- },
- {
- "Id": "MSIX\\Microsoft.VCLibs.120.00.UWPDesktop_12.0.40653.0_x64__8wekyb3d8bbwe",
- "Name": "Microsoft Visual C\u002B\u002B 2013 UWP Desktop Runtime Package",
- "Version": "12.0.40653.0",
- "Source": "Microsoft Store"
- },
- {
- "Id": "MSIX\\Microsoft.VCLibs.120.00.UWPDesktop_12.0.40653.0_x86__8wekyb3d8bbwe",
- "Name": "Microsoft Visual C\u002B\u002B 2013 UWP Desktop Runtime Package",
- "Version": "12.0.40653.0",
- "Source": "Microsoft Store"
- },
- {
"Id": "MSIX\\Microsoft.VP9VideoExtensions_1.2.12.0_x64__8wekyb3d8bbwe",
"Name": "VP9 Video Extensions",
"Version": "1.2.12.0",
"Source": "Microsoft Store"
},
{
- "Id": "MSIX\\Microsoft.VisualStudioCode_1.0.117.0_neutral__8wekyb3d8bbwe",
+ "Id": "MSIX\\Microsoft.VisualStudioCode_1.0.118.1_neutral__8wekyb3d8bbwe",
"Name": "Visual Studio Code",
- "Version": "1.0.117.0",
+ "Version": "1.0.118.1",
"Source": "Microsoft Store"
},
{
@@ -1670,15 +1218,15 @@
"Source": "Microsoft Store"
},
{
- "Id": "MSIX\\Microsoft.WinAppRuntime.DDLM.8000.770.947.0-x6_8000.770.947.0_x64__8wekyb3d8bbwe",
- "Name": "Windows App Runtime DDLM 8000.770.947.0-x6",
- "Version": "8000.770.947.0",
+ "Id": "MSIX\\Microsoft.Windows.DevHome_0.2101.858.0_x64__8wekyb3d8bbwe",
+ "Name": "Windows Advanced Settings",
+ "Version": "0.2101.858.0",
"Source": "Microsoft Store"
},
{
- "Id": "MSIX\\Microsoft.WinAppRuntime.DDLM.8000.770.947.0-x8_8000.770.947.0_x86__8wekyb3d8bbwe",
- "Name": "Windows App Runtime DDLM 8000.770.947.0-x8",
- "Version": "8000.770.947.0",
+ "Id": "MSIX\\Microsoft.Windows.Photos_2026.11020.20001.0_x64__8wekyb3d8bbwe",
+ "Name": "Microsoft Photos",
+ "Version": "2026.11020.20001.0",
"Source": "Microsoft Store"
},
{
@@ -1688,15 +1236,21 @@
"Source": "Microsoft Store"
},
{
- "Id": "MSIX\\Microsoft.WindowsNotepad_11.2512.26.0_x64__8wekyb3d8bbwe",
+ "Id": "MSIX\\Microsoft.WindowsCamera_2025.2510.2.0_x64__8wekyb3d8bbwe",
+ "Name": "Windows Camera",
+ "Version": "2025.2510.2.0",
+ "Source": "Microsoft Store"
+ },
+ {
+ "Id": "MSIX\\Microsoft.WindowsNotepad_11.2512.29.0_x64__8wekyb3d8bbwe",
"Name": "Windows Notepad",
- "Version": "11.2512.26.0",
+ "Version": "11.2512.29.0",
"Source": "Microsoft Store"
},
{
- "Id": "MSIX\\Microsoft.WindowsStore_22603.1401.7.0_x64__8wekyb3d8bbwe",
+ "Id": "MSIX\\Microsoft.WindowsStore_22603.1401.15.0_x64__8wekyb3d8bbwe",
"Name": "Microsoft Store",
- "Version": "22603.1401.7.0",
+ "Version": "22603.1401.15.0",
"Source": "Microsoft Store"
},
{
@@ -1706,9 +1260,9 @@
"Source": "Microsoft Store"
},
{
- "Id": "MSIX\\Microsoft.Winget.Source_2026.428.1729.30_neutral__8wekyb3d8bbwe",
+ "Id": "MSIX\\Microsoft.Winget.Source_2026.430.1859.43_neutral__8wekyb3d8bbwe",
"Name": "Windows Package Manager Source (winget) V2",
- "Version": "2026.428.1729.30",
+ "Version": "2026.430.1859.43",
"Source": "Microsoft Store"
},
{
@@ -1718,9 +1272,9 @@
"Source": "Microsoft Store"
},
{
- "Id": "MSIX\\Microsoft.XboxGamingOverlay_7.326.2102.0_x64__8wekyb3d8bbwe",
+ "Id": "MSIX\\Microsoft.XboxGamingOverlay_7.326.4151.0_x64__8wekyb3d8bbwe",
"Name": "Game Bar",
- "Version": "7.326.2102.0",
+ "Version": "7.326.4151.0",
"Source": "Microsoft Store"
},
{
@@ -1730,33 +1284,27 @@
"Source": "Microsoft Store"
},
{
- "Id": "MSIX\\Microsoft.XboxSpeechToTextOverlay_1.117.15001.0_x64__8wekyb3d8bbwe",
+ "Id": "MSIX\\Microsoft.XboxSpeechToTextOverlay_1.111.30001.0_x64__8wekyb3d8bbwe",
"Name": "Game Speech Window",
- "Version": "1.117.15001.0",
- "Source": "Microsoft Store"
- },
- {
- "Id": "MSIX\\MicrosoftCorporationII.WinAppRuntime.Main.1.8_8000.836.2153.0_x64__8wekyb3d8bbwe",
- "Name": "WinAppRuntime.Main.1.8",
- "Version": "8000.836.2153.0",
+ "Version": "1.111.30001.0",
"Source": "Microsoft Store"
},
{
- "Id": "MSIX\\MicrosoftCorporationII.WinAppRuntime.Singleton_8000.836.2153.0_x64__8wekyb3d8bbwe",
- "Name": "WinAppRuntime.Singleton",
- "Version": "8000.836.2153.0",
+ "Id": "MSIX\\Microsoft.YourPhone_0.26032.102.0_x64__8wekyb3d8bbwe",
+ "Name": "Phone Link",
+ "Version": "0.26032.102.0",
"Source": "Microsoft Store"
},
{
- "Id": "MSIX\\MicrosoftWindows.Speech.en-IN.1_1.0.15.0_x64__cw5n1h2txyewy",
- "Name": "Speech Pack - English (India)",
- "Version": "1.0.15.0",
+ "Id": "MSIX\\MicrosoftCorporationII.WinAppRuntime.Main.1.8_8000.806.2252.0_x64__8wekyb3d8bbwe",
+ "Name": "WinAppRuntime.Main.1.8",
+ "Version": "8000.806.2252.0",
"Source": "Microsoft Store"
},
{
- "Id": "MSIX\\MicrosoftWindows.Voice.en-IN.Prabhat.1_1.0.3.0_x64__cw5n1h2txyewy",
- "Name": "Microsoft Prabhat (Natural) - English (India)",
- "Version": "1.0.3.0",
+ "Id": "MSIX\\MicrosoftWindows.CrossDevice_0.26032.83.0_x64__cw5n1h2txyewy",
+ "Name": "Cross Device Experience Host",
+ "Version": "0.26032.83.0",
"Source": "Microsoft Store"
},
{
@@ -1800,6 +1348,12 @@
"Name": "Local AI Manager for Microsoft 365",
"Version": "0.20.47.0",
"Source": "Microsoft Store"
+ },
+ {
+ "Id": "MSIX\\ngrok.ngrok_3.39.1.0_x64__1g87z0zv29zzc",
+ "Name": "ngrok",
+ "Version": "3.39.1.0",
+ "Source": "Microsoft Store"
}
]
}
\ No newline at end of file
diff --git a/windows/powertoys/settings_134218716701144683.ptb b/windows/powertoys/settings_134218716701144683.ptb
Binary files differ.
diff --git a/windows/powertoys/settings_134220769845580211.ptb b/windows/powertoys/settings_134220769845580211.ptb
Binary files differ.
diff --git a/windows/windhawk.zip b/windows/windhawk.zip
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:c4776782e6e5b4a6f385992781ec8af7ad803ce909761739fba0971d1652f368
-size 7406044
+oid sha256:01e1a557db2e5545d3bbce5003deb3b62b5a02c8064a547f6536e0273a487dce
+size 7665872
diff --git a/windows/wsl/.zshrc b/windows/wsl/.zshrc
@@ -18,7 +18,14 @@ alias whome="cd /mnt/c/Users"
# Editor
npp() {
- "/mnt/c/Program Files/Notepad++/notepad++.exe" "$@" > /dev/null 2>&1 &!
+ local npp_exe="/mnt/c/Program Files/Notepad++/notepad++.exe"
+ if [ $# -eq 0 ]; then
+ "$npp_exe" > /dev/null 2>&1 &!
+ return
+ fi
+
+ local win_path="$(wslpath -w "$1")"
+ "$npp_exe" "$win_path" > /dev/null 2>&1 &!
}
# Command History
diff --git a/windows/yasb/config.yaml b/windows/yasb/config.yaml
@@ -1,636 +1,549 @@
-# YASB Panel Configuration
-watch_stylesheet: true
-watch_config: true
-debug: false
-
-bars:
- panel:
- enabled: true
- screens: ["*"]
- class_name: "yasb-panel"
- alignment:
- position: "top"
- center: true
- window_flags:
- always_on_top: true
- windows_app_bar: true
- hide_on_fullscreen: true
- dimensions:
- width: "100%"
- height: 26
- padding:
- top: 0
- left: 0
- bottom: 0
- right: 0
- animation:
- enabled: true
- duration: 400
- blur_effect:
- enabled: true
- acrylic: true
- dark_mode: true
- round_corners: false
- border_color: None
- widgets:
- left: [
- "task_view",
- # "home",
- "windows_workspaces",
- "active_window",
- "media",
- # "apps",
- # "taskbar",
- ]
- center: []
- right: [
- # "cpu",
- # "gpu",
- # "memory",
- # "disk",
- # "traffic",
- "microphone",
- "volume",
- "brightness",
- "battery",
- "bluetooth",
- "wifi",
- "weather",
- "clock",
- "power_menu",
- ]
-
-widgets:
- task_view:
- type: "yasb.custom.CustomWidget"
- options:
- label: "<span>\ue154</span>"
- label_alt: "<span>\ue154</span>"
- class_name: "task-view-widget"
- callbacks:
- on_left: "exec explorer.exe shell:::{3080F90E-D7AD-11D9-BD98-0000947B0257}"
- on_middle: "do_nothing"
- on_right: "exec winver"
-
- home:
- type: "yasb.home.HomeWidget"
- options:
- label: "<span>\ue62a</span>"
- system_menu: true
- power_menu: false
- blur: true
- border_color: "system"
- round_corners_type: "normal"
- menu_labels:
- about: "\ue66A About This PC"
- system: "\uF423 System Settings"
- task_manager: "\uf437 Task Manager"
- hibernate: "\uf28e Hibernate"
- sleep: "\u23fe Sleep"
- restart: "\uead2 Restart"
- shutdown: "\uf011 Shutdown"
- lock: "\uea75 Lock"
- logout: "\udb80\udf43 Logout"
- menu_list:
- - { title: "\uE617 Home", path: "~" }
- - { title: "\udb80\udd20 Downloads", path: "~\\Downloads" }
- - { title: "\udb80\ude1a Documents", path: "~\\Documents" }
- - { title: "\uf03e Pictures", path: "~\\Pictures" }
-
- active_window:
- type: "yasb.active_window.ActiveWindowWidget"
- options:
- label: "{win[app_name]}"
- label_alt: "{win[title]}"
- label_no_window: ""
- label_icon: true
- label_icon_size: 14
- max_length: 50
- max_length_ellipsis: "..."
- monitor_exclusive: false
- ignore_window:
- processes:
- - "Rainmeter.exe"
- classes:
- - "RainmeterMeterWindow"
- callbacks:
- on_left: "do_nothing"
- on_middle: "do_nothing"
- on_right: "toggle_label"
- label_shadow:
- enabled: true
- color: "black"
- radius: 1
- offset: [0, 0]
-
- windows_workspaces:
- type: "yasb.windows_desktops.WorkspaceWidget"
- options:
- label_workspace_btn: "\udb81\udc3d"
- label_workspace_active_btn: "\udb81\udc3e"
- btn_shadow:
- enabled: true
- color: "black"
- radius: 1
- offset: [0, 0]
-
- clock:
- type: "yasb.clock.ClockWidget"
- options:
- label: "<span>\uf017</span> {%a %d %b %H:%M}"
- label_alt: "{%A %d %B %Y %H:%M:%S}"
- timezones: []
- calendar:
- blur: true
- round_corners: true
- round_corners_type: "normal"
- border_color: "system"
- alignment: "center"
- direction: "down"
- show_holidays: true
- show_week_numbers: true
- holiday_color: "#FF6464"
- label_shadow:
- enabled: true
- color: "black"
- radius: 1
- offset: [0, 0]
-
- apps:
- type: "yasb.applications.ApplicationsWidget"
- options:
- label: "{data}"
- app_list:
- - { icon: "\uf0a2", launch: "notification_center" }
- - { icon: "\ueb51", launch: "quick_settings" }
- - { icon: "\uf46a", launch: "cmd /c start ms-settings:windowsupdate" }
- - { icon: "\uf422", launch: "search" }
- - { icon: "\ueb03", launch: "cmd /c Taskmgr", name: "Task Manager" }
- - { icon: "\uf489", launch: "wt", name: "Windows Terminal" }
- - { icon: "\udb82\ude1e", launch: "cmd /c code", name: "VS Code" }
- - {
- icon: "\uf1b6",
- launch: "C:/Program Files (x86)/Steam/Steam.exe",
- name: "Steam",
- }
- container_padding:
- top: 0
- left: 8
- bottom: 0
- right: 8
-
- taskbar:
- type: "yasb.taskbar.TaskbarWidget"
- options:
- icon_size: 16
- animation:
- enabled: true
- preview:
- enabled: true
- width: 250
- delay: 400
- padding: 12
- callbacks:
- on_middle: "close_app"
-
- media:
- type: "yasb.media.MediaWidget"
- options:
- label: "<span>\udb80\udf87</span> {title}"
- label_alt: "<span>\udb80\udf87</span> {artist}"
- hide_empty: true
- callbacks:
- on_left: "toggle_media_menu"
- on_middle: "toggle_play_pause"
- on_right: "toggle_label"
- max_field_size:
- label: 45
- label_alt: 80
- show_thumbnail: false
- controls_only: false
- controls_left: false
- thumbnail_alpha: 80
- thumbnail_padding: 8
- thumbnail_corner_radius: 16
- icons:
- prev_track: "\udb81\udcae"
- next_track: "\udb81\udcad"
- play: "\udb81\udc0a"
- pause: "\udb80\udfe4"
- media_menu:
- blur: true
- round_corners: true
- round_corners_type: "normal"
- alignment: "right"
- direction: "down"
- offset_top: 6
- offset_left: 10
- thumbnail_corner_radius: 8
- thumbnail_size: 120
- max_title_size: 80
- max_artist_size: 20
- show_source: true
- media_menu_icons:
- play: "\ue768"
- pause: "\ue769"
- prev_track: "\ue892"
- next_track: "\ue893"
- label_shadow:
- enabled: true
- color: "black"
- radius: 1
- offset: [0, 0]
-
- weather:
- type: "yasb.weather.WeatherWidget"
- options:
- label: "<span>{icon}</span> {temp}"
- label_alt: "{location}: {min_temp}/{max_temp}"
- api_key: "$env:YASB_WEATHER_API_KEY"
- location: "auto:ip"
- show_alerts: true
- hide_decimal: true
- units: "metric"
- callbacks:
- on_left: "toggle_card"
- on_middle: "do_nothing"
- on_right: "toggle_label"
- icons:
- sunnyDay: "\ue30d"
- clearNight: "\ue32b"
- cloudyDay: "\udb81\udd99"
- cloudyNight: "\ue311"
- rainyDay: "\udb81\ude7e"
- rainyNight: "\udb81\ude7e"
- snowyDay: "\udb81\udd98"
- snowyNight: "\udb81\udd98"
- blizzardDay: "\uebaa"
- default: "\uebaa"
- weather_card:
- blur: True
- round_corners: True
- round_corners_type: "normal"
- border_color: "System"
- alignment: "right"
- direction: "down"
- distance: 6
- icon_size: 64
-
- cpu:
- type: "yasb.cpu.CpuWidget"
- options:
- label: "<span>\ueea1</span> {info[percent][total]}%"
- label_alt: "<span>\ueea1</span> {info[histograms][cpu_percent]}"
- update_interval: 1000
- histogram_icons:
- - "\u2581" # 0%
- - "\u2581" # 10%
- - "\u2582" # 20%
- - "\u2583" # 30%
- - "\u2584" # 40%
- - "\u2585" # 50%
- - "\u2586" # 60%
- - "\u2587" # 70%
- - "\u2588" # 80%+
- histogram_num_columns: 8
- callbacks:
- on_left: "do_nothing"
- on_middle: "exec cmd /c Taskmgr"
- on_right: "toggle_label"
- container_padding:
- top: 0
- left: 0
- bottom: 0
- right: 0
- label_shadow:
- enabled: true
- color: "black"
- radius: 1
- offset: [0, 0]
-
- gpu:
- type: "yasb.gpu.GpuWidget"
- options:
- label: "<span>\uf4bc</span> {info[temp]}°C"
- label_alt: "<span>\uf4bc</span> {info[temp]}°C | {info[mem_used]} / {info[mem_total]}"
- update_interval: 2000
- gpu_thresholds:
- low: 25
- medium: 50
- high: 90
- histogram_icons:
- - "\u2581" # 0%
- - "\u2581" # 10%
- - "\u2582" # 20%
- - "\u2583" # 30%
- - "\u2584" # 40%
- - "\u2585" # 50%
- - "\u2586" # 60%
- - "\u2587" # 70%
- - "\u2588" # 80%+
- histogram_num_columns: 8
- callbacks:
- on_left: "do_nothing"
- on_middle: "exec cmd /c Taskmgr"
- on_right: "toggle_label"
- label_shadow:
- enabled: true
- color: "black"
- radius: 1
- offset: [0, 0]
-
- memory:
- type: "yasb.memory.MemoryWidget"
- options:
- label: "<span>\uefc5</span> {virtual_mem_used} / {virtual_mem_total}"
- label_alt: "<span>\uf4bc</span> VIRT: {virtual_mem_percent}% SWAP: {swap_mem_percent}%"
- update_interval: 5000
- callbacks:
- on_left: "do_nothing"
- on_middle: "exec cmd /c Taskmgr"
- on_right: "toggle_label"
- memory_thresholds:
- low: 25
- medium: 50
- high: 90
- histogram_icons:
- - "\u2581" # 0%
- - "\u2581" # 10%
- - "\u2582" # 20%
- - "\u2583" # 30%
- - "\u2584" # 40%
- - "\u2585" # 50%
- - "\u2586" # 60%
- - "\u2587" # 70%
- - "\u2588" # 80%+
- label_shadow:
- enabled: true
- color: "black"
- radius: 1
- offset: [0, 0]
-
- disk:
- type: "yasb.disk.DiskWidget"
- options:
- label: "<span>\uf473</span> Disks"
- label_alt: "<span>\uf473</span> {volume_label} {space[used][gb]} / {space[total][gb]}"
- volume_label: "C"
- decimal_display: 1
- update_interval: 60
- group_label:
- volume_labels:
- [
- "C",
- "D",
- "E",
- "F",
- "G",
- "H",
- "I",
- "J",
- "K",
- "L",
- "M",
- "N",
- "O",
- "P",
- "Q",
- "R",
- "S",
- "T",
- "U",
- "V",
- "W",
- "X",
- "Y",
- "Z",
- ]
- show_label_name: true
- blur: true
- round_corners: true
- round_corners_type: "normal"
- border_color: "system"
- alignment: "center"
- direction: "down"
- callbacks:
- on_left: "toggle_group"
- on_middle: "do_nothing"
- on_right: "toggle_label"
- disk_thresholds:
- low: 25
- medium: 50
- high: 90
- label_shadow:
- enabled: true
- color: "black"
- radius: 1
- offset: [0, 0]
-
- traffic:
- type: "yasb.traffic.TrafficWidget"
- options:
- label: "<span class='download'>\uea9a {download_speed}</span><span class='upload'>{upload_speed} \ueaa1</span>"
- label_alt: "<span class='download'>\uea9a {download_speed}</span><span class='upload'>{upload_speed} \ueaa1</span>"
- update_interval: 1000
- hide_if_offline: true
- speed_unit: "bytes"
- max_label_length_align: "center"
- menu:
- blur: true
- round_corners: true
- round_corners_type: "normal"
- border_color: "system"
- alignment: "center"
- direction: "down"
- callbacks:
- on_left: "toggle_menu"
- on_middle: "exec cmd.exe /c start ms-settings:network-status"
- on_right: "do_nothing"
- label_shadow:
- enabled: true
- color: "black"
- radius: 1
- offset: [0, 0]
-
- microphone:
- type: "yasb.microphone.MicrophoneWidget"
- options:
- label: "<span>{icon}</span> {level}"
- label_alt: "<span>{icon}</span>"
- mute_text: "Mute"
- icons:
- normal: "\ue720"
- muted: "\uf12e"
- mic_menu:
- blur: true
- round_corners: true
- round_corners_type: "normal"
- border_color: "system"
- alignment: "right"
- direction: "down"
- callbacks:
- on_left: "toggle_mic_menu"
- on_middle: "exec cmd.exe /c start ms-settings:sound"
- on_right: "toggle_mute"
- label_shadow:
- enabled: true
- color: "black"
- radius: 1
- offset: [0, 0]
-
- volume:
- type: "yasb.volume.VolumeWidget"
- options:
- label: "<span>{icon}</span> {level}"
- label_alt: "{volume}"
- mute_text: "Mute"
- volume_icons:
- - "\ue74f" # Mute
- - "\ue992" # 10%
- - "\ue993" # 30%
- - "\ue994" # 60%
- - "\ue995" # 100%
- callbacks:
- on_left: "toggle_volume_menu"
- on_middle: "exec cmd.exe /c start ms-settings:sound"
- on_right: "toggle_mute"
- audio_menu:
- blur: true
- round_corners: true
- round_corners_type: "normal"
- border_color: "system"
- alignment: "center"
- direction: "down"
- label_shadow:
- enabled: true
- color: "black"
- radius: 1
- offset: [0, 0]
-
- brightness:
- type: "yasb.brightness.BrightnessWidget"
- options:
- label: "<span>{icon}</span> {percent}%"
- label_alt: "<span>{icon}</span> {percent}%"
- hide_unsupported: true
- brightness_menu:
- blur: true
- round_corners: true
- round_corners_type: "normal"
- border_color: "system"
- alignment: "center"
- direction: "down"
- callbacks:
- on_left: "toggle_brightness_menu"
- on_middle: "exec cmd /c start ms-settings:display"
- on_right: "do_nothing"
- brightness_icons: ["\ue706", "\ue706", "\ue706", "\ue706"]
- label_shadow:
- enabled: true
- color: "black"
- radius: 1
- offset: [0, 0]
-
- wifi:
- type: "yasb.wifi.WifiWidget"
- options:
- label: "<span>{wifi_icon}</span>"
- label_alt: "<span>{wifi_icon}</span> {wifi_name} {wifi_strength}%"
- update_interval: 5000
- get_exact_wifi_strength: true
- ethernet_label: "<span>{wifi_icon}</span>"
- ethernet_label_alt: "<span>{wifi_icon}</span> {ip_addr}"
- ethernet_icon: "\ue839"
- wifi_icons: ["\uec3c", "\uec3d", "\uec3e", "\uec3e", "\uec3f"]
- callbacks:
- on_left: "toggle_menu"
- on_middle: "exec cmd.exe /c start ms-settings:network"
- on_right: "toggle_label"
- label_shadow:
- enabled: true
- color: "black"
- radius: 1
- offset: [0, 0]
- menu_config:
- blur: true
- round_corners: true
- round_corners_type: "normal"
- border_color: "system"
- alignment: "center"
- direction: "down"
- offset_top: 6
- offset_left: 0
-
- bluetooth:
- type: "yasb.bluetooth.BluetoothWidget"
- options:
- label: "<span>{icon}</span>"
- label_alt: "{device_name}"
- label_no_device: "Not Connected"
- label_device_separator: ", "
- max_length: 15
- max_length_ellipsis: "..."
- icons:
- bluetooth_on: "\uec41"
- bluetooth_off: "\ueb90"
- bluetooth_connected: "\ue702"
- callbacks:
- on_left: "exec cmd.exe /c start ms-settings:bluetooth"
- on_middle: "do_nothing"
- on_right: "toggle_label"
- label_shadow:
- enabled: true
- color: "black"
- radius: 1
- offset: [0, 0]
-
- battery:
- type: "yasb.battery.BatteryWidget"
- options:
- label: "<span>{icon}</span> {percent}%"
- label_alt: "<span>{icon}</span> {percent}% ({time_remaining})"
- update_interval: 5000
- hide_unsupported: true
- charging_options:
- icon_format: "{charging_icon}"
- blink_charging_icon: true
- blink_interval: 800
- status_thresholds:
- critical: 10
- low: 25
- medium: 60
- high: 90
- full: 100
- status_icons:
- icon_charging: "\ue945"
- icon_critical: "\ue851"
- icon_low: "\ue853"
- icon_medium: "\ue855"
- icon_high: "\ue857"
- icon_full: "\ue859"
- callbacks:
- on_left: "exec cmd /c start ms-settings:powersleep"
- on_middle: "do_nothing"
- on_right: "toggle_label"
- label_shadow:
- enabled: true
- color: "black"
- radius: 1
- offset: [0, 0]
-
- power_menu:
- type: "yasb.power_menu.PowerMenuWidget"
- options:
- label: "\ue7e8"
- uptime: true
- blur: false
- blur_background: true
- animation_duration: 300
- button_row: 3
- buttons:
- lock: ["\uea75", "Lock"]
- signout: ["\udb80\udf43", "Sign out"]
- shutdown: ["\uf011", "Shut Down"]
- restart: ["\uead2", "Restart"]
- hibernate: ["\uf28e", "Hibernate"]
- cancel: ["\udb81\udf3a", "Cancel"]
+# YASB Panel Configuration
+watch_stylesheet: true
+watch_config: true
+debug: false
+
+bars:
+ panel:
+ enabled: true
+ screens: ["*"]
+ class_name: "yasb-panel"
+ alignment:
+ position: "top"
+ align: "center"
+ window_flags:
+ always_on_top: true
+ windows_app_bar: true
+ hide_on_fullscreen: true
+ dimensions:
+ width: "100%"
+ height: 26
+ padding:
+ top: 0
+ left: 0
+ bottom: 0
+ right: 0
+ animation:
+ enabled: true
+ duration: 400
+ blur_effect:
+ enabled: true
+ dark_mode: true
+ round_corners: false
+ border_color: None
+ widgets:
+ left: [
+ "task_view",
+ # "home",
+ "windows_workspaces",
+ "active_window",
+ "media",
+ # "apps",
+ # "taskbar",
+ ]
+ center: []
+ right: [
+ # "cpu",
+ # "gpu",
+ # "memory",
+ # "disk",
+ # "traffic",
+ "microphone",
+ "volume",
+ "brightness",
+ "battery",
+ "bluetooth",
+ "wifi",
+ "weather",
+ "clock",
+ "power_menu",
+ ]
+
+widgets:
+ task_view:
+ type: "yasb.custom.CustomWidget"
+ options:
+ label: "<span>\ue154</span>"
+ label_alt: "<span>\ue154</span>"
+ class_name: "task-view-widget"
+ callbacks:
+ on_left: "exec explorer.exe shell:::{3080F90E-D7AD-11D9-BD98-0000947B0257}"
+ on_middle: "do_nothing"
+ on_right: "exec winver"
+
+ home:
+ type: "yasb.home.HomeWidget"
+ options:
+ label: "<span>\ue62a</span>"
+ system_menu: true
+ power_menu: false
+ blur: true
+ border_color: "system"
+ round_corners_type: "normal"
+ menu_labels:
+ about: "\ue66A About This PC"
+ system: "\uF423 System Settings"
+ task_manager: "\uf437 Task Manager"
+ hibernate: "\uf28e Hibernate"
+ sleep: "\u23fe Sleep"
+ restart: "\uead2 Restart"
+ shutdown: "\uf011 Shutdown"
+ lock: "\uea75 Lock"
+ logout: "\udb80\udf43 Logout"
+ menu_list:
+ - { title: "\uE617 Home", path: "~" }
+ - { title: "\udb80\udd20 Downloads", path: "~\\Downloads" }
+ - { title: "\udb80\ude1a Documents", path: "~\\Documents" }
+ - { title: "\uf03e Pictures", path: "~\\Pictures" }
+
+ active_window:
+ type: "yasb.active_window.ActiveWindowWidget"
+ options:
+ label: "{win[app_name]}"
+ label_alt: "{win[title]}"
+ label_no_window: ""
+ label_icon: true
+ label_icon_size: 14
+ max_length: 50
+ max_length_ellipsis: "..."
+ monitor_exclusive: false
+ ignore_window:
+ processes:
+ - "Rainmeter.exe"
+ classes:
+ - "RainmeterMeterWindow"
+ callbacks:
+ on_left: "do_nothing"
+ on_middle: "do_nothing"
+ on_right: "toggle_label"
+
+ windows_workspaces:
+ type: "yasb.windows_desktops.WorkspaceWidget"
+ options:
+ label_workspace_btn: "\u25cb"
+ label_workspace_active_btn: "\udb81\udc3e"
+
+ clock:
+ type: "yasb.clock.ClockWidget"
+ options:
+ label: "<span>\uf017</span> {%a %d %b %H:%M}"
+ label_alt: "{%A %d %B %Y %H:%M:%S}"
+ timezones: []
+ calendar:
+ blur: true
+ round_corners: true
+ round_corners_type: "normal"
+ border_color: "system"
+ alignment: "center"
+ direction: "down"
+ show_holidays: true
+ show_week_numbers: true
+ holiday_color: "#FF6464"
+
+ apps:
+ type: "yasb.applications.ApplicationsWidget"
+ options:
+ label: "{data}"
+ app_list:
+ - { icon: "\uf0a2", launch: "notification_center" }
+ - { icon: "\ueb51", launch: "quick_settings" }
+ - { icon: "\uf46a", launch: "cmd /c start ms-settings:windowsupdate" }
+ - { icon: "\uf422", launch: "search" }
+ - { icon: "\ueb03", launch: "cmd /c Taskmgr", name: "Task Manager" }
+ - { icon: "\uf489", launch: "wt", name: "Windows Terminal" }
+ - { icon: "\udb82\ude1e", launch: "cmd /c code", name: "VS Code" }
+ - {
+ icon: "\uf1b6",
+ launch: "C:/Program Files (x86)/Steam/Steam.exe",
+ name: "Steam",
+ }
+
+ taskbar:
+ type: "yasb.taskbar.TaskbarWidget"
+ options:
+ icon_size: 16
+ animation:
+ enabled: true
+ preview:
+ enabled: true
+ width: 250
+ delay: 400
+ padding: 12
+ callbacks:
+ on_middle: "close_app"
+
+ media:
+ type: "yasb.media.MediaWidget"
+ options:
+ label: "<span>\udb80\udf87</span> {title}"
+ label_alt: "<span>\udb80\udf87</span> {artist}"
+ hide_empty: true
+ callbacks:
+ on_left: "toggle_media_menu"
+ on_middle: "toggle_play_pause"
+ on_right: "toggle_label"
+ max_field_size:
+ label: 45
+ label_alt: 80
+ show_thumbnail: false
+ controls_only: false
+ controls_left: false
+ thumbnail_alpha: 80
+ thumbnail_padding: 8
+ thumbnail_corner_radius: 16
+ icons:
+ prev_track: "\udb81\udcae"
+ next_track: "\udb81\udcad"
+ play: "\udb81\udc0a"
+ pause: "\udb80\udfe4"
+ media_menu:
+ blur: true
+ round_corners: true
+ round_corners_type: "normal"
+ alignment: "right"
+ direction: "down"
+ offset_top: 6
+ offset_left: 10
+ thumbnail_corner_radius: 8
+ thumbnail_size: 120
+ max_title_size: 80
+ max_artist_size: 20
+ show_source: true
+ media_menu_icons:
+ play: "\ue768"
+ pause: "\ue769"
+ prev_track: "\ue892"
+ next_track: "\ue893"
+
+ weather:
+ type: "yasb.weather.WeatherWidget"
+ options:
+ label: "<span>{icon}</span> {temp}"
+ label_alt: "{location}: {min_temp}/{max_temp}"
+ api_key: "$env:YASB_WEATHER_API_KEY"
+ location: "auto:ip"
+ show_alerts: true
+ hide_decimal: true
+ units: "metric"
+ callbacks:
+ on_left: "toggle_card"
+ on_middle: "do_nothing"
+ on_right: "toggle_label"
+ icons:
+ sunnyDay: "\ue30d"
+ clearNight: "\ue32b"
+ cloudyDay: "\udb81\udd99"
+ cloudyNight: "\ue311"
+ rainyDay: "\udb81\ude7e"
+ rainyNight: "\udb81\ude7e"
+ snowyDay: "\udb81\udd98"
+ snowyNight: "\udb81\udd98"
+ blizzardDay: "\uebaa"
+ default: "\uebaa"
+ weather_card:
+ blur: True
+ round_corners: True
+ round_corners_type: "normal"
+ border_color: "System"
+ alignment: "right"
+ direction: "down"
+ offset_top: 6
+ icon_size: 64
+
+ cpu:
+ type: "yasb.cpu.CpuWidget"
+ options:
+ label: "<span>\ueea1</span> {info[percent][total]}%"
+ label_alt: "<span>\ueea1</span> {info[histograms][cpu_percent]}"
+ update_interval: 1000
+ histogram_icons:
+ - "\u2581" # 0%
+ - "\u2581" # 10%
+ - "\u2582" # 20%
+ - "\u2583" # 30%
+ - "\u2584" # 40%
+ - "\u2585" # 50%
+ - "\u2586" # 60%
+ - "\u2587" # 70%
+ - "\u2588" # 80%+
+ histogram_num_columns: 8
+ callbacks:
+ on_left: "do_nothing"
+ on_middle: "exec cmd /c Taskmgr"
+ on_right: "toggle_label"
+
+ gpu:
+ type: "yasb.gpu.GpuWidget"
+ options:
+ label: "<span>\uf4bc</span> {info[temp]}°C"
+ label_alt: "<span>\uf4bc</span> {info[temp]}°C | {info[mem_used]} / {info[mem_total]}"
+ update_interval: 2000
+ gpu_thresholds:
+ low: 25
+ medium: 50
+ high: 90
+ histogram_icons:
+ - "\u2581" # 0%
+ - "\u2581" # 10%
+ - "\u2582" # 20%
+ - "\u2583" # 30%
+ - "\u2584" # 40%
+ - "\u2585" # 50%
+ - "\u2586" # 60%
+ - "\u2587" # 70%
+ - "\u2588" # 80%+
+ histogram_num_columns: 8
+ callbacks:
+ on_left: "do_nothing"
+ on_middle: "exec cmd /c Taskmgr"
+ on_right: "toggle_label"
+
+ memory:
+ type: "yasb.memory.MemoryWidget"
+ options:
+ label: "<span>\uefc5</span> {virtual_mem_used} / {virtual_mem_total}"
+ label_alt: "<span>\uf4bc</span> VIRT: {virtual_mem_percent}% SWAP: {swap_mem_percent}%"
+ update_interval: 5000
+ callbacks:
+ on_left: "do_nothing"
+ on_middle: "exec cmd /c Taskmgr"
+ on_right: "toggle_label"
+ memory_thresholds:
+ low: 25
+ medium: 50
+ high: 90
+ histogram_icons:
+ - "\u2581" # 0%
+ - "\u2581" # 10%
+ - "\u2582" # 20%
+ - "\u2583" # 30%
+ - "\u2584" # 40%
+ - "\u2585" # 50%
+ - "\u2586" # 60%
+ - "\u2587" # 70%
+ - "\u2588" # 80%+
+
+ disk:
+ type: "yasb.disk.DiskWidget"
+ options:
+ label: "<span>\uf473</span> Disks"
+ label_alt: "<span>\uf473</span> {volume_label} {space[used][gb]} / {space[total][gb]}"
+ volume_label: "C"
+ decimal_display: 1
+ update_interval: 60
+ group_label:
+ volume_labels:
+ [
+ "C",
+ "D",
+ "E",
+ "F",
+ "G",
+ "H",
+ "I",
+ "J",
+ "K",
+ "L",
+ "M",
+ "N",
+ "O",
+ "P",
+ "Q",
+ "R",
+ "S",
+ "T",
+ "U",
+ "V",
+ "W",
+ "X",
+ "Y",
+ "Z",
+ ]
+ show_label_name: true
+ blur: true
+ round_corners: true
+ round_corners_type: "normal"
+ border_color: "system"
+ alignment: "center"
+ direction: "down"
+ callbacks:
+ on_left: "toggle_group"
+ on_middle: "do_nothing"
+ on_right: "toggle_label"
+ disk_thresholds:
+ low: 25
+ medium: 50
+ high: 90
+
+ traffic:
+ type: "yasb.traffic.TrafficWidget"
+ options:
+ label: "<span class='download'>\uea9a {download_speed}</span><span class='upload'>{upload_speed} \ueaa1</span>"
+ label_alt: "<span class='download'>\uea9a {download_speed}</span><span class='upload'>{upload_speed} \ueaa1</span>"
+ update_interval: 1000
+ hide_if_offline: true
+ speed_unit: "bytes"
+ max_label_length_align: "center"
+ menu:
+ blur: true
+ round_corners: true
+ round_corners_type: "normal"
+ border_color: "system"
+ alignment: "center"
+ direction: "down"
+ callbacks:
+ on_left: "toggle_menu"
+ on_middle: "exec cmd.exe /c start ms-settings:network-status"
+ on_right: "do_nothing"
+
+ microphone:
+ type: "yasb.microphone.MicrophoneWidget"
+ options:
+ label: "<span>{icon}</span> {level}"
+ label_alt: "<span>{icon}</span>"
+ mute_text: "Mute"
+ icons:
+ normal: "\ue720"
+ muted: "\uf12e"
+ mic_menu:
+ blur: true
+ round_corners: true
+ round_corners_type: "normal"
+ border_color: "system"
+ alignment: "right"
+ direction: "down"
+ callbacks:
+ on_left: "toggle_mic_menu"
+ on_middle: "exec cmd.exe /c start ms-settings:sound"
+ on_right: "toggle_mute"
+
+ volume:
+ type: "yasb.volume.VolumeWidget"
+ options:
+ label: "<span>{icon}</span> {level}"
+ label_alt: "{volume}"
+ mute_text: "Mute"
+ volume_icons:
+ - "\ue74f" # Mute
+ - "\ue992" # 10%
+ - "\ue993" # 30%
+ - "\ue994" # 60%
+ - "\ue995" # 100%
+ callbacks:
+ on_left: "toggle_volume_menu"
+ on_middle: "exec cmd.exe /c start ms-settings:sound"
+ on_right: "toggle_mute"
+ audio_menu:
+ blur: true
+ round_corners: true
+ round_corners_type: "normal"
+ border_color: "system"
+ alignment: "center"
+ direction: "down"
+
+ brightness:
+ type: "yasb.brightness.BrightnessWidget"
+ options:
+ label: "<span>{icon}</span> {percent}%"
+ label_alt: "<span>{icon}</span> {percent}%"
+ brightness_menu:
+ blur: true
+ round_corners: true
+ round_corners_type: "normal"
+ border_color: "system"
+ alignment: "center"
+ direction: "down"
+ callbacks:
+ on_left: "toggle_brightness_menu"
+ on_middle: "exec cmd /c start ms-settings:display"
+ on_right: "do_nothing"
+ brightness_icons: ["\ue706", "\ue706", "\ue706", "\ue706"]
+
+ wifi:
+ type: "yasb.wifi.WifiWidget"
+ options:
+ label: "<span>{wifi_icon}</span>"
+ label_alt: "<span>{wifi_icon}</span> {wifi_name} {wifi_strength}%"
+ update_interval: 5000
+ get_exact_wifi_strength: true
+ ethernet_label: "<span>{wifi_icon}</span>"
+ ethernet_label_alt: "<span>{wifi_icon}</span> {ip_addr}"
+ ethernet_icon: "\ue839"
+ wifi_icons: ["\uec3c", "\uec3d", "\uec3e", "\uec3e", "\uec3f"]
+ callbacks:
+ on_left: "toggle_menu"
+ on_middle: "exec cmd.exe /c start ms-settings:network"
+ on_right: "toggle_label"
+ menu_config:
+ blur: true
+ round_corners: true
+ round_corners_type: "normal"
+ border_color: "system"
+ alignment: "center"
+ direction: "down"
+ offset_top: 6
+ offset_left: 0
+
+ bluetooth:
+ type: "yasb.bluetooth.BluetoothWidget"
+ options:
+ label: "<span>{icon}</span>"
+ label_alt: "{device_name}"
+ label_no_device: "Not Connected"
+ label_device_separator: ", "
+ max_length: 15
+ max_length_ellipsis: "..."
+ icons:
+ bluetooth_on: "\uec41"
+ bluetooth_off: "\ueb90"
+ bluetooth_connected: "\ue702"
+ callbacks:
+ on_left: "exec cmd.exe /c start ms-settings:bluetooth"
+ on_middle: "do_nothing"
+ on_right: "toggle_label"
+
+ battery:
+ type: "yasb.battery.BatteryWidget"
+ options:
+ label: "<span>{icon}</span> {percent}%"
+ label_alt: "<span>{icon}</span> {percent}% ({time_remaining})"
+ update_interval: 5000
+ hide_unsupported: true
+ charging_options:
+ icon_format: "{charging_icon}"
+ blink_charging_icon: true
+ blink_interval: 800
+ status_thresholds:
+ critical: 10
+ low: 25
+ medium: 60
+ high: 90
+ full: 100
+ status_icons:
+ icon_charging: "\ue945"
+ icon_critical: "\ue851"
+ icon_low: "\ue853"
+ icon_medium: "\ue855"
+ icon_high: "\ue857"
+ icon_full: "\ue859"
+ callbacks:
+ on_left: "exec cmd /c start ms-settings:powersleep"
+ on_middle: "do_nothing"
+ on_right: "toggle_label"
+
+ power_menu:
+ type: "yasb.power_menu.PowerMenuWidget"
+ options:
+ label: "\ue7e8"
+ uptime: true
+ blur: false
+ blur_background: true
+ animation_duration: 300
+ button_row: 3
+ buttons:
+ lock: ["\uea75", "Lock"]
+ signout: ["\udb80\udf43", "Sign out"]
+ shutdown: ["\uf011", "Shut Down"]
+ restart: ["\uead2", "Restart"]
+ hibernate: ["\uf28e", "Hibernate"]
+ cancel: ["\udb81\udf3a", "Cancel"]
diff --git a/windows/yasb/styles.css b/windows/yasb/styles.css
@@ -1,2061 +1,2081 @@
-/* ---- YASB Panel Style ---- */
-:root {
- /* Fonts */
- --font-primary: "Segoe UI", system-ui;
- --font-text: "Segoe UI Variable Text", "Segoe UI", system-ui;
- --font-mono: "MesloLGS NF";
- --font-icon: "Segoe Fluent Icons", "MesloLGS NF";
- --font-icon-2: "MesloLGS NF", "Segoe UI";
-
- /* Typography */
- --font-size-caption: 10px;
- --font-size-body: 12px;
- --font-size-body-strong: 14px;
- --font-size-subtitle: 16px;
- --font-size-title: 20px;
- --font-size-icon-large: 32px;
- --font-size-display: 48px;
-
- --font-weight-regular: 400;
- --font-weight-semibold: 500;
- --font-weight-bold: 700;
-
- /* Spacing */
- --space-2: 2px;
- --space-4: 4px;
- --space-6: 6px;
- --space-8: 8px;
- --space-12: 12px;
- --space-16: 16px;
- --space-20: 20px;
- --space-24: 24px;
- --space-32: 32px;
-
- /* Dimensions */
- --width-menu-sm: 160px;
- --width-menu-md: 280px;
- --width-menu-lg: 380px;
- --size-icon-btn: 28px;
- --size-app-icon: 32px;
- --height-item-md: 36px;
- --height-item-lg: 80px;
-
- /* Border Radius */
- --radius-none: 0;
- --radius-small: 4px;
- --radius-medium: 6px;
- --radius-large: 8px;
- --radius-circle: 32px;
-
- /* -- Light Theme -- */
- --color-background-base: rgba(243, 243, 243, 0.9);
- --color-background-layer: rgba(249, 249, 249, 0.8);
- --color-background-elevated: rgba(252, 252, 252, 0.9);
- --color-background-elevated-x2: rgba(255, 255, 255, 0.95);
-
- --color-taskbar: rgba(243, 243, 243, 0.85);
- --color-widget-container: rgba(212, 212, 212, 0.7);
-
- /* Surface Colors */
- --color-surface-default: rgba(0, 0, 0, 0.0373);
- --color-surface-secondary: rgba(0, 0, 0, 0.0241);
- --color-surface-tertiary: rgba(0, 0, 0, 0.0186);
- --color-surface-disabled: rgba(0, 0, 0, 0.0241);
-
- /* Text Colors */
- --color-text-primary: rgba(0, 0, 0, 0.9);
- --color-text-secondary: rgba(0, 0, 0, 0.6063);
- --color-text-tertiary: rgba(0, 0, 0, 0.4458);
- --color-text-disabled: rgba(0, 0, 0, 0.3614);
-
- /* Accent Colors */
- --color-accent-default: #0078d4;
- --color-accent-secondary: #005a9e;
- --color-accent-tertiary: rgba(0, 120, 212, 0.4);
- --color-accent-disabled: rgba(0, 0, 0, 0.2);
-
- /* Semantic Colors */
- --color-success: #107c10;
- --color-warning: #ffe600c0;
- --color-error: #c42b1c;
- --color-info: #0078d4;
-
- /* Component Colors */
- --color-traffic-download: #1a7c0d;
- --color-traffic-upload: #c41022;
- --color-success-bg: rgba(16, 124, 16, 0.15);
- --color-error-bg: rgba(196, 43, 28, 0.15);
-
- /* Interactive States */
- --color-subtle-fill-rest: rgba(0, 0, 0, 0.0373);
- --color-subtle-fill-hover: rgba(0, 0, 0, 0.0578);
- --color-subtle-fill-pressed: rgba(0, 0, 0, 0.0241);
- --color-subtle-fill-disabled: transparent;
-
- /* Stroke/Border Colors */
- --color-stroke-surface: rgba(0, 0, 0, 0.0578);
- --color-stroke-control-default: rgba(0, 0, 0, 0.0578);
- --color-stroke-divider: rgba(0, 0, 0, 0.0578);
- --color-stroke-focus: rgba(0, 0, 0, 0.0893);
-
- /* -- Dark Theme -- */
- --color-dark-background-base: rgba(8, 8, 8, 0.6);
- --color-dark-background-layer: rgba(44, 44, 44, 0.5);
- --color-dark-background-elevated: rgba(22, 22, 22, 0.25);
- --color-dark-background-elevated-x2: rgba(22, 22, 22, 0.8);
-
- --color-dark-taskbar: rgba(43, 44, 45, 0.85);
- --color-dark-widget-container: rgba(60, 60, 60, 0.7);
-
- /* Surface Colors */
- --color-dark-surface-default: rgba(255, 255, 255, 0.0605);
- --color-dark-surface-secondary: rgba(255, 255, 255, 0.0419);
- --color-dark-surface-tertiary: rgba(255, 255, 255, 0.0326);
- --color-dark-surface-disabled: rgba(255, 255, 255, 0.0419);
-
- /* Text Colors */
- --color-dark-text-primary: rgba(255, 255, 255, 1);
- --color-dark-text-secondary: rgba(255, 255, 255, 0.786);
- --color-dark-text-tertiary: rgba(255, 255, 255, 0.544);
- --color-dark-text-disabled: rgba(255, 255, 255, 0.362);
-
- /* Accent Colors */
- --color-dark-accent-default: #60cdff;
- --color-dark-accent-secondary: #0078d4;
- --color-dark-accent-tertiary: rgba(96, 205, 255, 0.5);
- --color-dark-accent-disabled: rgba(255, 255, 255, 0.1581);
-
- /* Semantic Colors */
- --color-dark-success: #6ccb5f;
- --color-dark-warning: #fce100;
- --color-dark-error: #ff99a4;
- --color-dark-info: #60cdff;
-
- /* Component Colors */
- --color-dark-traffic-download: var(--color-dark-success);
- --color-dark-traffic-upload: var(--color-dark-error);
- --color-dark-success-bg: rgba(108, 203, 95, 0.2);
- --color-dark-error-bg: rgba(255, 153, 164, 0.2);
-
- /* Interactive States */
- --color-dark-subtle-fill-rest: rgba(255, 255, 255, 0.0605);
- --color-dark-subtle-fill-hover: rgba(255, 255, 255, 0.0837);
- --color-dark-subtle-fill-pressed: rgba(255, 255, 255, 0.0512);
- --color-dark-subtle-fill-disabled: transparent;
-
- /* Stroke/Border Colors */
- --color-dark-stroke-surface: rgba(255, 255, 255, 0.0698);
- --color-dark-stroke-control-default: rgba(255, 255, 255, 0.0838);
- --color-dark-stroke-divider: rgba(255, 255, 255, 0.0838);
- --color-dark-stroke-focus: rgba(255, 255, 255, 0.1047);
-}
-
-/* ----------------------------------------------------------------------------
- Global Reset
- ---------------------------------------------------------------------------- */
-* {
- font-size: var(--font-size-body);
- color: var(--color-text-primary);
- font-weight: var(--font-weight-regular);
- font-family: var(--font-primary);
- margin: 0;
- padding: 0;
-}
-
-.dark * {
- color: var(--color-dark-text-primary);
-}
-
-/* ----------------------------------------------------------------------------
- Layout
- ---------------------------------------------------------------------------- */
-.yasb-panel {
- padding: 0 var(--space-4);
- margin: 0;
- background-color: var(--color-background-base);
- border-bottom: 1px solid var(--color-stroke-control-default);
-}
-
-.yasb-panel.dark {
- background-color: var(--color-dark-background-base);
- border-bottom: 1px solid var(--color-dark-stroke-control-default);
-}
-
-/* Label */
-.widget {
- padding: 0 var(--space-2);
- margin: 0;
-}
-
-.widget .label {
- padding: 0 var(--space-4);
- font-size: var(--font-size-body);
- color: var(--color-text-secondary);
-}
-
-*.dark .widget .label {
- color: var(--color-dark-text-secondary);
-}
-
-.widget .label.alt {
- padding: 0 var(--space-4);
-}
-
-.widget .label:hover {
- color: var(--color-text-primary);
-}
-
-*.dark .widget .label:hover {
- color: var(--color-dark-text-primary);
-}
-
-/* Icon */
-.widget .icon {
- padding-top: 1px;
- font-family: var(--font-icon);
- font-size: var(--font-size-body);
- color: var(--color-text-secondary);
- margin-right: var(--space-4);
-}
-
-*.dark .widget .icon {
- color: var(--color-dark-text-secondary);
-}
-
-.widget:hover .icon {
- color: var(--color-text-primary);
-}
-
-*.dark .widget:hover .icon {
- color: var(--color-dark-text-primary);
-}
-
-/* Tooltip */
-.tooltip {
- background-color: var(--color-background-elevated-x2);
- border: 1px solid var(--color-stroke-surface);
- border-radius: var(--radius-medium);
- padding: var(--space-8) var(--space-12);
- margin-top: var(--space-12);
- font-size: var(--font-size-body);
- font-family: var(--font-primary);
- color: var(--color-text-primary);
- font-weight: var(--font-weight-regular);
-}
-
-*.dark .tooltip {
- background-color: var(--color-dark-background-elevated-x2);
- border: 1px solid var(--color-dark-stroke-surface);
- color: var(--color-dark-text-primary);
-}
-
-/* ----------------------------------------------------------------------------
- Context Menu
- ---------------------------------------------------------------------------- */
-.context-menu,
-.context-menu .menu-checkbox {
- background-color: var(--color-dark-background-elevated);
- border: 1px solid var(--color-dark-stroke-surface);
- border-radius: var(--radius-medium);
- padding: var(--space-4) 0;
- font-family: var(--font-primary);
- font-size: var(--font-size-body);
- color: var(--color-dark-text-primary);
-}
-
-.context-menu::right-arrow {
- width: var(--space-8);
- height: var(--space-8);
- padding-right: var(--space-24);
-}
-
-.context-menu::item,
-.context-menu .menu-checkbox {
- background-color: transparent;
- padding: var(--space-4) var(--space-8);
- margin: var(--space-2) var(--space-4);
- border-radius: var(--radius-small);
- border: 0;
- min-width: var(--width-menu-sm);
-}
-
-.context-menu::item:selected,
-.context-menu .menu-checkbox:hover {
- background-color: var(--color-dark-subtle-fill-hover) !important;
- color: var(--color-dark-text-primary) !important;
-}
-
-.context-menu::separator {
- height: 1px;
- background-color: var(--color-dark-stroke-divider) !important;
- margin: var(--space-4) var(--space-8);
-}
-
-.context-menu::item:disabled {
- color: var(--color-dark-text-disabled) !important;
- background-color: transparent;
-}
-
-.context-menu .menu-checkbox .checkbox {
- border: none;
- padding: var(--space-4) var(--space-12);
- font-size: var(--font-size-body);
- margin: 0;
- color: var(--color-dark-text-primary) !important;
- font-family: var(--font-primary);
-}
-
-.context-menu .submenu::item:disabled {
- margin: 0;
- padding-left: var(--space-16);
-}
-
-.context-menu .menu-checkbox .checkbox:unchecked {
- color: var(--color-dark-text-tertiary) !important;
-}
-
-.context-menu .menu-checkbox .checkbox::indicator {
- width: var(--space-12);
- height: var(--space-12);
- margin-left: 0;
- margin-right: var(--space-8);
-}
-
-.context-menu .menu-checkbox .checkbox::indicator:unchecked {
- background-color: var(--color-dark-surface-secondary) !important;
- border-radius: var(--radius-small);
-}
-
-.context-menu .menu-checkbox .checkbox::indicator:checked {
- background-color: var(--color-dark-accent-secondary) !important;
- border-radius: var(--radius-small);
-}
-
-.context-menu .menu-checkbox .checkbox:focus {
- outline: none;
-}
-
-/* ----------------------------------------------------------------------------
- Common Widget Container
- ---------------------------------------------------------------------------- */
-.widget-container {
- padding: 1px var(--space-4);
- margin: var(--space-2) 0;
- background-color: var(--color-background-elevated);
- border-radius: var(--radius-medium);
- border: 1px solid var(--color-stroke-control-default);
-}
-
-*.dark .widget-container {
- background-color: var(--color-dark-background-elevated);
- border: 1px solid var(--color-dark-stroke-control-default);
-}
-
-.widget-container:hover {
- background-color: var(--color-widget-container);
- border-color: var(--color-stroke-focus);
-}
-
-*.dark .widget-container:hover {
- background-color: var(--color-dark-widget-container);
- border-color: var(--color-dark-stroke-focus);
-}
-
-/* ----------------------------------------------------------------------------
- Task View Widget
- ---------------------------------------------------------------------------- */
-.task-view-widget .widget-container {
- background-color: transparent;
- border: 0;
-}
-
-.task-view-widget .widget-container:hover {
- background-color: transparent;
-}
-
-.task-view-widget .icon {
- font-family: var(--font-icon-2);
- font-size: var(--font-size-subtitle);
- color: var(--color-text-secondary);
-}
-
-*.dark .task-view-widget .icon {
- font-family: var(--font-icon-2);
- font-size: var(--font-size-subtitle);
- color: var(--color-dark-text-secondary);
-}
-
-.task-view-widget .icon:hover {
- color: var(--color-accent-default);
-}
-
-*.dark .task-view-widget .icon:hover {
- color: var(--color-dark-accent-default);
-}
-
-/* ----------------------------------------------------------------------------
- Home Widget
- ---------------------------------------------------------------------------- */
-.home-widget .widget-container {
- background-color: transparent;
- border: 0;
-}
-
-.home-widget .widget-container:hover {
- background-color: transparent;
-}
-
-.home-widget .icon {
- font-family: var(--font-icon-2);
- font-size: var(--font-size-subtitle);
- color: var(--color-text-secondary);
-}
-
-*.dark .home-widget .icon {
- color: var(--color-dark-text-secondary);
-}
-
-.home-widget .icon:hover {
- color: var(--color-accent-default);
-}
-
-*.dark .home-widget .icon:hover {
- color: var(--color-dark-accent-default);
-}
-
-.home-menu {
- background-color: var(--color-background-elevated);
- border: 1px solid var(--color-stroke-surface);
- border-radius: var(--radius-medium);
- padding: var(--space-8) 0;
- font-family: var(--font-primary);
- font-size: var(--font-size-body);
- color: var(--color-text-primary);
-}
-
-*.dark .home-menu {
- background-color: var(--color-dark-background-elevated);
- border: 1px solid var(--color-dark-stroke-surface);
- color: var(--color-dark-text-primary);
-}
-
-.home-menu .menu-item {
- background-color: transparent;
- padding: var(--space-8) var(--space-12);
- margin: var(--space-2) var(--space-8);
- border-radius: var(--radius-small);
- font-family: var(--font-icon-2);
- border: 0;
- min-width: 180px;
-}
-
-.home-menu .menu-item:hover {
- background-color: var(--color-subtle-fill-hover);
- color: var(--color-text-primary);
-}
-
-*.dark .home-menu .menu-item:hover {
- background-color: var(--color-dark-subtle-fill-hover);
- color: var(--color-dark-text-primary);
-}
-
-.home-menu .separator {
- height: 1px;
- min-height: 1px;
- max-height: 1px;
- background-color: var(--color-stroke-divider);
- margin: var(--space-4) var(--space-8);
-}
-
-*.dark .home-menu .separator {
- background-color: var(--color-dark-stroke-divider);
-}
-
-/* ----------------------------------------------------------------------------
- Windows Desktops
- ---------------------------------------------------------------------------- */
-.windows-desktops .ws-btn {
- color: var(--color-text-tertiary);
- background-color: transparent;
- border: none;
- font-size: var(--font-size-body-strong);
- padding-left: unset;
- padding: 1px 3px;
- margin: -1px 0 0 0;
- border-radius: var(--radius-small);
- min-width: var(--space-16);
-}
-
-.windows-desktops .ws-btn.button-1 {
- padding-left: -2px;
-}
-
-*.dark .windows-desktops .ws-btn {
- color: var(--color-dark-text-tertiary);
-}
-
-.windows-desktops .ws-btn:hover {
- color: var(--color-text-secondary);
-}
-
-*.dark .windows-desktops .ws-btn:hover {
- color: var(--color-dark-text-secondary);
-}
-
-.windows-desktops .ws-btn.active {
- color: var(--color-accent-default);
- font-weight: var(--font-weight-semibold);
-}
-
-*.dark .windows-desktops .ws-btn.active {
- color: var(--color-dark-accent-default);
-}
-
-.windows-desktops .context-menu {
- background-color: var(--color-background-elevated);
- border: 1px solid var(--color-stroke-surface);
- border-radius: var(--radius-medium);
- padding: var(--space-4);
-}
-
-*.dark .windows-desktops .context-menu {
- background-color: var(--color-dark-background-elevated);
- border: 1px solid var(--color-dark-stroke-surface);
-}
-
-.windows-desktops .context-menu .menu-item {
- padding: var(--space-8) var(--space-16);
- border-radius: var(--radius-small);
- color: var(--color-text-secondary);
-}
-
-*.dark .windows-desktops .context-menu .menu-item {
- color: var(--color-dark-text-secondary);
-}
-
-.windows-desktops .context-menu .menu-item:hover {
- background-color: var(--color-subtle-fill-hover);
- color: var(--color-text-primary);
-}
-
-*.dark .windows-desktops .context-menu .menu-item:hover {
- background-color: var(--color-dark-subtle-fill-hover);
- color: var(--color-dark-text-primary);
-}
-
-.windows-desktops .context-menu .separator {
- height: 1px;
- background-color: var(--color-stroke-divider);
- margin: var(--space-4) 0;
-}
-
-*.dark .windows-desktops .context-menu .separator {
- background-color: var(--color-dark-stroke-divider);
-}
-
-/* Qt-specific Dialog Styles */
-.windows-desktops .rename-dialog {
- border: 1px solid var(--color-stroke-surface);
- border-radius: var(--radius-large);
-}
-
-*.dark .windows-desktops .rename-dialog {
- border: 1px solid var(--color-stroke-surface);
-}
-
-.windows-desktops .rename-dialog QPushButton {
- background-color: var(--color-accent-default);
- color: var(--color-background-base);
- border: none;
- padding: var(--space-8) var(--space-16);
- border-radius: var(--radius-small);
- font-weight: var(--font-weight-semibold);
-}
-
-*.dark .windows-desktops .rename-dialog QPushButton {
- background-color: var(--color-dark-accent-default);
- color: var(--color-dark-background-base);
-}
-
-.windows-desktops .rename-dialog QPushButton:hover {
- background-color: var(--color-accent-secondary);
-}
-
-*.dark .windows-desktops .rename-dialog QPushButton:hover {
- background-color: var(--color-dark-accent-secondary);
-}
-
-.windows-desktops .rename-dialog QLabel {
- color: var(--color-text-primary);
- font-size: var(--font-size-body);
-}
-
-*.dark .windows-desktops .rename-dialog QLabel {
- color: var(--color-dark-text-primary);
-}
-
-.windows-desktops .rename-dialog QLineEdit {
- background-color: var(--color-surface-secondary);
- border: 1px solid var(--color-stroke-control-default);
- border-radius: var(--radius-small);
- padding: var(--space-8);
- color: var(--color-text-primary);
- font-family: var(--font-text);
-}
-
-*.dark .windows-desktops .rename-dialog QLineEdit {
- background-color: var(--color-dark-surface-secondary);
- border: 1px solid var(--color-dark-stroke-control-default);
- color: var(--color-dark-text-primary);
-}
-
-.windows-desktops .rename-dialog QLineEdit:focus {
- border-color: var(--color-accent-default);
- outline: none;
-}
-
-*.dark .windows-desktops .rename-dialog QLineEdit:focus {
- border-color: var(--color-dark-accent-default);
-}
-
-/* ----------------------------------------------------------------------------
- Active Window Widget
- ---------------------------------------------------------------------------- */
-.active-window-widget .widget-container .icon {
- font-family: var(--font-icon);
- font-size: var(--font-size-body);
- padding-left: var(--space-6);
-}
-
-.active-window-widget .icon {
- padding: 0;
-}
-
-.active-window-widget .widget-container .label {
- color: var(--color-text-secondary);
- font-family: var(--font-mono);
- font-weight: var(--font-weight-semibold);
-}
-
-*.dark .active-window-widget .widget-container .label {
- color: var(--color-dark-text-secondary);
-}
-
-/* ----------------------------------------------------------------------------
- Taskbar Widget
- ---------------------------------------------------------------------------- */
-.taskbar-widget .app-container {
- padding: 0 var(--space-4);
- margin: 0 var(--space-2);
- border-radius: var(--radius-small);
-}
-
-.taskbar-widget .app-container:hover {
- background-color: var(--color-subtle-fill-hover);
-}
-
-*.dark .taskbar-widget .app-container:hover {
- background-color: var(--color-dark-subtle-fill-hover);
-}
-
-.taskbar-widget .app-container.foreground {
- background-color: var(--color-subtle-fill-rest);
- border-left: 2px solid var(--color-accent-default);
-}
-
-*.dark .taskbar-widget .app-container.foreground {
- background-color: var(--color-dark-subtle-fill-rest);
- border-left: 2px solid var(--color-dark-accent-default);
-}
-
-.taskbar-widget .app-container .app-title {
- padding-left: var(--space-4);
- color: var(--color-text-secondary);
- font-size: var(--font-size-body);
-}
-
-*.dark .taskbar-widget .app-container .app-title {
- color: var(--color-dark-text-secondary);
-}
-
-.taskbar-widget .app-container.foreground .app-title {
- color: var(--color-text-primary);
- font-weight: var(--font-weight-semibold);
-}
-
-*.dark .taskbar-widget .app-container.foreground .app-title {
- color: var(--color-dark-text-primary);
-}
-
-.taskbar-preview {
- background-color: var(--color-taskbar);
- border: 1px solid var(--color-stroke-surface);
- border-radius: var(--radius-medium);
- padding: var(--space-8);
-}
-
-*.dark .taskbar-preview {
- background-color: var(--color-dark-taskbar);
- border: 1px solid var(--color-dark-stroke-surface);
-}
-
-.taskbar-preview .header {
- padding-bottom: var(--space-8);
- padding-top: var(--space-8);
-}
-
-.taskbar-preview .header .title {
- color: var(--color-text-primary);
- font-weight: var(--font-weight-bold);
- font-size: var(--font-size-body);
-}
-
-*.dark .taskbar-preview .header .title {
- color: var(--color-dark-text-primary);
-}
-
-/* ----------------------------------------------------------------------------
- Apps Widget
- ---------------------------------------------------------------------------- */
-.apps-widget .widget-container {
- padding: 0 var(--space-4);
-}
-
-.apps-widget .label {
- font-size: var(--font-size-body);
- color: var(--color-text-secondary);
-}
-
-*.dark .apps-widget .label {
- color: var(--color-dark-text-secondary);
-}
-
-.apps-widget .label:hover {
- color: var(--color-accent-default);
-}
-
-*.dark .apps-widget .label:hover {
- color: var(--color-dark-accent-default);
-}
-
-/* ----------------------------------------------------------------------------
- Media Widget
- ---------------------------------------------------------------------------- */
-.media-widget .btn {
- font-size: var(--font-size-body);
- color: var(--color-text-secondary);
- padding: var(--space-2) var(--space-4);
- margin: 0 var(--space-2);
- background-color: transparent;
- border: none;
- border-radius: var(--radius-small);
-}
-
-*.dark .media-widget .btn {
- color: var(--color-dark-text-secondary);
-}
-
-.media-widget .btn:hover {
- color: var(--color-text-primary);
- background-color: var(--color-subtle-fill-hover);
-}
-
-*.dark .media-widget .btn:hover {
- color: var(--color-dark-text-primary);
- background-color: var(--color-dark-subtle-fill-hover);
-}
-
-.media-widget .btn:active {
- background-color: var(--color-subtle-fill-pressed);
-}
-
-*.dark .media-widget .btn:active {
- background-color: var(--color-dark-subtle-fill-pressed);
-}
-
-.media-menu {
- min-width: var(--width-menu-lg);
- max-width: var(--width-menu-lg);
- border-radius: var(--radius-medium);
- padding: var(--space-12);
- background-color: var(--color-background-elevated);
-}
-
-*.dark .media-menu {
- background-color: var(--color-dark-background-elevated);
-}
-
-.media-menu .title,
-.media-menu .artist,
-.media-menu .source {
- font-family: var(--font-text);
- margin-left: var(--space-12);
-}
-
-.media-menu .title {
- font-size: var(--font-size-body-strong);
- font-weight: var(--font-weight-semibold);
- color: var(--color-text-primary);
-}
-
-*.dark .media-menu .title {
- color: var(--color-dark-text-primary);
-}
-
-.media-menu .artist {
- font-size: var(--font-size-body);
- color: var(--color-text-secondary);
- margin-top: var(--space-2);
- margin-bottom: var(--space-4);
-}
-
-*.dark .media-menu .artist {
- color: var(--color-dark-text-secondary);
-}
-
-.media-menu .source {
- font-size: var(--font-size-caption);
- color: var(--color-text-tertiary);
-}
-
-*.dark .media-menu .source {
- color: var(--color-dark-text-tertiary);
-}
-
-.media-menu .btn {
- font-family: var(--font-icon);
- font-size: var(--font-size-subtitle);
- margin: var(--space-12) var(--space-8) 0;
- min-width: var(--size-icon-btn);
- max-width: var(--size-icon-btn);
- min-height: var(--size-icon-btn);
- max-height: var(--size-icon-btn);
- border-radius: var(--radius-large);
- color: var(--color-text-secondary);
- background-color: var(--color-subtle-fill-rest);
- border: 1px solid var(--color-stroke-control-default);
-}
-
-*.dark .media-menu .btn {
- color: var(--color-dark-text-secondary);
- background-color: var(--color-dark-subtle-fill-rest);
- border: 1px solid var(--color-dark-stroke-control-default);
-}
-
-.media-menu .btn:hover {
- background-color: var(--color-subtle-fill-hover);
- color: var(--color-text-primary);
-}
-
-*.dark .media-menu .btn:hover {
- background-color: var(--color-dark-subtle-fill-hover);
- color: var(--color-dark-text-primary);
-}
-
-.media-menu .btn.prev {
- margin-left: var(--space-16);
-}
-
-.media-menu .btn.play {
- background-color: var(--color-accent-default);
- color: var(--color-background-base);
- border-color: transparent;
-}
-
-*.dark .media-menu .btn.play {
- background-color: var(--color-dark-accent-default);
- color: var(--color-dark-background-base);
-}
-
-.media-menu .btn.play:hover {
- background-color: var(--color-accent-secondary);
-}
-
-*.dark .media-menu .btn.play:hover {
- background-color: var(--color-dark-accent-secondary);
-}
-
-.media-menu .btn.disabled,
-.media-menu .btn.disabled:hover {
- color: var(--color-text-disabled);
- background-color: var(--color-surface-disabled);
- cursor: not-allowed;
-}
-
-*.dark .media-menu .btn.disabled,
-*.dark .media-menu .btn.disabled:hover {
- color: var(--color-dark-text-disabled);
- background-color: var(--color-dark-surface-disabled);
-}
-
-.media-menu .playback-time {
- font-size: var(--font-size-caption);
- font-family: var(--font-mono);
- color: var(--color-text-tertiary);
- margin-top: var(--space-16);
- min-width: 100px;
-}
-
-*.dark .media-menu .playback-time {
- color: var(--color-dark-text-tertiary);
-}
-
-.media-menu .progress-slider {
- height: var(--space-16);
- margin: var(--space-4);
- border-radius: var(--radius-small);
-}
-
-.media-menu .progress-slider::groove {
- background-color: var(--color-surface-tertiary);
- height: var(--space-4);
- border-radius: var(--radius-small);
-}
-
-*.dark .media-menu .progress-slider::groove {
- background-color: var(--color-dark-surface-tertiary);
-}
-
-.media-menu .progress-slider::groove:hover {
- height: var(--space-6);
- background-color: var(--color-surface-secondary);
-}
-
-*.dark .media-menu .progress-slider::groove:hover {
- background-color: var(--color-dark-surface-secondary);
-}
-
-.media-menu .progress-slider::sub-page {
- background-color: var(--color-accent-default);
- border-radius: var(--radius-small);
- height: var(--space-4);
-}
-
-*.dark .media-menu .progress-slider::sub-page {
- background-color: var(--color-dark-accent-default);
-}
-
-/* ----------------------------------------------------------------------------
- CPU Widget
- ---------------------------------------------------------------------------- */
-.cpu-widget {
- cursor: crosshair;
-}
-
-.cpu-widget .widget-container .icon {
- padding-right: var(--space-4);
-}
-
-.cpu-widget .widget-container .label {
- color: var(--color-text-secondary);
- font-family: var(--font-mono);
- font-weight: var(--font-weight-semibold);
-}
-
-*.dark .cpu-widget .widget-container .label {
- color: var(--color-dark-text-secondary);
-}
-
-/* ----------------------------------------------------------------------------
- GPU Widget
- ---------------------------------------------------------------------------- */
-.gpu-widget .widget-container .icon {
- padding-right: var(--space-4);
-}
-
-.gpu-widget .widget-container .label {
- color: var(--color-text-secondary);
- font-family: var(--font-mono);
- font-weight: var(--font-weight-semibold);
-}
-
-*.dark .gpu-widget .widget-container .label {
- color: var(--color-dark-text-secondary);
-}
-
-/* ----------------------------------------------------------------------------
- Memory Widget
- ---------------------------------------------------------------------------- */
-.memory-widget .widget-container .icon {
- padding-right: var(--space-4);
-}
-
-.memory-widget .widget-container .label {
- color: var(--color-text-secondary);
- font-family: var(--font-mono);
- font-weight: var(--font-weight-semibold);
-}
-
-*.dark .memory-widget .widget-container .label {
- color: var(--color-dark-text-secondary);
-}
-
-.memory-widget .widget-container .label.status-low {
- color: var(--color-success);
-}
-*.dark .memory-widget .widget-container .label.status-low {
- color: var(--color-dark-success);
-}
-
-.memory-widget .widget-container .label.status-medium {
- color: var(--color-warning);
-}
-*.dark .memory-widget .widget-container .label.status-medium {
- color: var(--color-dark-warning);
-}
-
-.memory-widget .widget-container .label.status-high {
- color: var(--color-accent-default);
-}
-*.dark .memory-widget .widget-container .label.status-high {
- color: var(--color-dark-accent-default);
-}
-
-.memory-widget .widget-container .label.status-critical {
- color: var(--color-error);
-}
-*.dark .memory-widget .widget-container .label.status-critical {
- color: var(--color-dark-error);
-}
-
-.memory-widget .progress-circle {
- margin-right: var(--space-8);
-}
-
-/* ----------------------------------------------------------------------------
- Traffic Widget
- ---------------------------------------------------------------------------- */
-.traffic-widget {
- width: 200px;
- min-width: 200px;
- max-width: 200px;
-}
-
-.traffic-widget .download {
- color: var(--color-traffic-download);
- font-family: var(--font-mono);
- font-weight: var(--font-weight-semibold);
-}
-
-*.dark .traffic-widget .download {
- color: var(--color-dark-traffic-download);
-}
-
-.traffic-widget .upload {
- color: var(--color-traffic-upload);
- font-family: var(--font-mono);
- font-weight: var(--font-weight-semibold);
-}
-
-*.dark .traffic-widget .upload {
- color: var(--color-dark-traffic-upload);
-}
-
-.traffic-menu {
- background-color: var(--color-background-elevated);
- border: 1px solid var(--color-stroke-surface);
- border-radius: var(--radius-medium);
- min-width: var(--width-menu-md);
- padding: var(--space-12);
-}
-
-*.dark .traffic-menu {
- background-color: var(--color-dark-background-elevated);
- border: 1px solid var(--color-dark-stroke-surface);
-}
-
-.traffic-menu .header .title {
- padding: var(--space-12);
- font-size: var(--font-size-subtitle);
- font-weight: var(--font-weight-bold);
- color: var(--color-text-primary);
-}
-
-*.dark .traffic-menu .header .title {
- color: var(--color-dark-text-primary);
-}
-
-.traffic-menu .header .reset-button {
- font-size: var(--font-size-caption);
- padding: var(--space-4) var(--space-8);
- margin-right: var(--space-12);
- border-radius: var(--radius-medium);
- font-weight: var(--font-weight-semibold);
- background-color: transparent;
- border: 1px solid transparent;
- color: var(--color-text-secondary);
-}
-
-*.dark .traffic-menu .header .reset-button {
- color: var(--color-dark-text-secondary);
-}
-
-.traffic-menu .reset-button:hover {
- color: var(--color-text-primary);
- background-color: var(--color-subtle-fill-hover);
- border: 1px solid var(--color-stroke-control-default);
-}
-
-*.dark .traffic-menu .reset-button:hover {
- color: var(--color-dark-text-primary);
- background-color: var(--color-dark-subtle-fill-hover);
- border: 1px solid var(--color-dark-stroke-control-default);
-}
-
-/* Speed column styles */
-.traffic-menu .download-speed,
-.traffic-menu .upload-speed {
- background-color: transparent;
- padding: var(--space-8);
- margin: var(--space-12) var(--space-8) 0;
-}
-
-.traffic-menu .speed-separator {
- max-width: 1px;
- background-color: var(--color-stroke-divider);
- margin: var(--space-24) 0 var(--space-12) 0;
-}
-
-*.dark .traffic-menu .speed-separator {
- background-color: var(--color-dark-stroke-divider);
-}
-
-.traffic-menu .upload-speed-value,
-.traffic-menu .download-speed-value {
- font-size: var(--font-size-title);
- font-weight: var(--font-weight-bold);
- color: var(--color-text-primary);
-}
-
-*.dark .traffic-menu .upload-speed-value,
-*.dark .traffic-menu .download-speed-value {
- color: var(--color-dark-text-primary);
-}
-
-.traffic-menu .upload-speed-unit,
-.traffic-menu .download-speed-unit {
- font-size: var(--font-size-body);
- font-weight: var(--font-weight-semibold);
- padding-top: var(--space-4);
- color: var(--color-text-secondary);
-}
-
-*.dark .traffic-menu .upload-speed-unit,
-*.dark .traffic-menu .download-speed-unit {
- color: var(--color-dark-text-secondary);
-}
-
-.traffic-menu .upload-speed-placeholder,
-.traffic-menu .download-speed-placeholder {
- color: var(--color-text-tertiary);
- font-size: var(--font-size-caption);
- padding-bottom: var(--space-12);
-}
-
-*.dark .traffic-menu .upload-speed-placeholder,
-*.dark .traffic-menu .download-speed-placeholder {
- color: var(--color-dark-text-tertiary);
-}
-
-/* Section and data styles */
-.traffic-menu .section-title {
- font-size: var(--font-size-caption);
- font-weight: var(--font-weight-semibold);
- color: var(--color-text-primary);
- margin-bottom: var(--space-4);
-}
-
-*.dark .traffic-menu .section-title {
- color: var(--color-dark-text-primary);
-}
-
-.traffic-menu .session-section,
-.traffic-menu .today-section,
-.traffic-menu .alltime-section {
- margin: var(--space-8);
- padding: 0 var(--space-8) var(--space-8);
- background-color: transparent;
-}
-
-.traffic-menu .data-text {
- font-size: var(--font-size-body);
- color: var(--color-text-secondary);
- padding: var(--space-2);
-}
-
-*.dark .traffic-menu .data-text {
- color: var(--color-dark-text-secondary);
-}
-
-.traffic-menu .data-value {
- font-weight: var(--font-weight-semibold);
- font-size: var(--font-size-body);
- padding: var(--space-2);
- color: var(--color-text-primary);
-}
-
-*.dark .traffic-menu .data-value {
- color: var(--color-dark-text-primary);
-}
-
-/* Interface and Internet info styles */
-.traffic-menu .interface-info {
- margin-top: var(--space-8);
- border-top: 1px solid var(--color-stroke-divider);
- padding: var(--space-4) 0;
- font-size: var(--font-size-caption);
- color: var(--color-text-secondary);
- font-family: var(--font-text);
-}
-
-*.dark .traffic-menu .interface-info {
- border-top: 1px solid var(--color-dark-stroke-divider);
- color: var(--color-dark-text-secondary);
-}
-
-.traffic-menu .internet-info {
- font-size: var(--font-size-caption);
- color: var(--color-text-secondary);
- padding: var(--space-4) 0;
- font-family: var(--font-text);
-}
-
-*.dark .traffic-menu .internet-info {
- color: var(--color-dark-text-secondary);
-}
-
-.traffic-menu .internet-info.connected {
- background-color: var(--color-success-bg);
- color: var(--color-success);
- padding: var(--space-4) var(--space-8);
- border-radius: var(--radius-small);
-}
-
-*.dark .traffic-menu .internet-info.connected {
- background-color: var(--color-dark-success-bg);
- color: var(--color-dark-success);
-}
-
-.traffic-menu .internet-info.disconnected {
- background-color: var(--color-error-bg);
- color: var(--color-error);
- padding: var(--space-4) var(--space-8);
- border-radius: var(--radius-small);
-}
-
-*.dark .traffic-menu .internet-info.disconnected {
- background-color: var(--color-dark-error-bg);
- color: var(--color-dark-error);
-}
-
-/* ----------------------------------------------------------------------------
- Disk Widget
- ---------------------------------------------------------------------------- */
-.disk-widget .widget-container .icon {
- font-family: var(--font-icon-2);
- font-size: var(--font-size-body);
-}
-
-.disk-widget .widget-container .label {
- color: var(--color-text-secondary);
- font-family: var(--font-mono);
- font-weight: var(--font-weight-semibold);
-}
-
-*.dark .disk-widget .widget-container .label {
- color: var(--color-dark-text-secondary);
-}
-
-.disk-group {
- background-color: var(--color-background-elevated);
- border: 1px solid var(--color-stroke-surface);
- border-radius: var(--radius-medium);
- padding: var(--space-8);
-}
-
-*.dark .disk-group {
- background-color: var(--color-dark-background-elevated);
- border: 1px solid var(--color-dark-stroke-surface);
-}
-
-.disk-group-row {
- min-width: 250px;
- max-width: 300px;
- min-height: var(--height-item-md);
- max-height: var(--height-item-md);
- margin: 0;
- padding: var(--space-12);
- border-radius: var(--radius-medium);
- border: 1px solid transparent;
-}
-
-.disk-group-row:hover {
- background-color: var(--color-subtle-fill-hover);
- border: 1px solid var(--color-stroke-control-default);
-}
-
-*.dark .disk-group-row:hover {
- background-color: var(--color-dark-subtle-fill-hover);
- border: 1px solid var(--color-dark-stroke-control-default);
-}
-
-.disk-group-label-bar {
- margin-bottom: var(--space-8);
- max-height: var(--space-6);
- border: 0px solid transparent;
- background-color: var(--color-surface-secondary);
- border-radius: var(--radius-small);
-}
-
-*.dark .disk-group-label-bar {
- background-color: var(--color-dark-surface-secondary);
-}
-
-.disk-group-label-bar::chunk {
- background-color: var(--color-success);
- border-radius: var(--radius-small);
-}
-
-*.dark .disk-group-label-bar::chunk {
- background-color: var(--color-dark-success);
-}
-
-.disk-group-label {
- font-size: var(--font-size-body);
- color: var(--color-text-primary);
-}
-
-*.dark .disk-group-label {
- color: var(--color-dark-text-primary);
-}
-
-.disk-group-label-size {
- font-size: var(--font-size-body);
- color: var(--color-text-secondary);
-}
-
-*.dark .disk-group-label-size {
- color: var(--color-dark-text-secondary);
-}
-
-/* ----------------------------------------------------------------------------
- Microphone Widget
- ---------------------------------------------------------------------------- */
-.microphone-widget .icon {
- font-family: var(--font-icon);
- font-size: var(--font-size-body);
- padding-left: var(--space-4);
-}
-
-.microphone-widget .widget-container .label {
- color: var(--color-text-secondary);
- font-family: var(--font-mono);
- font-weight: var(--font-weight-semibold);
-}
-
-*.dark .microphone-widget .widget-container .label {
- color: var(--color-dark-text-secondary);
-}
-
-.microphone-menu {
- background-color: var(--color-background-elevated);
- border: 1px solid var(--color-stroke-surface);
- border-radius: var(--radius-medium);
- min-width: var(--width-menu-md);
- padding: var(--space-8);
-}
-
-*.dark .microphone-menu {
- background-color: var(--color-dark-background-elevated);
- border: 1px solid var(--color-dark-stroke-surface);
-}
-
-.microphone-menu .system-volume-container .volume-slider {
- border: none;
-}
-
-.microphone-menu .microphone-container .device {
- background-color: transparent;
- border: none;
- padding: var(--space-4) var(--space-8);
- margin: var(--space-2) 0;
- font-size: var(--font-size-body);
- color: var(--color-text-secondary);
- border-radius: var(--radius-small);
-}
-
-*.dark .microphone-menu .microphone-container .device {
- color: var(--color-dark-text-secondary);
-}
-
-.microphone-menu .microphone-container .device:hover {
- background-color: var(--color-subtle-fill-hover);
- color: var(--color-text-primary);
-}
-
-*.dark .microphone-menu .microphone-container .device:hover {
- background-color: var(--color-dark-subtle-fill-hover);
- color: var(--color-dark-text-primary);
-}
-
-.microphone-menu .microphone-container .device.selected {
- background-color: var(--color-subtle-fill-rest);
- color: var(--color-text-primary);
-}
-
-*.dark .microphone-menu .microphone-container .device.selected {
- background-color: var(--color-dark-subtle-fill-rest);
- color: var(--color-dark-text-primary);
-}
-
-/* ----------------------------------------------------------------------------
- Volume Widget
- ---------------------------------------------------------------------------- */
-.volume-widget .icon {
- font-family: var(--font-icon);
- font-size: var(--font-size-body);
- padding-left: var(--space-4);
-}
-
-.volume-widget .widget-container .label {
- color: var(--color-text-secondary);
- font-family: var(--font-mono);
- font-weight: var(--font-weight-semibold);
-}
-
-*.dark .volume-widget .widget-container .label {
- color: var(--color-dark-text-secondary);
-}
-
-.audio-menu {
- background-color: var(--color-background-elevated);
- border: 1px solid var(--color-stroke-surface);
- border-radius: var(--radius-medium);
- min-width: var(--width-menu-md);
- padding: var(--space-8);
-}
-
-*.dark .audio-menu {
- background-color: var(--color-dark-background-elevated);
- border: 1px solid var(--color-dark-stroke-surface);
-}
-
-.audio-menu .system-volume-container .volume-slider {
- border: none;
-}
-
-.audio-menu .audio-container .device {
- background-color: transparent;
- border: none;
- padding: var(--space-4) var(--space-8);
- margin: var(--space-2) 0;
- font-size: var(--font-size-body);
- color: var(--color-text-secondary);
- border-radius: var(--radius-small);
-}
-
-*.dark .audio-menu .audio-container .device {
- color: var(--color-dark-text-secondary);
-}
-
-.audio-menu .audio-container .device:hover {
- background-color: var(--color-subtle-fill-hover);
- color: var(--color-text-primary);
-}
-
-*.dark .audio-menu .audio-container .device:hover {
- background-color: var(--color-dark-subtle-fill-hover);
- color: var(--color-dark-text-primary);
-}
-
-.audio-menu .audio-container .device.selected {
- background-color: var(--color-subtle-fill-rest);
- color: var(--color-text-primary);
-}
-
-*.dark .audio-menu .audio-container .device.selected {
- background-color: var(--color-dark-subtle-fill-rest);
- color: var(--color-dark-text-primary);
-}
-
-.audio-menu .toggle-apps {
- background-color: transparent;
- border: none;
- padding: var(--space-4);
- margin: 0;
- min-height: var(--size-icon-btn);
- min-width: var(--size-icon-btn);
- border-radius: var(--radius-small);
-}
-
-.audio-menu .toggle-apps:hover {
- background-color: var(--color-subtle-fill-hover);
-}
-
-*.dark .audio-menu .toggle-apps:hover {
- background-color: var(--color-dark-subtle-fill-hover);
-}
-
-.audio-menu .toggle-apps.expanded {
- background-color: var(--color-subtle-fill-rest);
-}
-
-*.dark .audio-menu .toggle-apps.expanded {
- background-color: var(--color-dark-subtle-fill-rest);
-}
-
-.audio-menu .apps-container {
- padding: var(--space-8);
- margin-top: var(--space-12);
- border-radius: var(--radius-medium);
- background-color: var(--color-surface-secondary);
- border: 1px solid var(--color-stroke-divider);
-}
-
-*.dark .audio-menu .apps-container {
- background-color: var(--color-dark-surface-secondary);
- border: 1px solid var(--color-dark-stroke-divider);
-}
-
-.audio-menu .apps-container .app-volume .app-icon-container {
- min-width: var(--size-app-icon);
- min-height: var(--size-app-icon);
- max-width: var(--size-app-icon);
- max-height: var(--size-app-icon);
- border-radius: var(--radius-small);
- margin-right: var(--space-8);
-}
-
-.audio-menu .apps-container .app-volume .app-icon-container:hover {
- background-color: var(--color-subtle-fill-hover);
-}
-
-*.dark .audio-menu .apps-container .app-volume .app-icon-container:hover {
- background-color: var(--color-dark-subtle-fill-hover);
-}
-
-/* ----------------------------------------------------------------------------
- Brightness Widget
- ---------------------------------------------------------------------------- */
-.brightness-widget .widget-container .icon {
- font-family: var(--font-icon);
- padding-left: var(--space-4);
-}
-
-.Brightness-widget .widget-container .label {
- color: var(--color-text-secondary);
- font-family: var(--font-mono);
- font-weight: var(--font-weight-semibold);
-}
-
-*.dark .brightness-widget .widget-container .label {
- color: var(--color-dark-text-secondary);
-}
-
-.brightness-menu {
- background-color: var(--color-background-elevated);
- border: 1px solid var(--color-stroke-surface);
- border-radius: var(--radius-medium);
- min-width: var(--width-menu-md);
- padding: var(--space-8);
-}
-
-*.dark .brightness-menu {
- background-color: var(--color-dark-background-elevated);
- border: 1px solid var(--color-dark-stroke-surface);
-}
-
-.brightness-menu .slider-container {
- padding: var(--space-4);
-}
-
-/* ----------------------------------------------------------------------------
- WiFi Widget
- ---------------------------------------------------------------------------- */
-.wifi-widget .widget-container .icon {
- font-family: var(--font-icon);
- padding-left: var(--space-4);
-}
-
-.wifi-widget .widget-container .label {
- color: var(--color-text-secondary);
- font-family: var(--font-mono);
- font-weight: var(--font-weight-semibold);
-}
-
-*.dark .wifi-widget .widget-container .label {
- color: var(--color-dark-text-secondary);
-}
-
-/* Menu Container */
-.wifi-menu {
- font-family: var(--font-primary);
- background-color: var(--color-background-elevated);
- border: 1px solid var(--color-stroke-surface);
- border-radius: var(--radius-medium);
- min-height: 400px;
- max-height: 450px;
- min-width: var(--width-menu-lg);
- padding: var(--space-8);
-}
-
-*.dark .wifi-menu {
- background-color: var(--color-dark-background-elevated);
- border: 1px solid var(--color-dark-stroke-surface);
-}
-
-/* Header */
-.wifi-menu .header {
- font-size: var(--font-size-subtitle);
- font-weight: var(--font-weight-bold);
- margin-bottom: var(--space-8);
- padding: var(--space-8);
- background-color: transparent;
- color: var(--color-text-primary);
- border-bottom: 1px solid var(--color-stroke-divider);
-}
-
-*.dark .wifi-menu .header {
- color: var(--color-dark-text-primary);
- border-bottom: 1px solid var(--color-dark-stroke-divider);
-}
-
-/* WiFi List */
-.wifi-menu .wifi-list {
- background-color: transparent;
- margin: var(--space-2);
-}
-
-/* WiFi Item */
-.wifi-menu .wifi-item {
- min-height: var(--height-item-md);
- padding: var(--space-4) var(--space-12);
- margin: var(--space-2) 0;
- border-radius: var(--radius-small);
- border: 1px solid transparent;
-}
-
-.wifi-menu .wifi-item:hover {
- background-color: var(--color-subtle-fill-hover);
- border-color: var(--color-stroke-control-default);
-}
-
-*.dark .wifi-menu .wifi-item:hover {
- background-color: var(--color-dark-subtle-fill-hover);
- border-color: var(--color-dark-stroke-control-default);
-}
-
-.wifi-menu .wifi-item[active="true"] {
- background-color: var(--color-subtle-fill-rest);
- border: 1px solid var(--color-accent-default);
- min-height: var(--height-item-lg);
-}
-
-*.dark .wifi-menu .wifi-item[active="true"] {
- background-color: var(--color-dark-subtle-fill-rest);
- border: 1px solid var(--color-dark-accent-default);
-}
-
-/* Item Text & Icons */
-.wifi-menu .wifi-item .icon {
- font-family: var(--font-icon);
- font-size: var(--font-size-title);
- margin-right: var(--space-12);
- color: var(--color-text-secondary);
-}
-
-*.dark .wifi-menu .wifi-item .icon {
- color: var(--color-dark-text-secondary);
-}
-
-.wifi-menu .wifi-item .name {
- font-size: var(--font-size-body-strong);
- font-weight: var(--font-weight-semibold);
- color: var(--color-text-primary);
-}
-
-*.dark .wifi-menu .wifi-item .name {
- color: var(--color-dark-text-primary);
-}
-
-.wifi-menu .wifi-item .status {
- font-size: var(--font-size-caption);
- color: var(--color-text-tertiary);
-}
-
-*.dark .wifi-menu .wifi-item .status {
- color: var(--color-dark-text-tertiary);
-}
-
-/* Connect Button */
-.wifi-menu .wifi-item .connect {
- background-color: var(--color-accent-default);
- color: white;
- padding: var(--space-4) var(--space-16);
- border-radius: var(--radius-small);
- border: none;
- font-weight: var(--font-weight-semibold);
- margin-top: var(--space-8);
-}
-
-*.dark .wifi-menu .wifi-item .connect {
- background-color: var(--color-dark-accent-default);
- color: black;
-}
-
-.wifi-menu .wifi-item .connect:hover {
- background-color: var(--color-accent-secondary);
-}
-
-/* Footer */
-.wifi-menu .footer {
- font-size: var(--font-size-caption);
- padding: var(--space-8);
- margin-top: var(--space-8);
- color: var(--color-text-tertiary);
- background-color: transparent;
- border-top: 1px solid var(--color-stroke-divider);
- display: flex;
- justify-content: space-between;
-}
-
-*.dark .wifi-menu .footer {
- color: var(--color-dark-text-tertiary);
- border-top: 1px solid var(--color-dark-stroke-divider);
-}
-
-.wifi-menu .footer .refresh-icon {
- font-family: var(--font-icon);
- background-color: transparent;
- border: none;
- font-size: var(--font-size-subtitle);
- color: var(--color-text-primary);
-}
-
-*.dark .wifi-menu .footer .refresh-icon {
- color: var(--color-dark-text-primary);
-}
-
-.wifi-menu .footer .refresh-icon:hover {
- color: var(--color-accent-default);
-}
-
-/* ----------------------------------------------------------------------------
- Bluetooth Widget
- ---------------------------------------------------------------------------- */
-.bluetooth-widget .widget-container .icon {
- font-family: var(--font-icon);
- font-size: var(--font-size-body);
- padding-left: var(--space-4);
-}
-
-.bluetooth-widget .widget-container .label {
- color: var(--color-text-secondary);
- font-family: var(--font-text);
- font-weight: var(--font-weight-semibold);
-}
-
-*.dark .bluetooth-widget .widget-container .label {
- color: var(--color-dark-text-secondary);
-}
-
-/* --- Bluetooth States --- */
-
-/* OFF */
-.bluetooth-widget.bluetooth-off .widget-container .icon {
- color: var(--color-text-disabled);
-}
-*.dark .bluetooth-widget.bluetooth-off .widget-container .icon {
- color: var(--color-dark-text-disabled);
-}
-
-/* ON */
-.bluetooth-widget.bluetooth-on .widget-container .icon {
- color: var(--color-accent-default);
-}
-*.dark .bluetooth-widget.bluetooth-on .widget-container .icon {
- color: var(--color-dark-accent-default);
-}
-
-/* CONNECTED */
-.bluetooth-widget.bluetooth-connected .widget-container .icon {
- color: var(--color-accent-default);
-}
-.bluetooth-widget.bluetooth-connected .widget-container .label {
- color: var(--color-text-primary);
-}
-
-*.dark .bluetooth-widget.bluetooth-connected .widget-container .icon {
- color: var(--color-dark-accent-default);
-}
-*.dark .bluetooth-widget.bluetooth-connected .widget-container .label {
- color: var(--color-dark-text-primary);
-}
-
-/* ----------------------------------------------------------------------------
- Battery Widget
- ---------------------------------------------------------------------------- */
-.battery-widget .widget-container .icon {
- font-family: var(--font-icon);
- font-size: var(--font-size-body);
- padding-left: var(--space-4);
-}
-
-.battery-widget .widget-container .label {
- color: var(--color-text-secondary);
- font-family: var(--font-mono);
- font-weight: var(--font-weight-semibold);
-}
-
-*.dark .battery-widget .widget-container .label {
- color: var(--color-dark-text-secondary);
-}
-
-/* --- Battery States --- */
-
-/* Critical (Red) */
-.battery-widget .widget-container .icon.status-critical {
- color: var(--color-error);
-}
-*.dark .battery-widget .widget-container .icon.status-critical {
- color: var(--color-dark-error);
-}
-
-/* Low (Orange/Warning) */
-.battery-widget .widget-container .icon.status-low {
- color: var(--color-warning);
-}
-*.dark .battery-widget .widget-container .icon.status-low {
- color: var(--color-dark-warning);
-}
-
-/* Medium (Standard Text Color) */
-.battery-widget .widget-container .icon.status-medium {
- color: var(--color-text-secondary);
-}
-*.dark .battery-widget .widget-container .icon.status-medium {
- color: var(--color-dark-text-secondary);
-}
-
-/* High/Full (Green) */
-.battery-widget .widget-container .icon.status-high,
-.battery-widget .widget-container .icon.status-full {
- color: var(--color-success);
-}
-*.dark .battery-widget .widget-container .icon.status-high,
-*.dark .battery-widget .widget-container .icon.status-full {
- color: var(--color-dark-success);
-}
-
-/* Charging (Accent Blue) */
-.battery-widget .widget-container .icon.status-charging {
- color: var(--color-accent-default);
-}
-*.dark .battery-widget .widget-container .icon.status-charging {
- color: var(--color-dark-accent-default);
-}
-
-/* Charging Animation */
-@keyframes blink {
- 0% {
- opacity: 1;
- }
- 50% {
- opacity: 0.4;
- }
- 100% {
- opacity: 1;
- }
-}
-
-.battery-widget .widget-container .icon.status-charging.blink {
- animation: blink 2s infinite ease-in-out;
-}
-
-/* ----------------------------------------------------------------------------
- Clock Widget
- ---------------------------------------------------------------------------- */
-.clock-widget .widget-container {
- background-color: transparent;
- border: transparent;
-}
-
-.clock-widget .widget-container .icon {
- margin-right: var(--space-8);
- padding-left: var(--space-4);
-}
-
-.clock-widget .label {
- font-family: var(--font-text);
- font-size: var(--font-size-body-strong);
- font-weight: var(--font-weight-regular);
-}
-
-/* ----------------------------------------------------------------------------
- Calendar Flyout
- ---------------------------------------------------------------------------- */
-.calendar {
- padding: var(--space-12);
- border: 1px solid var(--color-stroke-surface);
- border-radius: var(--radius-medium);
- background-color: var(--color-background-elevated);
-}
-
-*.dark .calendar {
- border: 1px solid var(--color-dark-stroke-surface);
- background-color: var(--color-dark-background-elevated);
-}
-
-.calendar .calendar-table::item:selected {
- background-color: var(--color-accent-default);
- color: var(--color-background-base);
- border-radius: var(--radius-small);
-}
-
-*.dark .calendar .calendar-table::item:selected {
- background-color: var(--color-dark-accent-default);
- color: var(--color-dark-background-base);
-}
-
-.calendar .day-label,
-.calendar .month-label,
-.calendar .date-label {
- font-family: var(--font-primary);
- color: var(--color-text-primary);
- min-width: var(--width-menu-sm);
- max-width: var(--width-menu-sm);
-}
-
-*.dark .calendar .day-label,
-*.dark .calendar .month-label,
-*.dark .calendar .date-label {
- color: var(--color-dark-text-primary);
-}
-
-.calendar .month-label {
- font-size: var(--font-size-body-strong);
- font-weight: var(--font-weight-semibold);
- margin-top: var(--space-16);
-}
-
-.calendar .day-label {
- font-size: var(--font-size-subtitle);
- font-weight: var(--font-weight-semibold);
- margin-top: var(--space-8);
-}
-
-.calendar .date-label {
- font-size: var(--font-size-display);
- font-weight: var(--font-weight-bold);
- margin-top: -var(--space-8);
-}
-
-/* ----------------------------------------------------------------------------
- Weather Widget
- ---------------------------------------------------------------------------- */
-.weather-widget .widget-container {
- background-color: transparent;
- border: transparent;
-}
-
-.weather-widget .widget-container .icon {
- margin-right: var(--space-8);
- padding-left: var(--space-4);
-}
-
-.weather-widget .label {
- font-family: var(--font-text);
- font-size: var(--font-size-body-strong);
- font-weight: var(--font-weight-regular);
-}
-
-/* ----------------------------------------------------------------------------
- Power Menu Widget
- ---------------------------------------------------------------------------- */
-.power-menu-widget .widget-container {
- background-color: transparent;
- border: 0;
-}
-
-.power-menu-widget .widget-container:hover {
- background-color: transparent;
-}
-
-.power-menu-widget .label {
- font-family: var(--font-icon);
- font-size: var(--font-size-body);
- color: var(--color-dark-error);
- font-weight: var(--font-weight-semibold);
-}
-
-*.dark .power-menu-widget .label {
- color: var(--color-dark-error);
-}
-
-.power-menu-widget .label:hover {
- color: var(--color-accent-default);
-}
-
-*.dark .power-menu-widget .label:hover {
- color: var(--color-dark-accent-default);
-}
-
-.power-menu-popup {
- border-radius: var(--radius-large);
- border: 1px solid var(--color-dark-stroke-surface);
- padding: var(--space-12);
-}
-
-.power-menu-popup .button {
- width: var(--width-menu-sm);
- height: var(--height-item-lg);
- padding: var(--space-12);
- margin: var(--space-4);
-
- background-color: var(--color-dark-subtle-fill-rest);
- border: 1px solid var(--color-dark-stroke-control-default);
- border-radius: var(--radius-medium);
-
- color: var(--color-dark-text-primary);
- font-family: var(--font-primary);
-
- cursor: pointer;
-}
-
-.power-menu-popup .button:hover,
-.power-menu-popup .button.hover {
- background-color: var(--color-dark-subtle-fill-hover);
- border-color: var(--color-dark-stroke-focus);
-}
-
-.power-menu-popup .button:active {
- background-color: var(--color-dark-subtle-fill-pressed);
-}
-
-.power-menu-popup .button .label {
- font-size: var(--font-size-body-strong);
- font-weight: var(--font-weight-semibold);
- color: var(--color-dark-text-primary);
- margin-bottom: var(--space-4);
-}
-.power-menu-popup .button .icon {
- font-size: var(--font-size-icon-large);
- color: var(--color-dark-text-tertiary);
- margin-top: var(--space-12);
-}
-
-.power-menu-popup .button.shutdown .icon {
- font-family: var(--font-icon);
- color: var(--color-dark-accent-default);
-}
-
-.power-menu-popup .button.cancel .icon {
- color: var(--color-dark-error);
-}
-
-.uptime {
- font-size: var(--font-size-subtitle);
- font-weight: var(--font-weight-semibold);
- color: var(--color-dark-text-primary);
- margin-bottom: var(--space-8);
-}
+/* ---- YASB Panel Style ---- */
+:root {
+ /* Fonts */
+ --font-primary: "Segoe UI", system-ui;
+ --font-text: "Segoe UI Variable Text", "Segoe UI", system-ui;
+ --font-mono: "MesloLGS NF";
+ --font-icon: "Segoe Fluent Icons", "MesloLGS NF";
+ --font-icon-2: "MesloLGS NF", "Segoe UI";
+
+ /* Typography */
+ --font-size-caption: 10px;
+ --font-size-body: 12px;
+ --font-size-body-strong: 14px;
+ --font-size-subtitle: 16px;
+ --font-size-title: 20px;
+ --font-size-icon-large: 32px;
+ --font-size-display: 48px;
+
+ --font-weight-regular: 400;
+ --font-weight-semibold: 500;
+ --font-weight-bold: 700;
+
+ /* Spacing */
+ --space-2: 2px;
+ --space-4: 4px;
+ --space-6: 6px;
+ --space-8: 8px;
+ --space-12: 12px;
+ --space-16: 16px;
+ --space-20: 20px;
+ --space-24: 24px;
+ --space-32: 32px;
+
+ /* Dimensions */
+ --width-menu-sm: 160px;
+ --width-menu-md: 280px;
+ --width-menu-lg: 380px;
+ --size-icon-btn: 28px;
+ --size-app-icon: 32px;
+ --height-item-md: 36px;
+ --height-item-lg: 80px;
+
+ /* Border Radius */
+ --radius-none: 0;
+ --radius-small: 4px;
+ --radius-medium: 6px;
+ --radius-large: 8px;
+ --radius-circle: 32px;
+
+ /* -- Light Theme -- */
+ --color-background-base: rgba(243, 243, 243, 0.9);
+ --color-background-layer: rgba(249, 249, 249, 0.8);
+ --color-background-elevated: rgba(252, 252, 252, 0.9);
+ --color-background-elevated-x2: rgba(255, 255, 255, 0.7);
+
+ --color-taskbar: rgba(243, 243, 243, 0.85);
+ --color-widget-container: rgba(212, 212, 212, 0.7);
+
+ /* Surface Colors */
+ --color-surface-default: rgba(0, 0, 0, 0.0373);
+ --color-surface-secondary: rgba(0, 0, 0, 0.0241);
+ --color-surface-tertiary: rgba(0, 0, 0, 0.0186);
+ --color-surface-disabled: rgba(0, 0, 0, 0.0241);
+
+ /* Text Colors */
+ --color-text-primary: rgba(0, 0, 0, 0.9);
+ --color-text-secondary: rgba(0, 0, 0, 0.6063);
+ --color-text-tertiary: rgba(0, 0, 0, 0.4458);
+ --color-text-disabled: rgba(0, 0, 0, 0.3614);
+
+ /* Accent Colors */
+ --color-accent-default: #0078d4;
+ --color-accent-secondary: #005a9e;
+ --color-accent-tertiary: rgba(0, 120, 212, 0.4);
+ --color-accent-disabled: rgba(0, 0, 0, 0.2);
+
+ /* Semantic Colors */
+ --color-success: #107c10;
+ --color-warning: #ffe600c0;
+ --color-error: #c42b1c;
+ --color-info: #0078d4;
+
+ /* Component Colors */
+ --color-traffic-download: #1a7c0d;
+ --color-traffic-upload: #c41022;
+ --color-success-bg: rgba(16, 124, 16, 0.15);
+ --color-error-bg: rgba(196, 43, 28, 0.15);
+
+ /* Interactive States */
+ --color-subtle-fill-rest: rgba(0, 0, 0, 0.0373);
+ --color-subtle-fill-hover: rgba(0, 0, 0, 0.0578);
+ --color-subtle-fill-pressed: rgba(0, 0, 0, 0.0241);
+ --color-subtle-fill-disabled: transparent;
+
+ /* Stroke/Border Colors */
+ --color-stroke-surface: rgba(0, 0, 0, 0.0578);
+ --color-stroke-control-default: rgba(0, 0, 0, 0.0578);
+ --color-stroke-divider: rgba(0, 0, 0, 0.0578);
+ --color-stroke-focus: rgba(0, 0, 0, 0.0893);
+
+ /* -- Dark Theme -- */
+ --color-dark-background-base: rgba(30, 30, 30, 0.7);
+ --color-dark-background-layer: rgba(44, 44, 44, 0.5);
+ --color-dark-background-elevated: rgba(22, 22, 22, 0.25);
+ --color-dark-background-elevated-x2: rgba(22, 22, 22, 0.8);
+
+ --color-dark-taskbar: rgba(43, 44, 45, 0.85);
+ --color-dark-widget-container: rgba(60, 60, 60, 0.7);
+
+ /* Surface Colors */
+ --color-dark-surface-default: rgba(255, 255, 255, 0.0605);
+ --color-dark-surface-secondary: rgba(255, 255, 255, 0.0419);
+ --color-dark-surface-tertiary: rgba(255, 255, 255, 0.0326);
+ --color-dark-surface-disabled: rgba(255, 255, 255, 0.0419);
+
+ /* Text Colors */
+ --color-dark-text-primary: rgba(255, 255, 255, 1);
+ --color-dark-text-secondary: rgba(255, 255, 255, 0.786);
+ --color-dark-text-tertiary: rgba(255, 255, 255, 0.544);
+ --color-dark-text-disabled: rgba(255, 255, 255, 0.362);
+
+ /* Accent Colors */
+ --color-dark-accent-default: #60cdff;
+ --color-dark-accent-secondary: #0078d4;
+ --color-dark-accent-tertiary: rgba(96, 205, 255, 0.5);
+ --color-dark-accent-disabled: rgba(255, 255, 255, 0.1581);
+
+ /* Semantic Colors */
+ --color-dark-success: #6ccb5f;
+ --color-dark-warning: #fce100;
+ --color-dark-error: #ff99a4;
+ --color-dark-info: #60cdff;
+
+ /* Component Colors */
+ --color-dark-traffic-download: var(--color-dark-success);
+ --color-dark-traffic-upload: var(--color-dark-error);
+ --color-dark-success-bg: rgba(108, 203, 95, 0.2);
+ --color-dark-error-bg: rgba(255, 153, 164, 0.2);
+
+ /* Interactive States */
+ --color-dark-subtle-fill-rest: rgba(255, 255, 255, 0.0605);
+ --color-dark-subtle-fill-hover: rgba(255, 255, 255, 0.0837);
+ --color-dark-subtle-fill-pressed: rgba(255, 255, 255, 0.0512);
+ --color-dark-subtle-fill-disabled: transparent;
+
+ /* Stroke/Border Colors */
+ --color-dark-stroke-surface: rgba(255, 255, 255, 0.0698);
+ --color-dark-stroke-control-default: rgba(255, 255, 255, 0.0838);
+ --color-dark-stroke-divider: rgba(255, 255, 255, 0.0838);
+ --color-dark-stroke-focus: rgba(255, 255, 255, 0.1047);
+}
+
+/* ----------------------------------------------------------------------------
+ Global Reset
+ ---------------------------------------------------------------------------- */
+* {
+ font-size: var(--font-size-body);
+ color: var(--color-text-primary);
+ font-weight: var(--font-weight-regular);
+ font-family: var(--font-primary);
+ margin: 0;
+ padding: 0;
+}
+
+.dark * {
+ color: var(--color-dark-text-primary);
+}
+
+/* ----------------------------------------------------------------------------
+ Layout
+ ---------------------------------------------------------------------------- */
+.yasb-panel {
+ padding: 0 var(--space-4);
+ margin: 0;
+ background-color: var(--color-background-base);
+ border-bottom: 1px solid var(--color-stroke-control-default);
+}
+
+.yasb-panel.dark {
+ background-color: var(--color-dark-background-base);
+ border-bottom: 1px solid var(--color-dark-stroke-control-default);
+}
+
+/* Label */
+.widget {
+ padding: 0 var(--space-2);
+ margin: 0;
+}
+
+.widget .label {
+ padding: 0 var(--space-4);
+ font-size: var(--font-size-body);
+ color: var(--color-text-secondary);
+}
+
+*.dark .widget .label {
+ color: var(--color-dark-text-secondary);
+}
+
+.active-window-widget .widget-container .label,
+.clock-widget .label,
+.media-widget .label,
+.cpu-widget .widget-container .label,
+.gpu-widget .widget-container .label,
+.memory-widget .widget-container .label,
+.disk-widget .widget-container .label,
+.traffic-widget .download,
+.traffic-widget .upload,
+.microphone-widget .widget-container .label,
+.volume-widget .widget-container .label,
+.brightness-widget .widget-container .label,
+.wifi-widget .widget-container .label,
+.bluetooth-widget .widget-container .label,
+.battery-widget .widget-container .label {
+ text-shadow: 0px 0px 1px black;
+}
+
+.widget .label.alt {
+ padding: 0 var(--space-4);
+}
+
+.widget .label:hover {
+ color: var(--color-text-primary);
+}
+
+*.dark .widget .label:hover {
+ color: var(--color-dark-text-primary);
+}
+
+/* Icon */
+.widget .icon {
+ padding-top: 1px;
+ font-family: var(--font-icon);
+ font-size: var(--font-size-body);
+ color: var(--color-text-secondary);
+ margin-right: var(--space-4);
+}
+
+*.dark .widget .icon {
+ color: var(--color-dark-text-secondary);
+}
+
+.widget:hover .icon {
+ color: var(--color-text-primary);
+}
+
+*.dark .widget:hover .icon {
+ color: var(--color-dark-text-primary);
+}
+
+/* Tooltip */
+.tooltip {
+ background-color: var(--color-background-elevated-x2);
+ border: 1px solid var(--color-stroke-surface);
+ border-radius: var(--radius-medium);
+ padding: var(--space-8) var(--space-12);
+ margin-top: var(--space-12);
+ font-size: var(--font-size-body);
+ font-family: var(--font-primary);
+ color: var(--color-text-primary);
+ font-weight: var(--font-weight-regular);
+}
+
+*.dark .tooltip,
+.tooltip.dark {
+ background-color: var(--color-dark-background-elevated-x2);
+ border: 1px solid var(--color-dark-stroke-surface);
+ color: var(--color-dark-text-primary);
+}
+
+/* ----------------------------------------------------------------------------
+ Context Menu
+ ---------------------------------------------------------------------------- */
+.context-menu,
+.context-menu .menu-checkbox {
+ background-color: var(--color-dark-background-elevated);
+ border: 1px solid var(--color-dark-stroke-surface);
+ border-radius: var(--radius-medium);
+ padding: var(--space-4) 0;
+ font-family: var(--font-primary);
+ font-size: var(--font-size-body);
+ color: var(--color-dark-text-primary);
+}
+
+.context-menu::right-arrow {
+ width: var(--space-8);
+ height: var(--space-8);
+ padding-right: var(--space-24);
+}
+
+.context-menu::item,
+.context-menu .menu-checkbox {
+ background-color: transparent;
+ padding: var(--space-4) var(--space-8);
+ margin: var(--space-2) var(--space-4);
+ border-radius: var(--radius-small);
+ border: 0;
+ min-width: var(--width-menu-sm);
+}
+
+.context-menu::item:selected,
+.context-menu .menu-checkbox:hover {
+ background-color: var(--color-dark-subtle-fill-hover) !important;
+ color: var(--color-dark-text-primary) !important;
+}
+
+.context-menu::separator {
+ height: 1px;
+ background-color: var(--color-dark-stroke-divider) !important;
+ margin: var(--space-4) var(--space-8);
+}
+
+.context-menu::item:disabled {
+ color: var(--color-dark-text-disabled) !important;
+ background-color: transparent;
+}
+
+.context-menu .menu-checkbox .checkbox {
+ border: none;
+ padding: var(--space-4) var(--space-12);
+ font-size: var(--font-size-body);
+ margin: 0;
+ color: var(--color-dark-text-primary) !important;
+ font-family: var(--font-primary);
+}
+
+.context-menu .submenu::item:disabled {
+ margin: 0;
+ padding-left: var(--space-16);
+}
+
+.context-menu .menu-checkbox .checkbox:unchecked {
+ color: var(--color-dark-text-tertiary) !important;
+}
+
+.context-menu .menu-checkbox .checkbox::indicator {
+ width: var(--space-12);
+ height: var(--space-12);
+ margin-left: 0;
+ margin-right: var(--space-8);
+}
+
+.context-menu .menu-checkbox .checkbox::indicator:unchecked {
+ background-color: var(--color-dark-surface-secondary) !important;
+ border-radius: var(--radius-small);
+}
+
+.context-menu .menu-checkbox .checkbox::indicator:checked {
+ background-color: var(--color-dark-accent-secondary) !important;
+ border-radius: var(--radius-small);
+}
+
+.context-menu .menu-checkbox .checkbox:focus {
+ outline: none;
+}
+
+/* ----------------------------------------------------------------------------
+ Common Widget Container
+ ---------------------------------------------------------------------------- */
+.widget-container {
+ padding: 1px var(--space-4);
+ margin: var(--space-2) 0;
+ background-color: var(--color-background-elevated);
+ border-radius: var(--radius-medium);
+ border: 1px solid var(--color-stroke-control-default);
+}
+
+*.dark .widget-container {
+ background-color: var(--color-dark-background-elevated);
+ border: 1px solid var(--color-dark-stroke-control-default);
+}
+
+.widget-container:hover {
+ background-color: var(--color-widget-container);
+ border-color: var(--color-stroke-focus);
+}
+
+*.dark .widget-container:hover {
+ background-color: var(--color-dark-widget-container);
+ border-color: var(--color-dark-stroke-focus);
+}
+
+/* ----------------------------------------------------------------------------
+ Task View Widget
+ ---------------------------------------------------------------------------- */
+.task-view-widget .widget-container {
+ background-color: transparent;
+ border: 0;
+}
+
+.task-view-widget .widget-container:hover {
+ background-color: transparent;
+}
+
+.task-view-widget .icon {
+ font-family: var(--font-icon-2);
+ font-size: var(--font-size-subtitle);
+ color: var(--color-text-secondary);
+}
+
+*.dark .task-view-widget .icon {
+ font-family: var(--font-icon-2);
+ font-size: var(--font-size-subtitle);
+ color: var(--color-dark-text-secondary);
+}
+
+.task-view-widget .icon:hover {
+ color: var(--color-accent-default);
+}
+
+*.dark .task-view-widget .icon:hover {
+ color: var(--color-dark-accent-default);
+}
+
+/* ----------------------------------------------------------------------------
+ Home Widget
+ ---------------------------------------------------------------------------- */
+.home-widget .widget-container {
+ background-color: transparent;
+ border: 0;
+}
+
+.home-widget .widget-container:hover {
+ background-color: transparent;
+}
+
+.home-widget .icon {
+ font-family: var(--font-icon-2);
+ font-size: var(--font-size-subtitle);
+ color: var(--color-text-secondary);
+}
+
+*.dark .home-widget .icon {
+ color: var(--color-dark-text-secondary);
+}
+
+.home-widget .icon:hover {
+ color: var(--color-accent-default);
+}
+
+*.dark .home-widget .icon:hover {
+ color: var(--color-dark-accent-default);
+}
+
+.home-menu {
+ background-color: var(--color-background-elevated);
+ border: 1px solid var(--color-stroke-surface);
+ border-radius: var(--radius-medium);
+ padding: var(--space-8) 0;
+ font-family: var(--font-primary);
+ font-size: var(--font-size-body);
+ color: var(--color-text-primary);
+}
+
+*.dark .home-menu {
+ background-color: var(--color-dark-background-elevated);
+ border: 1px solid var(--color-dark-stroke-surface);
+ color: var(--color-dark-text-primary);
+}
+
+.home-menu .menu-item {
+ background-color: transparent;
+ padding: var(--space-8) var(--space-12);
+ margin: var(--space-2) var(--space-8);
+ border-radius: var(--radius-small);
+ font-family: var(--font-icon-2);
+ border: 0;
+ min-width: 180px;
+}
+
+.home-menu .menu-item:hover {
+ background-color: var(--color-subtle-fill-hover);
+ color: var(--color-text-primary);
+}
+
+*.dark .home-menu .menu-item:hover {
+ background-color: var(--color-dark-subtle-fill-hover);
+ color: var(--color-dark-text-primary);
+}
+
+.home-menu .separator {
+ height: 1px;
+ min-height: 1px;
+ max-height: 1px;
+ background-color: var(--color-stroke-divider);
+ margin: var(--space-4) var(--space-8);
+}
+
+*.dark .home-menu .separator {
+ background-color: var(--color-dark-stroke-divider);
+}
+
+/* ----------------------------------------------------------------------------
+ Windows Desktops
+ ---------------------------------------------------------------------------- */
+.windows-desktops .ws-btn {
+ color: var(--color-text-tertiary);
+ background-color: transparent;
+ border: none;
+ font-size: var(--font-size-body-strong);
+ padding-left: unset;
+ padding: 1px 3px;
+ margin: -1px 0 0 0;
+ border-radius: var(--radius-small);
+ min-width: var(--space-16);
+ box-shadow: 0px 0px 1px black;
+}
+
+*.dark .windows-desktops .ws-btn {
+ color: var(--color-dark-text-tertiary);
+}
+
+.windows-desktops .ws-btn:hover {
+ color: var(--color-text-secondary);
+}
+
+*.dark .windows-desktops .ws-btn:hover {
+ color: var(--color-dark-text-secondary);
+}
+
+.windows-desktops .ws-btn.active {
+ color: var(--color-accent-default);
+ font-weight: var(--font-weight-semibold);
+}
+
+*.dark .windows-desktops .ws-btn.active {
+ color: var(--color-dark-accent-default);
+}
+
+.windows-desktops .context-menu {
+ background-color: var(--color-background-elevated);
+ border: 1px solid var(--color-stroke-surface);
+ border-radius: var(--radius-medium);
+ padding: var(--space-4);
+}
+
+*.dark .windows-desktops .context-menu {
+ background-color: var(--color-dark-background-elevated);
+ border: 1px solid var(--color-dark-stroke-surface);
+}
+
+.windows-desktops .context-menu .menu-item {
+ padding: var(--space-8) var(--space-16);
+ border-radius: var(--radius-small);
+ color: var(--color-text-secondary);
+}
+
+*.dark .windows-desktops .context-menu .menu-item {
+ color: var(--color-dark-text-secondary);
+}
+
+.windows-desktops .context-menu .menu-item:hover {
+ background-color: var(--color-subtle-fill-hover);
+ color: var(--color-text-primary);
+}
+
+*.dark .windows-desktops .context-menu .menu-item:hover {
+ background-color: var(--color-dark-subtle-fill-hover);
+ color: var(--color-dark-text-primary);
+}
+
+.windows-desktops .context-menu .separator {
+ height: 1px;
+ background-color: var(--color-stroke-divider);
+ margin: var(--space-4) 0;
+}
+
+*.dark .windows-desktops .context-menu .separator {
+ background-color: var(--color-dark-stroke-divider);
+}
+
+/* Qt-specific Dialog Styles */
+.windows-desktops .rename-dialog {
+ border: 1px solid var(--color-stroke-surface);
+ border-radius: var(--radius-large);
+}
+
+*.dark .windows-desktops .rename-dialog {
+ border: 1px solid var(--color-stroke-surface);
+}
+
+.windows-desktops .rename-dialog QPushButton {
+ background-color: var(--color-accent-default);
+ color: var(--color-background-base);
+ border: none;
+ padding: var(--space-8) var(--space-16);
+ border-radius: var(--radius-small);
+ font-weight: var(--font-weight-semibold);
+}
+
+*.dark .windows-desktops .rename-dialog QPushButton {
+ background-color: var(--color-dark-accent-default);
+ color: var(--color-dark-background-base);
+}
+
+.windows-desktops .rename-dialog QPushButton:hover {
+ background-color: var(--color-accent-secondary);
+}
+
+*.dark .windows-desktops .rename-dialog QPushButton:hover {
+ background-color: var(--color-dark-accent-secondary);
+}
+
+.windows-desktops .rename-dialog QLabel {
+ color: var(--color-text-primary);
+ font-size: var(--font-size-body);
+}
+
+*.dark .windows-desktops .rename-dialog QLabel {
+ color: var(--color-dark-text-primary);
+}
+
+.windows-desktops .rename-dialog QLineEdit {
+ background-color: var(--color-surface-secondary);
+ border: 1px solid var(--color-stroke-control-default);
+ border-radius: var(--radius-small);
+ padding: var(--space-8);
+ color: var(--color-text-primary);
+ font-family: var(--font-text);
+}
+
+*.dark .windows-desktops .rename-dialog QLineEdit {
+ background-color: var(--color-dark-surface-secondary);
+ border: 1px solid var(--color-dark-stroke-control-default);
+ color: var(--color-dark-text-primary);
+}
+
+.windows-desktops .rename-dialog QLineEdit:focus {
+ border-color: var(--color-accent-default);
+ outline: none;
+}
+
+*.dark .windows-desktops .rename-dialog QLineEdit:focus {
+ border-color: var(--color-dark-accent-default);
+}
+
+/* ----------------------------------------------------------------------------
+ Active Window Widget
+ ---------------------------------------------------------------------------- */
+.active-window-widget .widget-container .icon {
+ font-family: var(--font-icon);
+ font-size: var(--font-size-body);
+ padding-left: var(--space-6);
+}
+
+.active-window-widget .icon {
+ padding: 0;
+}
+
+.active-window-widget .widget-container .label {
+ color: var(--color-text-secondary);
+ font-family: var(--font-mono);
+ font-weight: var(--font-weight-semibold);
+}
+
+*.dark .active-window-widget .widget-container .label {
+ color: var(--color-dark-text-secondary);
+}
+
+/* ----------------------------------------------------------------------------
+ Taskbar Widget
+ ---------------------------------------------------------------------------- */
+.taskbar-widget .app-container {
+ padding: 0 var(--space-4);
+ margin: 0 var(--space-2);
+ border-radius: var(--radius-small);
+}
+
+.taskbar-widget .app-container:hover {
+ background-color: var(--color-subtle-fill-hover);
+}
+
+*.dark .taskbar-widget .app-container:hover {
+ background-color: var(--color-dark-subtle-fill-hover);
+}
+
+.taskbar-widget .app-container.foreground {
+ background-color: var(--color-subtle-fill-rest);
+ border-left: 2px solid var(--color-accent-default);
+}
+
+*.dark .taskbar-widget .app-container.foreground {
+ background-color: var(--color-dark-subtle-fill-rest);
+ border-left: 2px solid var(--color-dark-accent-default);
+}
+
+.taskbar-widget .app-container .app-title {
+ padding-left: var(--space-4);
+ color: var(--color-text-secondary);
+ font-size: var(--font-size-body);
+}
+
+*.dark .taskbar-widget .app-container .app-title {
+ color: var(--color-dark-text-secondary);
+}
+
+.taskbar-widget .app-container.foreground .app-title {
+ color: var(--color-text-primary);
+ font-weight: var(--font-weight-semibold);
+}
+
+*.dark .taskbar-widget .app-container.foreground .app-title {
+ color: var(--color-dark-text-primary);
+}
+
+.taskbar-preview {
+ background-color: var(--color-taskbar);
+ border: 1px solid var(--color-stroke-surface);
+ border-radius: var(--radius-medium);
+ padding: var(--space-8);
+}
+
+*.dark .taskbar-preview {
+ background-color: var(--color-dark-taskbar);
+ border: 1px solid var(--color-dark-stroke-surface);
+}
+
+.taskbar-preview .header {
+ padding-bottom: var(--space-8);
+ padding-top: var(--space-8);
+}
+
+.taskbar-preview .header .title {
+ color: var(--color-text-primary);
+ font-weight: var(--font-weight-bold);
+ font-size: var(--font-size-body);
+}
+
+*.dark .taskbar-preview .header .title {
+ color: var(--color-dark-text-primary);
+}
+
+/* ----------------------------------------------------------------------------
+ Apps Widget
+ ---------------------------------------------------------------------------- */
+.apps-widget .widget-container {
+ padding: 0 var(--space-4);
+}
+
+.apps-widget .label {
+ font-size: var(--font-size-body);
+ color: var(--color-text-secondary);
+}
+
+*.dark .apps-widget .label {
+ color: var(--color-dark-text-secondary);
+}
+
+.apps-widget .label:hover {
+ color: var(--color-accent-default);
+}
+
+*.dark .apps-widget .label:hover {
+ color: var(--color-dark-accent-default);
+}
+
+/* ----------------------------------------------------------------------------
+ Media Widget
+ ---------------------------------------------------------------------------- */
+.media-widget .btn {
+ font-size: var(--font-size-body);
+ color: var(--color-text-secondary);
+ padding: var(--space-2) var(--space-4);
+ margin: 0 var(--space-2);
+ background-color: transparent;
+ border: none;
+ border-radius: var(--radius-small);
+}
+
+*.dark .media-widget .btn {
+ color: var(--color-dark-text-secondary);
+}
+
+.media-widget .btn:hover {
+ color: var(--color-text-primary);
+ background-color: var(--color-subtle-fill-hover);
+}
+
+*.dark .media-widget .btn:hover {
+ color: var(--color-dark-text-primary);
+ background-color: var(--color-dark-subtle-fill-hover);
+}
+
+.media-widget .btn:active {
+ background-color: var(--color-subtle-fill-pressed);
+}
+
+*.dark .media-widget .btn:active {
+ background-color: var(--color-dark-subtle-fill-pressed);
+}
+
+.media-menu {
+ min-width: var(--width-menu-lg);
+ max-width: var(--width-menu-lg);
+ border-radius: var(--radius-medium);
+ padding: var(--space-12);
+ background-color: var(--color-background-elevated);
+}
+
+*.dark .media-menu {
+ background-color: var(--color-dark-background-elevated);
+}
+
+.media-menu .title,
+.media-menu .artist,
+.media-menu .source {
+ font-family: var(--font-text);
+ margin-left: var(--space-12);
+}
+
+.media-menu .title {
+ font-size: var(--font-size-body-strong);
+ font-weight: var(--font-weight-semibold);
+ color: var(--color-text-primary);
+}
+
+*.dark .media-menu .title {
+ color: var(--color-dark-text-primary);
+}
+
+.media-menu .artist {
+ font-size: var(--font-size-body);
+ color: var(--color-text-secondary);
+ margin-top: var(--space-2);
+ margin-bottom: var(--space-4);
+}
+
+*.dark .media-menu .artist {
+ color: var(--color-dark-text-secondary);
+}
+
+.media-menu .source {
+ font-size: var(--font-size-caption);
+ color: var(--color-text-tertiary);
+}
+
+*.dark .media-menu .source {
+ color: var(--color-dark-text-tertiary);
+}
+
+.media-menu .btn {
+ font-family: var(--font-icon);
+ font-size: var(--font-size-subtitle);
+ margin: var(--space-12) var(--space-8) 0;
+ min-width: var(--size-icon-btn);
+ max-width: var(--size-icon-btn);
+ min-height: var(--size-icon-btn);
+ max-height: var(--size-icon-btn);
+ border-radius: var(--radius-large);
+ color: var(--color-text-secondary);
+ background-color: var(--color-subtle-fill-rest);
+ border: 1px solid var(--color-stroke-control-default);
+}
+
+*.dark .media-menu .btn {
+ color: var(--color-dark-text-secondary);
+ background-color: var(--color-dark-subtle-fill-rest);
+ border: 1px solid var(--color-dark-stroke-control-default);
+}
+
+.media-menu .btn:hover {
+ background-color: var(--color-subtle-fill-hover);
+ color: var(--color-text-primary);
+}
+
+*.dark .media-menu .btn:hover {
+ background-color: var(--color-dark-subtle-fill-hover);
+ color: var(--color-dark-text-primary);
+}
+
+.media-menu .btn.prev {
+ margin-left: var(--space-16);
+}
+
+.media-menu .btn.play {
+ background-color: var(--color-accent-default);
+ color: var(--color-background-base);
+ border-color: transparent;
+}
+
+*.dark .media-menu .btn.play {
+ background-color: var(--color-dark-accent-default);
+ color: var(--color-dark-background-base);
+}
+
+.media-menu .btn.play:hover {
+ background-color: var(--color-accent-secondary);
+}
+
+*.dark .media-menu .btn.play:hover {
+ background-color: var(--color-dark-accent-secondary);
+}
+
+.media-menu .btn.disabled,
+.media-menu .btn.disabled:hover {
+ color: var(--color-text-disabled);
+ background-color: var(--color-surface-disabled);
+ cursor: not-allowed;
+}
+
+*.dark .media-menu .btn.disabled,
+*.dark .media-menu .btn.disabled:hover {
+ color: var(--color-dark-text-disabled);
+ background-color: var(--color-dark-surface-disabled);
+}
+
+.media-menu .playback-time {
+ font-size: var(--font-size-caption);
+ font-family: var(--font-mono);
+ color: var(--color-text-tertiary);
+ margin-top: var(--space-16);
+ min-width: 100px;
+}
+
+*.dark .media-menu .playback-time {
+ color: var(--color-dark-text-tertiary);
+}
+
+.media-menu .progress-slider {
+ height: var(--space-16);
+ margin: var(--space-4);
+ border-radius: var(--radius-small);
+}
+
+.media-menu .progress-slider::groove {
+ background-color: var(--color-surface-tertiary);
+ height: var(--space-4);
+ border-radius: var(--radius-small);
+}
+
+*.dark .media-menu .progress-slider::groove {
+ background-color: var(--color-dark-surface-tertiary);
+}
+
+.media-menu .progress-slider::groove:hover {
+ height: var(--space-6);
+ background-color: var(--color-surface-secondary);
+}
+
+*.dark .media-menu .progress-slider::groove:hover {
+ background-color: var(--color-dark-surface-secondary);
+}
+
+.media-menu .progress-slider::sub-page {
+ background-color: var(--color-accent-default);
+ border-radius: var(--radius-small);
+ height: var(--space-4);
+}
+
+*.dark .media-menu .progress-slider::sub-page {
+ background-color: var(--color-dark-accent-default);
+}
+
+/* ----------------------------------------------------------------------------
+ CPU Widget
+ ---------------------------------------------------------------------------- */
+.cpu-widget {
+ cursor: crosshair;
+}
+
+.cpu-widget .widget-container {
+ padding: 0;
+}
+
+.cpu-widget .widget-container .icon {
+ padding-right: var(--space-4);
+}
+
+.cpu-widget .widget-container .label {
+ color: var(--color-text-secondary);
+ font-family: var(--font-mono);
+ font-weight: var(--font-weight-semibold);
+}
+
+*.dark .cpu-widget .widget-container .label {
+ color: var(--color-dark-text-secondary);
+}
+
+/* ----------------------------------------------------------------------------
+ GPU Widget
+ ---------------------------------------------------------------------------- */
+.gpu-widget .widget-container .icon {
+ padding-right: var(--space-4);
+}
+
+.gpu-widget .widget-container .label {
+ color: var(--color-text-secondary);
+ font-family: var(--font-mono);
+ font-weight: var(--font-weight-semibold);
+}
+
+*.dark .gpu-widget .widget-container .label {
+ color: var(--color-dark-text-secondary);
+}
+
+/* ----------------------------------------------------------------------------
+ Memory Widget
+ ---------------------------------------------------------------------------- */
+.memory-widget .widget-container .icon {
+ padding-right: var(--space-4);
+}
+
+.memory-widget .widget-container .label {
+ color: var(--color-text-secondary);
+ font-family: var(--font-mono);
+ font-weight: var(--font-weight-semibold);
+}
+
+*.dark .memory-widget .widget-container .label {
+ color: var(--color-dark-text-secondary);
+}
+
+.memory-widget .widget-container .label.status-low {
+ color: var(--color-success);
+}
+*.dark .memory-widget .widget-container .label.status-low {
+ color: var(--color-dark-success);
+}
+
+.memory-widget .widget-container .label.status-medium {
+ color: var(--color-warning);
+}
+*.dark .memory-widget .widget-container .label.status-medium {
+ color: var(--color-dark-warning);
+}
+
+.memory-widget .widget-container .label.status-high {
+ color: var(--color-accent-default);
+}
+*.dark .memory-widget .widget-container .label.status-high {
+ color: var(--color-dark-accent-default);
+}
+
+.memory-widget .widget-container .label.status-critical {
+ color: var(--color-error);
+}
+*.dark .memory-widget .widget-container .label.status-critical {
+ color: var(--color-dark-error);
+}
+
+.memory-widget .progress-circle {
+ margin-right: var(--space-8);
+}
+
+/* ----------------------------------------------------------------------------
+ Traffic Widget
+ ---------------------------------------------------------------------------- */
+.traffic-widget {
+ width: 200px;
+ min-width: 200px;
+ max-width: 200px;
+}
+
+.traffic-widget .download {
+ color: var(--color-traffic-download);
+ font-family: var(--font-mono);
+ font-weight: var(--font-weight-semibold);
+}
+
+*.dark .traffic-widget .download {
+ color: var(--color-dark-traffic-download);
+}
+
+.traffic-widget .upload {
+ color: var(--color-traffic-upload);
+ font-family: var(--font-mono);
+ font-weight: var(--font-weight-semibold);
+}
+
+*.dark .traffic-widget .upload {
+ color: var(--color-dark-traffic-upload);
+}
+
+.traffic-menu {
+ background-color: var(--color-background-elevated);
+ border: 1px solid var(--color-stroke-surface);
+ border-radius: var(--radius-medium);
+ min-width: var(--width-menu-md);
+ padding: var(--space-12);
+}
+
+*.dark .traffic-menu {
+ background-color: var(--color-dark-background-elevated);
+ border: 1px solid var(--color-dark-stroke-surface);
+}
+
+.traffic-menu .header .title {
+ padding: var(--space-12);
+ font-size: var(--font-size-subtitle);
+ font-weight: var(--font-weight-bold);
+ color: var(--color-text-primary);
+}
+
+*.dark .traffic-menu .header .title {
+ color: var(--color-dark-text-primary);
+}
+
+.traffic-menu .header .reset-button {
+ font-size: var(--font-size-caption);
+ padding: var(--space-4) var(--space-8);
+ margin-right: var(--space-12);
+ border-radius: var(--radius-medium);
+ font-weight: var(--font-weight-semibold);
+ background-color: transparent;
+ border: 1px solid transparent;
+ color: var(--color-text-secondary);
+}
+
+*.dark .traffic-menu .header .reset-button {
+ color: var(--color-dark-text-secondary);
+}
+
+.traffic-menu .reset-button:hover {
+ color: var(--color-text-primary);
+ background-color: var(--color-subtle-fill-hover);
+ border: 1px solid var(--color-stroke-control-default);
+}
+
+*.dark .traffic-menu .reset-button:hover {
+ color: var(--color-dark-text-primary);
+ background-color: var(--color-dark-subtle-fill-hover);
+ border: 1px solid var(--color-dark-stroke-control-default);
+}
+
+/* Speed column styles */
+.traffic-menu .download-speed,
+.traffic-menu .upload-speed {
+ background-color: transparent;
+ padding: var(--space-8);
+ margin: var(--space-12) var(--space-8) 0;
+}
+
+.traffic-menu .speed-separator {
+ max-width: 1px;
+ background-color: var(--color-stroke-divider);
+ margin: var(--space-24) 0 var(--space-12) 0;
+}
+
+*.dark .traffic-menu .speed-separator {
+ background-color: var(--color-dark-stroke-divider);
+}
+
+.traffic-menu .upload-speed-value,
+.traffic-menu .download-speed-value {
+ font-size: var(--font-size-title);
+ font-weight: var(--font-weight-bold);
+ color: var(--color-text-primary);
+}
+
+*.dark .traffic-menu .upload-speed-value,
+*.dark .traffic-menu .download-speed-value {
+ color: var(--color-dark-text-primary);
+}
+
+.traffic-menu .upload-speed-unit,
+.traffic-menu .download-speed-unit {
+ font-size: var(--font-size-body);
+ font-weight: var(--font-weight-semibold);
+ padding-top: var(--space-4);
+ color: var(--color-text-secondary);
+}
+
+*.dark .traffic-menu .upload-speed-unit,
+*.dark .traffic-menu .download-speed-unit {
+ color: var(--color-dark-text-secondary);
+}
+
+.traffic-menu .upload-speed-placeholder,
+.traffic-menu .download-speed-placeholder {
+ color: var(--color-text-tertiary);
+ font-size: var(--font-size-caption);
+ padding-bottom: var(--space-12);
+}
+
+*.dark .traffic-menu .upload-speed-placeholder,
+*.dark .traffic-menu .download-speed-placeholder {
+ color: var(--color-dark-text-tertiary);
+}
+
+/* Section and data styles */
+.traffic-menu .section-title {
+ font-size: var(--font-size-caption);
+ font-weight: var(--font-weight-semibold);
+ color: var(--color-text-primary);
+ margin-bottom: var(--space-4);
+}
+
+*.dark .traffic-menu .section-title {
+ color: var(--color-dark-text-primary);
+}
+
+.traffic-menu .session-section,
+.traffic-menu .today-section,
+.traffic-menu .alltime-section {
+ margin: var(--space-8);
+ padding: 0 var(--space-8) var(--space-8);
+ background-color: transparent;
+}
+
+.traffic-menu .data-text {
+ font-size: var(--font-size-body);
+ color: var(--color-text-secondary);
+ padding: var(--space-2);
+}
+
+*.dark .traffic-menu .data-text {
+ color: var(--color-dark-text-secondary);
+}
+
+.traffic-menu .data-value {
+ font-weight: var(--font-weight-semibold);
+ font-size: var(--font-size-body);
+ padding: var(--space-2);
+ color: var(--color-text-primary);
+}
+
+*.dark .traffic-menu .data-value {
+ color: var(--color-dark-text-primary);
+}
+
+/* Interface and Internet info styles */
+.traffic-menu .interface-info {
+ margin-top: var(--space-8);
+ border-top: 1px solid var(--color-stroke-divider);
+ padding: var(--space-4) 0;
+ font-size: var(--font-size-caption);
+ color: var(--color-text-secondary);
+ font-family: var(--font-text);
+}
+
+*.dark .traffic-menu .interface-info {
+ border-top: 1px solid var(--color-dark-stroke-divider);
+ color: var(--color-dark-text-secondary);
+}
+
+.traffic-menu .internet-info {
+ font-size: var(--font-size-caption);
+ color: var(--color-text-secondary);
+ padding: var(--space-4) 0;
+ font-family: var(--font-text);
+}
+
+*.dark .traffic-menu .internet-info {
+ color: var(--color-dark-text-secondary);
+}
+
+.traffic-menu .internet-info.connected {
+ background-color: var(--color-success-bg);
+ color: var(--color-success);
+ padding: var(--space-4) var(--space-8);
+ border-radius: var(--radius-small);
+}
+
+*.dark .traffic-menu .internet-info.connected {
+ background-color: var(--color-dark-success-bg);
+ color: var(--color-dark-success);
+}
+
+.traffic-menu .internet-info.disconnected {
+ background-color: var(--color-error-bg);
+ color: var(--color-error);
+ padding: var(--space-4) var(--space-8);
+ border-radius: var(--radius-small);
+}
+
+*.dark .traffic-menu .internet-info.disconnected {
+ background-color: var(--color-dark-error-bg);
+ color: var(--color-dark-error);
+}
+
+/* ----------------------------------------------------------------------------
+ Disk Widget
+ ---------------------------------------------------------------------------- */
+.disk-widget .widget-container .icon {
+ font-family: var(--font-icon-2);
+ font-size: var(--font-size-body);
+}
+
+.disk-widget .widget-container .label {
+ color: var(--color-text-secondary);
+ font-family: var(--font-mono);
+ font-weight: var(--font-weight-semibold);
+}
+
+*.dark .disk-widget .widget-container .label {
+ color: var(--color-dark-text-secondary);
+}
+
+.disk-group {
+ background-color: var(--color-background-elevated);
+ border: 1px solid var(--color-stroke-surface);
+ border-radius: var(--radius-medium);
+ padding: var(--space-8);
+}
+
+*.dark .disk-group {
+ background-color: var(--color-dark-background-elevated);
+ border: 1px solid var(--color-dark-stroke-surface);
+}
+
+.disk-group-row {
+ min-width: 250px;
+ max-width: 300px;
+ min-height: var(--height-item-md);
+ max-height: var(--height-item-md);
+ margin: 0;
+ padding: var(--space-12);
+ border-radius: var(--radius-medium);
+ border: 1px solid transparent;
+}
+
+.disk-group-row:hover {
+ background-color: var(--color-subtle-fill-hover);
+ border: 1px solid var(--color-stroke-control-default);
+}
+
+*.dark .disk-group-row:hover {
+ background-color: var(--color-dark-subtle-fill-hover);
+ border: 1px solid var(--color-dark-stroke-control-default);
+}
+
+.disk-group-label-bar {
+ margin-bottom: var(--space-8);
+ max-height: var(--space-6);
+ border: 0px solid transparent;
+ background-color: var(--color-surface-secondary);
+ border-radius: var(--radius-small);
+}
+
+*.dark .disk-group-label-bar {
+ background-color: var(--color-dark-surface-secondary);
+}
+
+.disk-group-label-bar::chunk {
+ background-color: var(--color-success);
+ border-radius: var(--radius-small);
+}
+
+*.dark .disk-group-label-bar::chunk {
+ background-color: var(--color-dark-success);
+}
+
+.disk-group-label {
+ font-size: var(--font-size-body);
+ color: var(--color-text-primary);
+}
+
+*.dark .disk-group-label {
+ color: var(--color-dark-text-primary);
+}
+
+.disk-group-label-size {
+ font-size: var(--font-size-body);
+ color: var(--color-text-secondary);
+}
+
+*.dark .disk-group-label-size {
+ color: var(--color-dark-text-secondary);
+}
+
+/* ----------------------------------------------------------------------------
+ Microphone Widget
+ ---------------------------------------------------------------------------- */
+.microphone-widget .icon {
+ font-family: var(--font-icon);
+ font-size: var(--font-size-body);
+ padding-left: var(--space-4);
+}
+
+.microphone-widget .widget-container .label {
+ color: var(--color-text-secondary);
+ font-family: var(--font-mono);
+ font-weight: var(--font-weight-semibold);
+}
+
+*.dark .microphone-widget .widget-container .label {
+ color: var(--color-dark-text-secondary);
+}
+
+.microphone-menu {
+ background-color: var(--color-background-elevated);
+ border: 1px solid var(--color-stroke-surface);
+ border-radius: var(--radius-medium);
+ min-width: var(--width-menu-md);
+ padding: var(--space-8);
+}
+
+*.dark .microphone-menu {
+ background-color: var(--color-dark-background-elevated);
+ border: 1px solid var(--color-dark-stroke-surface);
+}
+
+.microphone-menu .system-volume-container .volume-slider {
+ border: none;
+}
+
+.microphone-menu .microphone-container .device {
+ background-color: transparent;
+ border: none;
+ padding: var(--space-4) var(--space-8);
+ margin: var(--space-2) 0;
+ font-size: var(--font-size-body);
+ color: var(--color-text-secondary);
+ border-radius: var(--radius-small);
+}
+
+*.dark .microphone-menu .microphone-container .device {
+ color: var(--color-dark-text-secondary);
+}
+
+.microphone-menu .microphone-container .device:hover {
+ background-color: var(--color-subtle-fill-hover);
+ color: var(--color-text-primary);
+}
+
+*.dark .microphone-menu .microphone-container .device:hover {
+ background-color: var(--color-dark-subtle-fill-hover);
+ color: var(--color-dark-text-primary);
+}
+
+.microphone-menu .microphone-container .device.selected {
+ background-color: var(--color-subtle-fill-rest);
+ color: var(--color-text-primary);
+}
+
+*.dark .microphone-menu .microphone-container .device.selected {
+ background-color: var(--color-dark-subtle-fill-rest);
+ color: var(--color-dark-text-primary);
+}
+
+/* ----------------------------------------------------------------------------
+ Volume Widget
+ ---------------------------------------------------------------------------- */
+.volume-widget .icon {
+ font-family: var(--font-icon);
+ font-size: var(--font-size-body);
+ padding-left: var(--space-4);
+}
+
+.volume-widget .widget-container .label {
+ color: var(--color-text-secondary);
+ font-family: var(--font-mono);
+ font-weight: var(--font-weight-semibold);
+}
+
+*.dark .volume-widget .widget-container .label {
+ color: var(--color-dark-text-secondary);
+}
+
+.audio-menu {
+ background-color: var(--color-background-elevated);
+ border: 1px solid var(--color-stroke-surface);
+ border-radius: var(--radius-medium);
+ min-width: var(--width-menu-md);
+ padding: var(--space-8);
+}
+
+*.dark .audio-menu {
+ background-color: var(--color-dark-background-elevated);
+ border: 1px solid var(--color-dark-stroke-surface);
+}
+
+.audio-menu .system-volume-container .volume-slider {
+ border: none;
+}
+
+.audio-menu .audio-container .device {
+ background-color: transparent;
+ border: none;
+ padding: var(--space-4) var(--space-8);
+ margin: var(--space-2) 0;
+ font-size: var(--font-size-body);
+ color: var(--color-text-secondary);
+ border-radius: var(--radius-small);
+}
+
+*.dark .audio-menu .audio-container .device {
+ color: var(--color-dark-text-secondary);
+}
+
+.audio-menu .audio-container .device:hover {
+ background-color: var(--color-subtle-fill-hover);
+ color: var(--color-text-primary);
+}
+
+*.dark .audio-menu .audio-container .device:hover {
+ background-color: var(--color-dark-subtle-fill-hover);
+ color: var(--color-dark-text-primary);
+}
+
+.audio-menu .audio-container .device.selected {
+ background-color: var(--color-subtle-fill-rest);
+ color: var(--color-text-primary);
+}
+
+*.dark .audio-menu .audio-container .device.selected {
+ background-color: var(--color-dark-subtle-fill-rest);
+ color: var(--color-dark-text-primary);
+}
+
+.audio-menu .toggle-apps {
+ background-color: transparent;
+ border: none;
+ padding: var(--space-4);
+ margin: 0;
+ min-height: var(--size-icon-btn);
+ min-width: var(--size-icon-btn);
+ border-radius: var(--radius-small);
+}
+
+.audio-menu .toggle-apps:hover {
+ background-color: var(--color-subtle-fill-hover);
+}
+
+*.dark .audio-menu .toggle-apps:hover {
+ background-color: var(--color-dark-subtle-fill-hover);
+}
+
+.audio-menu .toggle-apps.expanded {
+ background-color: var(--color-subtle-fill-rest);
+}
+
+*.dark .audio-menu .toggle-apps.expanded {
+ background-color: var(--color-dark-subtle-fill-rest);
+}
+
+.audio-menu .apps-container {
+ padding: var(--space-8);
+ margin-top: var(--space-12);
+ border-radius: var(--radius-medium);
+ background-color: var(--color-surface-secondary);
+ border: 1px solid var(--color-stroke-divider);
+}
+
+*.dark .audio-menu .apps-container {
+ background-color: var(--color-dark-surface-secondary);
+ border: 1px solid var(--color-dark-stroke-divider);
+}
+
+.audio-menu .apps-container .app-volume .app-icon-container {
+ min-width: var(--size-app-icon);
+ min-height: var(--size-app-icon);
+ max-width: var(--size-app-icon);
+ max-height: var(--size-app-icon);
+ border-radius: var(--radius-small);
+ margin-right: var(--space-8);
+}
+
+.audio-menu .apps-container .app-volume .app-icon-container:hover {
+ background-color: var(--color-subtle-fill-hover);
+}
+
+*.dark .audio-menu .apps-container .app-volume .app-icon-container:hover {
+ background-color: var(--color-dark-subtle-fill-hover);
+}
+
+/* ----------------------------------------------------------------------------
+ Brightness Widget
+ ---------------------------------------------------------------------------- */
+.brightness-widget .widget-container .icon {
+ font-family: var(--font-icon);
+ padding-left: var(--space-4);
+}
+
+.brightness-widget .widget-container .label {
+ color: var(--color-text-secondary);
+ font-family: var(--font-mono);
+ font-weight: var(--font-weight-semibold);
+}
+
+*.dark .brightness-widget .widget-container .label {
+ color: var(--color-dark-text-secondary);
+}
+
+.brightness-menu {
+ background-color: var(--color-background-elevated);
+ border: 1px solid var(--color-stroke-surface);
+ border-radius: var(--radius-medium);
+ min-width: var(--width-menu-md);
+ padding: var(--space-8);
+}
+
+*.dark .brightness-menu {
+ background-color: var(--color-dark-background-elevated);
+ border: 1px solid var(--color-dark-stroke-surface);
+}
+
+.brightness-menu .slider-container {
+ padding: var(--space-4);
+}
+
+/* ----------------------------------------------------------------------------
+ WiFi Widget
+ ---------------------------------------------------------------------------- */
+.wifi-widget .widget-container .icon {
+ font-family: var(--font-icon);
+ padding-left: var(--space-4);
+}
+
+.wifi-widget .widget-container .label {
+ color: var(--color-text-secondary);
+ font-family: var(--font-mono);
+ font-weight: var(--font-weight-semibold);
+}
+
+*.dark .wifi-widget .widget-container .label {
+ color: var(--color-dark-text-secondary);
+}
+
+/* Menu Container */
+.wifi-menu {
+ font-family: var(--font-primary);
+ background-color: var(--color-background-elevated);
+ border: 1px solid var(--color-stroke-surface);
+ border-radius: var(--radius-medium);
+ min-height: 400px;
+ max-height: 450px;
+ min-width: var(--width-menu-lg);
+ padding: var(--space-8);
+}
+
+*.dark .wifi-menu {
+ background-color: var(--color-dark-background-elevated);
+ border: 1px solid var(--color-dark-stroke-surface);
+}
+
+/* Header */
+.wifi-menu .header {
+ font-size: var(--font-size-subtitle);
+ font-weight: var(--font-weight-bold);
+ margin-bottom: var(--space-8);
+ padding: var(--space-8);
+ background-color: transparent;
+ color: var(--color-text-primary);
+ border-bottom: 1px solid var(--color-stroke-divider);
+}
+
+*.dark .wifi-menu .header {
+ color: var(--color-dark-text-primary);
+ border-bottom: 1px solid var(--color-dark-stroke-divider);
+}
+
+/* WiFi List */
+.wifi-menu .wifi-list {
+ background-color: transparent;
+ margin: var(--space-2);
+}
+
+/* WiFi Item */
+.wifi-menu .wifi-item {
+ min-height: var(--height-item-md);
+ padding: var(--space-4) var(--space-12);
+ margin: var(--space-2) 0;
+ border-radius: var(--radius-small);
+ border: 1px solid transparent;
+}
+
+.wifi-menu .wifi-item:hover {
+ background-color: var(--color-subtle-fill-hover);
+ border-color: var(--color-stroke-control-default);
+}
+
+*.dark .wifi-menu .wifi-item:hover {
+ background-color: var(--color-dark-subtle-fill-hover);
+ border-color: var(--color-dark-stroke-control-default);
+}
+
+.wifi-menu .wifi-item[active="true"] {
+ background-color: var(--color-subtle-fill-rest);
+ border: 1px solid var(--color-accent-default);
+ min-height: var(--height-item-lg);
+}
+
+*.dark .wifi-menu .wifi-item[active="true"] {
+ background-color: var(--color-dark-subtle-fill-rest);
+ border: 1px solid var(--color-dark-accent-default);
+}
+
+/* Item Text & Icons */
+.wifi-menu .wifi-item .icon {
+ font-family: var(--font-icon);
+ font-size: var(--font-size-title);
+ margin-right: var(--space-12);
+ color: var(--color-text-secondary);
+}
+
+*.dark .wifi-menu .wifi-item .icon {
+ color: var(--color-dark-text-secondary);
+}
+
+.wifi-menu .wifi-item .name {
+ font-size: var(--font-size-body-strong);
+ font-weight: var(--font-weight-semibold);
+ color: var(--color-text-primary);
+}
+
+*.dark .wifi-menu .wifi-item .name {
+ color: var(--color-dark-text-primary);
+}
+
+.wifi-menu .wifi-item .status {
+ font-size: var(--font-size-caption);
+ color: var(--color-text-tertiary);
+}
+
+*.dark .wifi-menu .wifi-item .status {
+ color: var(--color-dark-text-tertiary);
+}
+
+/* Connect Button */
+.wifi-menu .wifi-item .connect {
+ background-color: var(--color-accent-default);
+ color: white;
+ padding: var(--space-4) var(--space-16);
+ border-radius: var(--radius-small);
+ border: none;
+ font-weight: var(--font-weight-semibold);
+ margin-top: var(--space-8);
+}
+
+*.dark .wifi-menu .wifi-item .connect {
+ background-color: var(--color-dark-accent-default);
+ color: black;
+}
+
+.wifi-menu .wifi-item .connect:hover {
+ background-color: var(--color-accent-secondary);
+}
+
+/* Footer */
+.wifi-menu .footer {
+ font-size: var(--font-size-caption);
+ padding: var(--space-8);
+ margin-top: var(--space-8);
+ color: var(--color-text-tertiary);
+ background-color: transparent;
+ border-top: 1px solid var(--color-stroke-divider);
+ display: flex;
+ justify-content: space-between;
+}
+
+*.dark .wifi-menu .footer {
+ color: var(--color-dark-text-tertiary);
+ border-top: 1px solid var(--color-dark-stroke-divider);
+}
+
+.wifi-menu .footer .refresh-icon {
+ font-family: var(--font-icon);
+ background-color: transparent;
+ border: none;
+ font-size: var(--font-size-subtitle);
+ color: var(--color-text-primary);
+}
+
+*.dark .wifi-menu .footer .refresh-icon {
+ color: var(--color-dark-text-primary);
+}
+
+.wifi-menu .footer .refresh-icon:hover {
+ color: var(--color-accent-default);
+}
+
+/* ----------------------------------------------------------------------------
+ Bluetooth Widget
+ ---------------------------------------------------------------------------- */
+.bluetooth-widget .widget-container .icon {
+ font-family: var(--font-icon);
+ font-size: var(--font-size-body);
+ padding-left: var(--space-4);
+}
+
+.bluetooth-widget .widget-container .label {
+ color: var(--color-text-secondary);
+ font-family: var(--font-text);
+ font-weight: var(--font-weight-semibold);
+}
+
+*.dark .bluetooth-widget .widget-container .label {
+ color: var(--color-dark-text-secondary);
+}
+
+/* --- Bluetooth States --- */
+
+/* OFF */
+.bluetooth-widget.bluetooth-off .widget-container .icon {
+ color: var(--color-text-disabled);
+}
+*.dark .bluetooth-widget.bluetooth-off .widget-container .icon {
+ color: var(--color-dark-text-disabled);
+}
+
+/* ON */
+.bluetooth-widget.bluetooth-on .widget-container .icon {
+ color: var(--color-accent-default);
+}
+*.dark .bluetooth-widget.bluetooth-on .widget-container .icon {
+ color: var(--color-dark-accent-default);
+}
+
+/* CONNECTED */
+.bluetooth-widget.bluetooth-connected .widget-container .icon {
+ color: var(--color-accent-default);
+}
+.bluetooth-widget.bluetooth-connected .widget-container .label {
+ color: var(--color-text-primary);
+}
+
+*.dark .bluetooth-widget.bluetooth-connected .widget-container .icon {
+ color: var(--color-dark-accent-default);
+}
+*.dark .bluetooth-widget.bluetooth-connected .widget-container .label {
+ color: var(--color-dark-text-primary);
+}
+
+/* ----------------------------------------------------------------------------
+ Battery Widget
+ ---------------------------------------------------------------------------- */
+.battery-widget .widget-container .icon {
+ font-family: var(--font-icon);
+ font-size: var(--font-size-body);
+ padding-left: var(--space-4);
+}
+
+.battery-widget .widget-container .label {
+ color: var(--color-text-secondary);
+ font-family: var(--font-mono);
+ font-weight: var(--font-weight-semibold);
+}
+
+*.dark .battery-widget .widget-container .label {
+ color: var(--color-dark-text-secondary);
+}
+
+/* --- Battery States --- */
+
+/* Critical (Red) */
+.battery-widget .widget-container .icon.status-critical {
+ color: var(--color-error);
+}
+*.dark .battery-widget .widget-container .icon.status-critical {
+ color: var(--color-dark-error);
+}
+
+/* Low (Orange/Warning) */
+.battery-widget .widget-container .icon.status-low {
+ color: var(--color-warning);
+}
+*.dark .battery-widget .widget-container .icon.status-low {
+ color: var(--color-dark-warning);
+}
+
+/* Medium (Standard Text Color) */
+.battery-widget .widget-container .icon.status-medium {
+ color: var(--color-text-secondary);
+}
+*.dark .battery-widget .widget-container .icon.status-medium {
+ color: var(--color-dark-text-secondary);
+}
+
+/* High/Full (Green) */
+.battery-widget .widget-container .icon.status-high,
+.battery-widget .widget-container .icon.status-full {
+ color: var(--color-success);
+}
+*.dark .battery-widget .widget-container .icon.status-high,
+*.dark .battery-widget .widget-container .icon.status-full {
+ color: var(--color-dark-success);
+}
+
+/* Charging (Accent Blue) */
+.battery-widget .widget-container .icon.status-charging {
+ color: var(--color-accent-default);
+}
+*.dark .battery-widget .widget-container .icon.status-charging {
+ color: var(--color-dark-accent-default);
+}
+
+/* Charging Animation */
+@keyframes blink {
+ 0% {
+ opacity: 1;
+ }
+ 50% {
+ opacity: 0.4;
+ }
+ 100% {
+ opacity: 1;
+ }
+}
+
+.battery-widget .widget-container .icon.status-charging.blink {
+ animation: blink 2s infinite ease-in-out;
+}
+
+/* ----------------------------------------------------------------------------
+ Clock Widget
+ ---------------------------------------------------------------------------- */
+.clock-widget .widget-container {
+ background-color: transparent;
+ border: transparent;
+}
+
+.clock-widget .widget-container .icon {
+ margin-right: var(--space-8);
+ padding-left: var(--space-4);
+}
+
+.clock-widget .label {
+ font-family: var(--font-text);
+ font-size: var(--font-size-body-strong);
+ font-weight: var(--font-weight-regular);
+}
+
+/* ----------------------------------------------------------------------------
+ Calendar Flyout
+ ---------------------------------------------------------------------------- */
+.calendar {
+ padding: var(--space-12);
+ border: 1px solid var(--color-stroke-surface);
+ border-radius: var(--radius-medium);
+ background-color: var(--color-background-elevated);
+}
+
+*.dark .calendar {
+ border: 1px solid var(--color-dark-stroke-surface);
+ background-color: var(--color-dark-background-elevated);
+}
+
+.calendar .calendar-table::item:selected {
+ background-color: var(--color-accent-default);
+ color: var(--color-background-base);
+ border-radius: var(--radius-small);
+}
+
+*.dark .calendar .calendar-table::item:selected {
+ background-color: var(--color-dark-accent-default);
+ color: var(--color-dark-background-base);
+}
+
+.calendar .day-label,
+.calendar .month-label,
+.calendar .date-label {
+ font-family: var(--font-primary);
+ color: var(--color-text-primary);
+ min-width: var(--width-menu-sm);
+ max-width: var(--width-menu-sm);
+}
+
+*.dark .calendar .day-label,
+*.dark .calendar .month-label,
+*.dark .calendar .date-label {
+ color: var(--color-dark-text-primary);
+}
+
+.calendar .month-label {
+ font-size: var(--font-size-body-strong);
+ font-weight: var(--font-weight-semibold);
+ margin-top: var(--space-16);
+}
+
+.calendar .day-label {
+ font-size: var(--font-size-subtitle);
+ font-weight: var(--font-weight-semibold);
+ margin-top: var(--space-8);
+}
+
+.calendar .date-label {
+ font-size: var(--font-size-display);
+ font-weight: var(--font-weight-bold);
+ margin-top: -var(--space-8);
+}
+
+/* ----------------------------------------------------------------------------
+ Weather Widget
+ ---------------------------------------------------------------------------- */
+.weather-widget .widget-container {
+ background-color: transparent;
+ border: transparent;
+}
+
+.weather-widget .widget-container .icon {
+ margin-right: var(--space-8);
+ padding-left: var(--space-4);
+}
+
+.weather-widget .label {
+ font-family: var(--font-text);
+ font-size: var(--font-size-body-strong);
+ font-weight: var(--font-weight-regular);
+}
+
+/* ----------------------------------------------------------------------------
+ Power Menu Widget
+ ---------------------------------------------------------------------------- */
+.power-menu-widget .widget-container {
+ background-color: transparent;
+ border: 0;
+}
+
+.power-menu-widget .widget-container:hover {
+ background-color: transparent;
+}
+
+.power-menu-widget .label {
+ font-family: var(--font-icon);
+ font-size: var(--font-size-body);
+ color: var(--color-dark-error);
+ font-weight: var(--font-weight-semibold);
+}
+
+*.dark .power-menu-widget .label {
+ color: var(--color-dark-error);
+}
+
+.power-menu-widget .label:hover {
+ color: var(--color-accent-default);
+}
+
+*.dark .power-menu-widget .label:hover {
+ color: var(--color-dark-accent-default);
+}
+
+.power-menu-popup {
+ border-radius: var(--radius-large);
+ border: 1px solid var(--color-dark-stroke-surface);
+ padding: var(--space-12);
+}
+
+.power-menu-popup .button {
+ width: var(--width-menu-sm);
+ height: var(--height-item-lg);
+ padding: var(--space-12);
+ margin: var(--space-4);
+
+ background-color: var(--color-dark-subtle-fill-rest);
+ border: 1px solid var(--color-dark-stroke-control-default);
+ border-radius: var(--radius-medium);
+
+ color: var(--color-dark-text-primary);
+ font-family: var(--font-primary);
+
+ cursor: pointer;
+}
+
+.power-menu-popup .button:hover,
+.power-menu-popup .button.hover {
+ background-color: var(--color-dark-subtle-fill-hover);
+ border-color: var(--color-dark-stroke-focus);
+}
+
+.power-menu-popup .button:active {
+ background-color: var(--color-dark-subtle-fill-pressed);
+}
+
+.power-menu-popup .button .label {
+ font-size: var(--font-size-body-strong);
+ font-weight: var(--font-weight-semibold);
+ color: var(--color-dark-text-primary);
+ margin-bottom: var(--space-4);
+}
+.power-menu-popup .button .icon {
+ font-size: var(--font-size-icon-large);
+ color: var(--color-dark-text-tertiary);
+ margin-top: var(--space-12);
+}
+
+.power-menu-popup .button.shutdown .icon {
+ font-family: var(--font-icon);
+ color: var(--color-dark-accent-default);
+}
+
+.power-menu-popup .button.cancel .icon {
+ color: var(--color-dark-error);
+}
+
+.uptime {
+ font-size: var(--font-size-subtitle);
+ font-weight: var(--font-weight-semibold);
+ color: var(--color-dark-text-primary);
+ margin-bottom: var(--space-8);
+}