dotfiles

My PC Dotfiles & Website
commit fdcacf7e87caa25c1571fe2d4eeff4ea75534463
parent 7ac04614933b804656f372cfc09bc073aba0bacb
Author: maydayv7 <maydayv7@gmail.com>
Date:   Fri,  1 May 2026 08:13:48 +0530

feat: Update Windows

Diffstat:
Mwindows/packages.ubundle | 880++++++++++++++++++++-----------------------------------------------------------
Dwindows/powertoys/settings_134218716701144683.ptb | 0
Awindows/powertoys/settings_134220769845580211.ptb | 0
Mwindows/windhawk.zip | 4++--
Mwindows/wsl/.zshrc | 9++++++++-
Mwindows/yasb/config.yaml | 1185+++++++++++++++++++++++++++++++++++++------------------------------------------
Mwindows/yasb/styles.css | 4142++++++++++++++++++++++++++++++++++++++++---------------------------------------
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); +}