diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 8b79bed2..43a108b0 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -17,8 +17,11 @@ "runArgs": [ "--cap-add=SYS_PTRACE", "--security-opt", - "seccomp=unconfined" + "seccomp=unconfined", ], + "containerEnv": { + "DISPLAY": "host.docker.internal:0", // used in X11 for display from container + }, // Set *default* container specific settings.json values on container create. "settings": { "cmake.configureOnOpen": true, @@ -42,6 +45,10 @@ //"postCreateCommand": "uname -a", // Comment out connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root. //"remoteUser": "vscode", + "mounts": [ + // x11 + "source=/tmp/.X11-unix,target=/tmp/.X11-unix,type=bind,consistency=default" + ], "workspaceMount": "source=${localWorkspaceFolder},target=/workspaces/${localWorkspaceFolderBasename},type=bind,consistency=delegated", "workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}", "features": { diff --git a/README_docker.md b/README_docker.md index b1f5bf52..bfebd572 100644 --- a/README_docker.md +++ b/README_docker.md @@ -69,3 +69,14 @@ run them separately. A script called `build_examples.sh` is provided to help you to build the example GUI projects in this container. +## Using X11 Forwarding from .devcontainer + +The `.devcontainer` is also configured to use X11 Forwarding to allow GUI to the +host machine, given that you have an X11 server already. + +[Here](https://en.wikipedia.org/wiki/List_of_display_servers) is a good list of +X11 servers you could try. + +For Windows, [Xming](http://www.straightrunning.com/XmingNotes/) is free and +popular, compiled with MinGW. For MSVC, [vcXsrv](https://sourceforge.net/projects/vcxsrv/) +is a good alternative.