Console Toolkit

  • Autor: Tony Malykh
  • Descargar versión estable
  • Compatibilidade co NVDA: 2019.3 en diante

Console toolkit é un complemento de NVDA, que proporciona melloras para a consola de Windows, tamén coñecida como liña de comandos. Tamén funciona ben en Windows PowerShell. Algunhas das características poderían funcionar en terminais alternativas, como Cygwin, PuTTY e windows Terminal, porén, o complemento só se probou exhaustivamente coa consola de Windows por defecto. Os usuarios de SSH poderían atopar este complemento especialmente útil.

Algunhas das características foron parte antes do complemento Tony's enhancements.

Descargas

Console toolkit

Lectura da consola en tempo real

Esta opción fai que NVDA lea as novas liñas inmediatamente conforme aparecen na saída da consola, no canto de poñelas en cola. Por exemplo, se NVDA está ocupado lendo unha liña que apareceu na pantalla hai 1 minuto, e aparece unha nova liña agora, esta opción cancelará a lectura da liña antiga e comeza a ler a nova liña directamente, fornecendo así unha retroalimentación máis inmediata sobre o que está aparecendo na ventá da consola.

Pitar para actualizacións da consola

Pitar cun pequeño impulso en baixa frecuencia cada vez que o texto da consola se actualiza.

Garantía de control+V na consola

Esta opción fai que Control+V funcione dentro de sesións ssh.

Experimental: edición da liña de ordes

Nota: esta característica é experimental. Por favor le esta sección coidadosamente e asegúrate de que entendes como funciona antes de reportar incidencias.

Preme NVDA+E para identificar a petición actual na ventá da consola e editala nunha ventá "Edit prompt" (Editar instrución) accesible. Tras editar podes ben pulsar Escape para actualizar a liña de ordes actual, ou Intro para actualizar e executar inmediatamente a orde. Alternativamente podes premer Alt+F4 para pechar a ventá de editar instrución sen actualizar a liña de ordes.

Esta característica probouse na liña de ordes de Windows cmd.exe así como nunha shell bash sobre conexións ssh, así como en WSL e cygwin. Tamén podería funcionar en shells de unix alternativas, mais non se probou.

Aquí está como o complemento extrae a orde actual.

  1. Preme a tecla fin e envía un carácter de control, que é un carácterUnicode raro que probablemente non se utilice en ningures.
  2. Despois preme a tecla inicio e envía outro carácter de control.
  3. Despois agarda a que o carácter de control apareza na pantalla, que podería levar algún tempo en conexións SSH lentas.
  4. A orde é o que aparece entre os dous caracteres de control.
  5. Cando está habilitada a opción "Usar UI Automation para acesar á Consola de Windows cando estea dispoñible" nas opcións do NVDA, envía outro carácter de control máis ao comezo da cadea. Isto requírese para codificar correctamente ordes multiliña: a implementación de UIA recorta espazos en branco ó final de cada liña, de xeito que para deducir se hai un espazo entre dúas liñas, neceistamos velo mediante un carácter. Ten en conta, non obstante, que deste xeito non preservamos o número de espazos entre palabras, só garantimos a presenza de espazos.
  6. Antes de editar o complemento asegúrase de eliminar os caracteres de control colocando o cursor no comezo e final e simulando a pulsación das teclas suprimir e retroceso.
  7. Presenta a orde na ventá "edit prompt" para que o usuario o vexa ou edite.
  8. Unha vez o usuario prema Intro ou Escape, primeiro borra a liña actual na consola. Isto conséguese mediante un método dos catro dispoñibles, a escolla é configurable. Actualmente sopórtanse catro métodos:

    • Control+C: funciona tanto en cmd.exe como en bash, pero deixa a instrución anterior visible na pantalla; non funciona en emacs; pouco confiable en ocasións en conexións SSH lentas
    • Escape: só funciona en cmd.exe"),
    • Control+A Control+K: funciona en bash e emacs; non funciona en cmd.exe
    • Retroceso (recomendado): funciona en todos os entornos; pero é máis lento e podería causar corrupción se cambia a lonxitude da liña
  9. Despois o complemento simula pulsacións de teclas para introducir a orde actualizada e opcionalmente simula a pulsación da tecla Intro.

Solución de erros:

  • Verifica que as teclas 'Inicio', 'Fin', 'suprimir' e 'Retroceso' funcionan como se espera na túa consola.
  • Verifica que a túa consola soporte caracteres Unicode. Algunhas conexións ssh non soportan Unicode.
  • Verifica que o método de eliminación seleccionado funciona na túa consola.

Experimental: captura de saída de ordes

Nota: esta característica é experimental. Por favor le esta sección coidadosamente e asegúrate de que entendes como funciona antes de reportar incidencias.

Estando na liña de ordes ou na ventá "edit prompt", preme Control+Intro para capturar a saída da orde. Este complemento é capaz de capturar unha saída larga que se expanda durante varias pantallas, aínda que cando a saída é máis longa que 10 pantallas o proceso de captura tarda un tempo considerable en completarse. O complemento tocará un son largo de campá, que durará mentres o complemento estea capturando a saída da orde en execución, ou ata que se alcance o tempo de expiración. Alternativamente, preme NVDA+E para interromper a captura.

Cando a característica "Usar UI Automation para acesar á Consola de Windows cando estea dispoñible" está habilitada nas opcións de NVDA, podes cambiar a outras ventás mentres se executa a captura. Pola contra, se esta opción está deshabilitada, NVDA estará a usar un código de consola obsoleto, que só funciona cando a consola ten o foco, e polo tanto cambiar a calquera outra ventá pausará a captura.

A captura de ordes funciona redirixindo a saída da orde á orde less. O sufixo por defecto que se engade á orde é: |less -c 2>&1 Por favor cámbiao só se sabes o que estás facendo. Este complemento sabe como interactuar coa saída da orde less para obter a saída páxina a páxina.

En windows a ferramenta less.exe necesita instalarse por separado. Podes instalala mediante cygwin, ou descargar un binario para windows de calquera outro lugar.

Se estás a usar tmux ou screen en Linux, por favor asegúrate de que non se amosa ningunha liña de estado na parte inferior. En tmux executa tmux set status off para librarte da liña de estado, ou modifica o teu arquivo tmux.conf.

Solución de erros:

  • Tras un intento de captura fallido, preme frecha arriba na consola para comprobar que orde se executou realmente.
  • Revirte ao sufixo de captura por defecto, mencionado arriba.
  • Proba cos pasos de solución de problemas da sección "edición da liña de ordes".