fix: rimappa shortcut annulla registrazione da Esc a Ctrl+Esc

Esc è riservato alla built-in app.interrupt di pi: la shortcut veniva
scartata con warning 'conflicts with built-in shortcut'. Rimossa anche
la registrazione ridondante 'esc' (stesso tasto fisico). Aggiornati
messaggi di stato e documentazione.
This commit is contained in:
2026-08-11 22:33:07 +02:00
parent aa888fe9cc
commit e1acad4a27
3 changed files with 7 additions and 18 deletions
+3 -2
View File
@@ -84,5 +84,6 @@ Mostra una dashboard grafica centrata con lo stato di salute dell'estensione:
- **Primo tocco (`F12`)**: Avvia la registrazione audio tramite `ffmpeg`, riproduce il suono sci-fi *Power Up* e mostra la barra di stato live `🔴 REGISTRAZIONE... MM:SS / MM:SS`.
- **Secondo tocco (`F12`)**: Interrompe la registrazione, riproduce il suono *Deactivate*, ottimizza l'audio (soppressione silenzio), invia la traccia a Gemini per la trascrizione e trasmette il prompt risultante a `pi`.
### Tasto `Esc` / `Escape` — Annullamento Registrazione
- Durante una registrazione audio attiva, premere `Esc` o `Escape` abortisce immediatamente il processo `ffmpeg`, rimuove il file temporaneo, riproduce il tono acustico di cancellazione e cancella l'indicatore di stato.
### Tasto `Ctrl+Esc` — Annullamento Registrazione
- Durante una registrazione audio attiva, premere `Ctrl+Esc` abortisce immediatamente il processo `ffmpeg`, rimuove il file temporaneo, riproduce il tono acustico di cancellazione e cancella l'indicatore di stato.
- `Esc` da solo è riservato alla combinazione built-in di pi (`app.interrupt`), quindi l'estensione usa `Ctrl+Esc` per evitare il conflitto.
+1 -1
View File
@@ -41,7 +41,7 @@ Alla pressione del tasto **F12**:
- Viene avviato un sottoprocesso `ffmpeg` che cattura dal dispositivo PulseAudio predefinito (`-f pulse -i default`).
- L'audio viene campionato a 16.000 Hz in mono (`-ac 1 -ar 16000`).
- Viene attivato un timer TUI che aggiorna dinamicamente lo stato di `pi`:
`🔴 REGISTRAZIONE... 00:14 / 02:00 (Esc per annullare)`
`🔴 REGISTRAZIONE... 00:14 / 02:00 (Ctrl+Esc per annullare)`
### 2. Feedback Acustici Sci-Fi Procedurali (`playSound`)
Per non dipendere da file audio esterni, i suoni di feedback vengono generati proceduralmente usando il filtro `aevalsrc` di `ffmpeg` e riprodotti tramite `paplay` (fallback su `aplay` o `ffplay`):
+3 -15
View File
@@ -840,7 +840,7 @@ function startRecording(ctx?: any): string {
const maxSecStr = String(maxDur % 60).padStart(2, "0");
ctx.ui.setStatus(
"agy-rec",
`🔴 REGISTRAZIONE... ${elapsedMinStr}:${elapsedSecStr} / ${maxMinStr}:${maxSecStr} (Esc per annullare)`,
`🔴 REGISTRAZIONE... ${elapsedMinStr}:${elapsedSecStr} / ${maxMinStr}:${maxSecStr} (Ctrl+Esc per annullare)`,
);
};
updateStatus();
@@ -2149,7 +2149,7 @@ export default function agyExtension(pi: ExtensionAPI) {
if (!recording) {
startRecording(ctx);
playSound("start");
ctx.ui.notify("🎙️ Registrazione avviata (F12 per fermare, Esc per annullare)", "info");
ctx.ui.notify("🎙️ Registrazione avviata (F12 per fermare, Ctrl+Esc per annullare)", "info");
return;
}
@@ -2266,19 +2266,7 @@ export default function agyExtension(pi: ExtensionAPI) {
},
});
pi.registerShortcut("escape", {
description: "Annulla la registrazione microfono in corso",
handler: async (ctx) => {
if (recording) {
await cancelRecording();
ctx.ui.setStatus("agy-rec", "");
ctx.ui.notify("❌ Registrazione annullata", "info");
playSound("cancel");
}
},
});
pi.registerShortcut("esc", {
pi.registerShortcut("ctrl+escape", {
description: "Annulla la registrazione microfono in corso",
handler: async (ctx) => {
if (recording) {