{ "name": "MeshCore", "image": "mcr.microsoft.com/devcontainers/python:3-bookworm", "features": { "ghcr.io/devcontainers/features/node:1": {}, "ghcr.io/rocker-org/devcontainer-features/apt-packages:1": { "packages": [ "sudo", // Mainline Zephyr host build dependencies (companion is NOT built on NCS) "git", "cmake", "ninja-build", "gperf", "ccache", "dfu-util", "device-tree-compiler", "wget", "xz-utils", "file", "make", "libsdl2-dev", "libmagic1", "python3-venv", "python3-dev", // pyocd (CMSIS-DAP flash/RTT for the XIAO nRF54L15 on-board debugger) "libusb-1.0-0", "libhidapi-hidraw0" ] } }, "runArgs": [ "--privileged", "--network=host", "--device=/dev/bus/usb", // arch linux tty* is owned by uucp (986) "--group-add=986", // debian tty* is owned by dialout (20) "--group-add=20" ], "postCreateCommand": { "platformio": "pipx install platformio", "opencode": "curl -fsSL https://opencode.ai/install | bash", // HEAVY (multi-GB, slow first run). Comment this out and run the script // manually (`bash .devcontainer/setup-zephyr.sh`) if you'd rather not pay // the cost on every container (re)create. Non-fatal: PlatformIO still works // even if this fails. "zephyr": "bash .devcontainer/setup-zephyr.sh || echo 'Zephyr setup skipped/failed; run .devcontainer/setup-zephyr.sh manually'" }, "customizations": { "vscode": { "settings": { "platformio-ide.disablePIOHomeStartup": true, "editor.formatOnSave": false, "workbench.colorCustomizations": { "titleBar.activeBackground": "#0d1a2b", "titleBar.activeForeground": "#ffffff", "titleBar.inactiveBackground": "#0d1a2b99", "titleBar.inactiveForeground": "#ffffff99" } }, "extensions": [ "platformio.platformio-ide", "github.vscode-github-actions", "GitHub.vscode-pull-request-github" ], "unwantedRecommendations": [ "ms-vscode.cpptools-extension-pack" ] } } }