vscode-esp-idf-extension: Arrow keys do not work in menuconfig (VSCode terminal & Windows Terminal Preview) (IDFGH-1860) (VSC-170)

Environment

  • IDF version (run git describe --tags to find it): v4.1-dev-256-g9f145ff16
  • Build System: CMake
  • Compiler version (run xtensa-esp32-elf-gcc --version to find it): xtensa-esp32-elf-gcc (crosstool-NG esp32-2019r1) 8.2.0
  • Operating System: Windows 10

Problem Description

When using idf.py menuconfig in a Visual Studio Code integrated terminal or a Windows Terminal Preview terminal, the arrow keys do not work as menu navigation. This does not occur under regular Windows terminal.

Expected Behavior

Arrow keys navigate the menu items

Actual Behavior

The menu does not respond to arrow keys

Steps to repropduce

  1. Install Visual Studio Code or Windows Terminal Preview
  2. Run idf.py menuconfig in a project within the Visual Studio Code integrated terminal or a Windows Terminal Preview session
  3. Use arrow keys to navigate the menu

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Comments: 16 (1 by maintainers)

Commits related to this issue

Most upvoted comments

After updating to the latest version of esp-idf, even the rendering in vscode is broken. Even though the menu is hard to use, the j and k keys seems to navigate the menu correctly.

Hoping more is known about this, a new issue is made about both issues: espressif/vscode-esp-idf-extension#5

Currently using bash is not really feasible in my setup.

I used start idf.py menuconfig , it opened menuconfig in a new detached terminal window where all the keys works!! I am using powershell as terminal.

For what it’s worth, my workaround is to exec start from inside VS Code terminal, which opens a normal Windows terminal, and call pio run -t menuconfig from there.

I have created a pull request to fix this issue in kconfig-frontend, see https://github.com/espressif/kconfig-frontends/pull/1

Just to add to @positron96 's solution. If VSCode is using a powershell terminal then you must do e.g. start cmd then idf.py menuconfig (For the oldschool terminal, just start will work without the cmd part)