--- name: powertoys_config_path kind: function lang: py domain: infra version: "1.0.0" purity: pure signature: "def powertoys_config_path(user: str | None = None) -> str" description: "Devuelve el path al default.json de PowerToys Keyboard Manager. Soporta WSL, Windows nativo y override via env var POWERTOYS_CONFIG." tags: [powertoys, keyboard, windows, wsl, config, path] uses_functions: [] uses_types: [] returns: [] returns_optional: false error_type: "" imports: [os, platform] params: - name: user desc: "Nombre de usuario Windows. Si es None, lee $USER del entorno. Solo relevante en WSL." output: "Path absoluto al archivo default.json de PowerToys Keyboard Manager (el archivo puede no existir)." tested: false tests: [] test_file_path: "" file_path: "python/functions/infra/powertoys_config_path.py" notes: | Clasificada como pure por convencion del registry: sin estado mutable, determinista dado el entorno. Lee env vars ($POWERTOYS_CONFIG, $USER, $LOCALAPPDATA, $WSL_DISTRO_NAME) que se tratan como parametros implicitos del entorno — comportamiento identico al de funciones puras de configuracion. Prioridad de resolucion: (1) $POWERTOYS_CONFIG override, (2) WSL path con /mnt/c, (3) Windows nativo. --- ## Ejemplo ```python from infra.powertoys_config_path import powertoys_config_path # WSL con usuario actual path = powertoys_config_path() # => /mnt/c/Users/lucas/AppData/Local/Microsoft/PowerToys/Keyboard Manager/default.json # Override explicito import os os.environ["POWERTOYS_CONFIG"] = "/tmp/test_powertoys.json" path = powertoys_config_path() # => /tmp/test_powertoys.json ``` ## Notas Detecta WSL verificando `/mnt/c` y las variables `WSL_DISTRO_NAME` / `WSLENV`. En Windows nativo usa `%LOCALAPPDATA%`. El archivo puede no existir si PowerToys no esta instalado.