feat(infra): auto-commit con 12 cambios
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
---
|
||||
name: powertoys_shortcut_add
|
||||
kind: function
|
||||
lang: py
|
||||
domain: infra
|
||||
version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "def powertoys_shortcut_add(keys: list[str], target_path: str, args: str = \"\", elevated: bool = False, exact_match: bool = False, start_in_dir: str = \"\", config_path: str | None = None) -> None"
|
||||
description: "Añade o reemplaza un atajo global en el config de PowerToys Keyboard Manager. Convierte nombres legibles de teclas a VK codes y escribe JSON compacto (una linea) para mantener compatibilidad con el formato de PowerToys."
|
||||
tags: [powertoys, keyboard, windows, wsl, shortcut, config, write, add]
|
||||
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). Ej: ['lctrl', 'lalt', 't']. Modificadores: lctrl/rctrl/ctrl, lalt/ralt/alt, lshift/rshift/shift, lwin/rwin/win. Letras: a-z. Digitos: 0-9. F-keys: f1-f12. Especiales: space, enter, tab, esc."
|
||||
- name: target_path
|
||||
desc: "Path Windows al ejecutable. Ej: 'C:\\\\Windows\\\\System32\\\\wt.exe'."
|
||||
- name: args
|
||||
desc: "Argumentos de linea de comandos para el programa (default vacio)."
|
||||
- name: elevated
|
||||
desc: "Si True, lanza el programa elevado (runProgramElevationLevel=1). Default False."
|
||||
- name: exact_match
|
||||
desc: "Si True, el atajo requiere coincidencia exacta de teclas. Default False."
|
||||
- name: start_in_dir
|
||||
desc: "Directorio de trabajo para el programa. Default string vacio."
|
||||
- name: config_path
|
||||
desc: "Path al default.json. Si None, usa $POWERTOYS_CONFIG o el path WSL por defecto para $USER."
|
||||
output: "None. Modifica el archivo default.json en disco."
|
||||
tested: false
|
||||
tests: []
|
||||
test_file_path: ""
|
||||
file_path: "python/functions/infra/powertoys_shortcut_add.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.
|
||||
|
||||
El JSON se escribe en formato compacto (separators=(",", ":")) — sin espacios ni saltos de linea —
|
||||
para mantener compatibilidad con el formato que usa PowerToys en el archivo original.
|
||||
|
||||
El dict VK_CODES mapea "ctrl"->162, "alt"->164, "shift"->160, "win"->91 como aliases
|
||||
a las variantes izquierdas. Para especificar side derecho, usar "rctrl", "ralt", etc.
|
||||
|
||||
Si ya existe una entrada con los mismos originalKeys, la reemplaza en su posicion original.
|
||||
---
|
||||
|
||||
## Ejemplo
|
||||
|
||||
```python
|
||||
from infra.powertoys_shortcut_add import powertoys_shortcut_add
|
||||
|
||||
# Anadir Ctrl+Alt+T -> Windows Terminal
|
||||
powertoys_shortcut_add(
|
||||
keys=["lctrl", "lalt", "t"],
|
||||
target_path=r"C:\Windows\System32\wt.exe",
|
||||
start_in_dir=r"C:\Users\lucas",
|
||||
)
|
||||
|
||||
# Anadir Win+Shift+E -> Explorer elevado
|
||||
powertoys_shortcut_add(
|
||||
keys=["win", "shift", "e"],
|
||||
target_path=r"C:\Windows\explorer.exe",
|
||||
elevated=True,
|
||||
)
|
||||
```
|
||||
|
||||
## Notas
|
||||
|
||||
Despues de modificar el config, PowerToys necesita reiniciarse para detectar los cambios.
|
||||
Usar `powertoys_restart_py_infra` para recargar la configuracion automaticamente.
|
||||
Reference in New Issue
Block a user