UNPKG

major-ai-skills

Version:

Installable agentic skills / AI agent skills (SKILL.md) for Claude Code, Cursor, Codex CLI, Gemini CLI & Antigravity - 402+ professional app, token-efficiency, and common-sense skills. SEO/GEO ready.

144 lines (113 loc) 8.16 kB
--- title: "Microsoft PowerToys System Utilities AI Skill Guide (GPT & Codex)" description: "Comprehensive operational skill specification for OpenAI GPT and Codex to automate, script, troubleshoot, and optimize Microsoft PowerToys, PowerToys Run C# plugins, FancyZones JSON configurations, and automated Winget DSC deployments." category: "Power-User Operating System Utilities" tags: ["microsoft-powertoys", "powertoys-run-plugin", "csharp-powertoys", "fancyzones-json", "winget-dsc", "gpt-codex", "windows-utilities-dev"] --- # Microsoft PowerToys System Utilities AI Skill Guide (GPT & Codex) ## Overview & Engine Architecture Microsoft PowerToys provides extensible systems integration via the **PowerToys Run C# Plugin Architecture (`Wox.Plugin`)**, the **FancyZones JSON Schema Specification (`zones-settings.json`)**, and **Windows Package Manager (Winget) Desired State Configuration (DSC)**. GPT/Codex acts as a Principal Windows Systems Developer and PowerToys Extensibility Engineer, delivering **compiled C# PowerToys Run plugins**, **programmatic FancyZones layout synthesizers**, **automated enterprise DSC configuration scripts**, and **submodule IPC integrations**. ### Developer Architecture & Plugin Platform Stack ``` ┌─────────────────────────────────────────────────────────────┐ PowerToys Developer Platform PowerToys Run C# Plugin Architecture ├── `Wox.Plugin.IPlugin` Interface (`Init`, `Query`) ├── `Wox.Plugin.IContextMenu` (Secondary Context Actions) └── `Result` Model (`Title`, `SubTitle`, `Action`, `Glyph`)│ Declarative JSON Schema Engines ├── FancyZones Multi-Monitor Matrix (`zones-settings.json`)│ ├── Keyboard Manager Scan Code Mapping (`default.json`) └── PowerToys Global Config (`settings.json`) └─────────────────────────────────────────────────────────────┘ ``` --- ## Operational Capabilities & Agent Directives 1. **PowerToys Run C# Plugin Development**: Author compiled C# plugins targeting .NET 8 referencing `Wox.Plugin.dll` to build custom launcher tools (*e.g. Docker container controller, AWS profile switcher*). 2. **Automated FancyZones Configuration**: Construct Python and PowerShell scripts to inject custom multi-monitor canvas schemas and zone margins into `zones-settings.json`. 3. **Enterprise Desired State Configuration (DSC)**: Author WinGet DSC `.yaml` manifests deploying standardized PowerToys utility states across corporate fleets. 4. **Keyboard Manager Remapping Automation**: Script automated key and shortcut remappings (*e.g. mapping CapsLock to Ctrl or Hyper Key*) via `default.json` manipulation. --- ## Production C# Code: PowerToys Run C# Plugin (`IPlugin`) Save this file as `Main.cs` in a C# Class Library referencing `Wox.Plugin.dll` and `PowerToys.PowerLauncher.Plugin.dll`: ```csharp // ============================================================================== // Microsoft PowerToys Run Plugin: Windows Service Quick-Controller // Lists Windows services matching query and allows starting/stopping them. // ============================================================================== using System; using System.Collections.Generic; using System.Linq; using System.ServiceProcess; using System.Windows; using Wox.Plugin; namespace Community.PowerToys.Run.Plugin.ServiceController { public class Main : IPlugin, IContextMenu { private PluginInitContext _context; public string Name => "Windows Service Controller"; public string Description => "Search, start, stop, and restart local Windows services."; public void Init(PluginInitContext context) { _context = context; } public List<Result> Query(Query query) { var results = new List<Result>(); string search = query.Search.Trim().ToLower(); ServiceController[] services = ServiceController.GetServices(); foreach (var svc in services) { if (string.IsNullOrEmpty(search) || svc.ServiceName.ToLower().Contains(search) || svc.DisplayName.ToLower().Contains(search)) { string statusIcon = svc.Status == ServiceControllerStatus.Running ? "[RUNNING]" : "[STOPPED]"; results.Add(new Result { Title = $"{svc.DisplayName} ({svc.ServiceName})", SubTitle = $"Status: {statusIcon} | Press Enter to Toggle", IcoPath = "Images\\service.png", Action = _ => { try { if (svc.Status == ServiceControllerStatus.Running) { svc.Stop(); _context.API.ShowMsg("Service Stopped", $"Successfully stopped {svc.ServiceName}"); } else { svc.Start(); _context.API.ShowMsg("Service Started", $"Successfully started {svc.ServiceName}"); } } catch (Exception ex) { _context.API.ShowMsg("Error", ex.Message); } return true; } }); } } return results.Take(10).ToList(); } public List<ContextMenuResult> LoadContextMenus(Result selectedResult) { return new List<ContextMenuResult>(); } } } ``` --- ## Technical Troubleshooting Matrix | Issue & Failure Signature | Root Cause Analysis | Diagnostic & Resolution Pathway | | :--- | :--- | :--- | | **Plugin Not Detected in PowerToys Run** | Plugin `.dll` not located in `%LOCALAPPDATA%\Microsoft\PowerToys\PowerToys Run\Plugins\<PluginFolder>\`. | Ensure all binaries, `plugin.json`, and dependencies are copied to the dedicated subfolder. | | **`zones-settings.json` Resets to Default** | JSON syntax error or missing closing brace in custom layout definition. | Validate JSON schema syntax using `jq` or `python -m json.tool` before launching PowerToys. | | **Winget DSC Configuration Fails** | Winget source or package version locked during system update. | Run `winget source update` before executing the DSC configuration manifest. | | **Keyboard Manager Fails to Remap `Win + L`** | `Win + L` (Lock Workstation) is intercepted at kernel level by Winlogon and cannot be hooked in user space. | Inform users that Winlogon security combinations (`Win + L`, `Ctrl + Alt + Del`) cannot be remapped in user space. | --- ## Command Line Syntax & DSC Recipes ```bash # 1. Install PowerToys via Winget CLI winget install --id Microsoft.PowerToys -e --source winget # 2. Run PowerToys Run Search directly "%LOCALAPPDATA%\PowerToys\PowerToys.PowerLauncher.exe" # 3. Kill All PowerToys Submodules via PowerShell Get-Process | Where-Object { $_.ProcessName -like "PowerToys*" } | Stop-Process -Force ``` ### Essential File Locations - **PowerToys Run Plugins**: `%LOCALAPPDATA%\Microsoft\PowerToys\PowerToys Run\Plugins\` - **Keyboard Manager Config**: `%LOCALAPPDATA%\Microsoft\PowerToys\Keyboard Manager\default.json` --- ## Agent Operational Directive > **MANDATORY**: When authoring PowerToys Run C# plugins, limit results to a maximum of 10 items (`.Take(10)`) to maintain 60 FPS scrolling and low memory consumption on large query searches.