Инструментариум за конзоли (Console Toolkit)

"Инструментариум за конзоли" е добавка за NVDA, която осигурява подобрения на достъпността за конзолата на Windows, известна още като "Команден прозорец". Тя работи добре и в Windows PowerShell. Някои от функциите може да работят в алтернативни терминали, като Cygwin, PuTTY и Windows Terminal, но добавката е била внимателно тествана само с конзолата по подразбиране на Windows. За потребителите на SSH тази добавка може да е от голяма полза.

Някои от функциите преди бяха част от добавката "Подобрения от Тони".

Изтегляния

Install from add-on store.

Jump to the first visible line

Console toolkit overrides shift+numpad7 command in UIA consoles: instead of reading the first line in the entire buffer it now reads the first visible line at the top of the window. Press shift+numpad7 twice to revert to the old behavior and read the first line of the buffer.

Речев изход в реално време от конзолата

Тази опция кара NVDA да изговаря новите редове незабавно, когато се появяват в изхода на конзолата, вместо да изговаря отделните фрази една след друга. Например, ако NVDA в момента прочита даден ред, който се е появил на екрана преди 1 минута и сега се появи нов ред, тази опция ще отмени изговарянето на стария ред и ще прочете новия ред веднага, като по този начин осигурява обратна връзка в по-реално време за случващото се в прозореца на конзолата.

Бибипкане при обновяване на конзолата

Възпроизвеждане на нискочестотен звук при всяко актуализиране на текста в конзолата.

Налагай използването на Control+V в конзолите

Тази опция прави клавишната комбинация Control+V да работи в сесиите на "SSH".

Експериментално: Редактиране в командния прозорец

Забележка: Тази функция е експериментална. Моля, прочетете внимателно този раздел и се уверете, че разбирате как работи, преди да докладвате за проблеми.

Натиснете NVDA+E, за да идентифицирате текущия ред в прозореца на конзолата и да го редактирате в достъпен прозорец "Редактиране на ред". След редактирането можете или да натиснете Escape, за да актуализирате текущия команден ред, или Enter, за да актуализирате и незабавно да изпълните командата. Като алтернатива можете да натиснете Alt+F4, за да затворите прозореца за редактиране, без да актуализирате командния ред.

Тази функция е тествана в командния ред на Windows "cmd.exe", както и в BASH Shell чрез SSH връзки, както и в WSL и Cygwin. Може да работи и в алтернативни среди на Unix, но не е тествано.

Ето как добавката извлича текущата команда.

  1. Симулира натискане на клавиша End и след това подава контролен знак, който е рядък Уникод знак, който е слабо вероятно да се използва някъде.
  2. След това симулира натискане на клавиша Home и подава друг контролен знак.
  3. След това изчаква контролните символи да се появят на екрана, което при бавни SSH връзки може да отнеме известно време.
  4. Командата е това, което се появява между двата контролни знака.
  5. Когато опцията "Използвай UI Automation за получаване на достъп до конзолата на Windows, когато е налично" е включена в настройките на NVDA, добавката изпраща още един контролен знак в началото на низа. Това е необходимо, за да се анализират правилно многоредовите команди: внедряването на UIA премахва интервалите в края на всеки ред, така че за да се установи дали има интервал между два реда, трябва да бъдат изместени с един символ. Моля, имайте предвид обаче, че по този начин не се запазва броя на интервалите между думите – само се гарантира, че се запазва наличието на интервали.
  6. Преди редактирането, добавката се уверява, че са премахнати контролните знаци, като поставя курсора в началото и края и симурира натискане на клавишите Delete и Backspace.
  7. Добавката извежда командата в прозореца "Редактиране на ред", от където потребителят може да я прегледа и редактира.
  8. След като потребителят натисне Enter или Escape, добавката първо изтрива текущия ред в конзолата. Това се постига чрез един от четири метода, от които потребителят може да избира желаният от него. В Към момента се поддържат следните методи:

    • Control+C: Работи и в "cmd.exe", и в "BASH", но оставя предишния ред да се вижда на екрана. Не работи в emacs. Понякога е ненадежден при бавни SSH връзки
    • Escape: Работи само в "cmd.exe""),
    • Control+A, Control+K: Работи в "BASH" и "emacs". Не работи в "cmd.exe"
    • Backspace (препоръчително): Работи във всякаква среда. Но е по-бавно и може да причини повреда, ако дължината на реда се промени
  9. След това добавката симулира натискания на клавиши за въвеждане на актуализираната команда и по избор симулира натискане на клавиша Enter.

Отстраняване на неизправности:

  • Уверете се, че при вас клавишите Home, End, Delete и Backspace работят както се очаква в конзолата.
  • Уверете се, че при вас конзолата поддържа Уникод символи. Някои SSH връзки не поддържат Уникод.
  • Уверете се, че при вас избраният метод за изтриване работи в конзолата.

Експериментално: Прихващане на командния изход

Забележка: Тази функция е експериментална. Моля, прочетете внимателно този раздел и се уверете, че разбирате как работи, преди да докладвате за проблеми.

Докато сте в командния ред или в прозореца "Редактиране на ред", натиснете Control+Enter, за да прихванете командния изход. Тази добавка е способна да прихваща голямо количество изходна информация (обхващаща множество екрани), въпреки че когато изходната информация е повече от 10 екрана, процесът на прихващане отнема значително време за завършване. Добавката ще възпроизвежда дълъг звуков сигнал и ще продължи, докато добавката прихваща изхода на изпълняваната в момента команда или докато не бъде достигнато времето за изчакване. Друга възможност е да натиснете NVDA+E, за да прекъснете прихващането.

Когато функцията "Използвай UI Automation за получаване на достъп до конзолата на Windows, когато е налично" е включена в настройките на NVDA, можете да превключите към други прозорци, докато прихващането е в ход. Ако обаче тази опция е изключена, тогава NVDA използва наследен (стар) конзолен код, който работи само когато конзолата е фокусирана и следователно превключването към всеки друг прозорец ще постави прихващането на пауза.

Прихващането на команди работи чрез пренасочване на изхода на командата към команда "less". Наставката по подразбиране, която се добавя към командите, е: |less -c 2>&1 Моля, променяйте я, само ако знаете какво правите. Тази добавка знае как да взаимодейства с изхода на командата "less" за извличане на изходна информация страница по страница.

Под Windows инструментът "less.exe" трябва да се инсталира отделно. Можете да го инсталирате чрез Cygwin или да изтеглите бинарен файл за Windows от друго място.

Ако използвате "tmux" или "screen" под Linux, моля, уверете се, че в долната част на екрана не се показва лентата на състоянието. В "tmux" изпълнете следното tmux set status off за да премахнете лентата на състоянието. Или редактирайте файла "tmux.conf".

Отстраняване на неизправности:

  • After a failed output capturing attempt, press UpArrow in the console to check what command has actually been executed.
  • Връщане към наставката по подразбиране за прихващане, спомената по-горе.
  • Опитайте стъпките за отстраняване на неизправности от раздела "Редактиране на команден ред".