---
name: powertoys_shortcut_remove
kind: function
lang: py
domain: infra
version: "1.0.0"
purity: impure
signature: "def powertoys_shortcut_remove(keys: list[str], config_path: str | None = None) -> bool"
description: "Elimina un atajo global del config de PowerToys Keyboard Manager por combinacion de teclas. Devuelve True si se elimino, False si no existia."
tags: [powertoys, keyboard, windows, wsl, shortcut, config, write, remove, delete, pendiente-usar]
uses_functions: []
uses_types: []
returns: []
returns_optional: false
error_type: "error_py_core"
imports: [json, os]
params:
  - name: keys
    desc: "Lista de nombres de teclas (case-insensitive) que identifican el atajo a eliminar. Debe coincidir exactamente con las teclas usadas al crear el atajo. Ej: ['lctrl', 'lalt', 't']."
  - name: config_path
    desc: "Path al default.json. Si None, usa $POWERTOYS_CONFIG o el path WSL por defecto para $USER."
output: "True si se encontro y elimino el atajo, False si no existia ninguna entrada con esas teclas."
tested: false
tests: []
test_file_path: ""
file_path: "python/functions/infra/powertoys_shortcut_remove.py"
notes: |
  error_py_core no existe en el registry. Esta funcion lanza excepciones nativas de Python:
  FileNotFoundError si config_path no existe, json.JSONDecodeError si el JSON es invalido,
  ValueError si un nombre de tecla no esta en VK_CODES.

  La coincidencia se hace contra el string originalKeys canonico (semicolon-separated VK codes).
  Si las teclas se pasaron en un orden diferente al guardado, no coincidiran — el orden importa.

  El JSON se escribe en formato compacto (separators=(",", ":")) sin espacios ni saltos de linea.
---

## Ejemplo

```python
from infra.powertoys_shortcut_remove import powertoys_shortcut_remove

removed = powertoys_shortcut_remove(["lctrl", "lalt", "t"])
if removed:
    print("Atajo eliminado correctamente")
else:
    print("El atajo no existia")
```

## Notas

Despues de modificar el config, PowerToys necesita reiniciarse para detectar los cambios.
Usar `powertoys_restart_py_infra` para recargar la configuracion automaticamente.
