aboutsummaryrefslogtreecommitdiff
path: root/src/desktop-lite/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'src/desktop-lite/README.md')
-rw-r--r--src/desktop-lite/README.md68
1 files changed, 67 insertions, 1 deletions
diff --git a/src/desktop-lite/README.md b/src/desktop-lite/README.md
index 709ba44..94c912a 100644
--- a/src/desktop-lite/README.md
+++ b/src/desktop-lite/README.md
@@ -23,6 +23,72 @@ Adds a lightweight Fluxbox based desktop to the container that can be accessed u
| webPort | Enter a port for the VNC web client | string | 6080 |
| vncPort | Enter a port for the desktop VNC server | string | 5901 |
+## Connecting to the desktop
+
+This feature provides two ways of connecting to the desktop environment it adds. The first is to connect using a web browser. To do so:
+
+1. Forward the noVNC port (`6080` by default) to your local machine using either the `forwardPorts` property in `devcontainer.json` or the user interface in your tool (e.g., you can press <kbd>F1</kbd> or <kbd>Ctrl/Cmd</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd> and select **Ports: Focus on Ports View** in VS Code to bring it into focus).
+1. Open the ports view in your tool, select the noVNC port, and click the Globe icon.
+1. In the browser that appears, click the **Connect** button and enter the desktop password (`vscode` by default).
+
+You can also connect to the desktop using a [VNC viewer](https://www.realvnc.com/en/connect/download/viewer/). To do so:
+
+1. Connect to the environment from a desktop tool that supports the dev container spec (e.g., VS Code client).
+1. Forward the VNC server port (`5901` by default) to your local machine using either the `forwardPorts` property in `devcontainer.json` or the user interface in your tool (e.g., you can press <kbd>F1</kbd> or <kbd>Ctrl/Cmd</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd> and select **Ports: Focus on Ports View** in VS Code to bring it into focus).
+1. Start your VNC Viewer and connect to localhost:5901. Note that you may need to bump up the color depth to 24 bits to see full color.
+1. Enter the desktop password (`vscode` by default).
+
+## Customizing Fluxbox
+
+The window manager is installed is [Fluxbox](http://fluxbox.org/). **Right-click** to see the application menu. In addition, any UI-based commands you execute inside the dev container will automatically appear on the desktop.
+
+You can customize the desktop using Fluxbox configuration files. The configuration files are located in the `.fluxbox` folder of the home directory of the user you using to connect to the dev container (`$HOME/.fluxbox`).
+
+If you add custom content to your base image or a Dockerfile in this location, the Feature will automatically use it rather than its default configuration.
+
+See the [Fluxbox menu documentation](http://www.fluxbox.org/help/man-fluxbox-menu.php) for format details. More information on additional customization can be found in Fluxbox's [help](http://www.fluxbox.org/help/) and [general](http://fluxbox.sourceforge.net/docbook/en/html/book1.html) documentation.
+
+## Resolving crashes
+
+If you run into applications crashing, you may need to increase the size of the shared memory space allocated to your container. For example, this will bump it up to 1 GB in `devcontainer.json`:
+
+ ```json
+ "runArgs": ["--shm-size=1g"]
+ ```
+
+ Or using Docker Compose:
+
+ ```yaml
+ services:
+ your-service-here:
+ # ...
+ shm_size: '1gb'
+ # ...
+ ```
+
+## Installing a browser
+
+If you need a browser, you can install **Firefox ESR** by adding the following to `.devcontainer/Dockerfile`:
+
+```Dockerfile
+RUN apt-get update && export DEBIAN_FRONTEND=noninteractive && apt-get install -y firefox-esr
+```
+
+If you want the full version of **Google Chrome** in the desktop:
+
+1. Add the following to `.devcontainer/Dockerfile`
+
+ ```Dockerfile
+ RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
+ && curl -sSL https://dl.google.com/linux/direct/google-chrome-stable_current_$(dpkg --print-architecture).deb -o /tmp/chrome.deb \
+ && apt-get -y install /tmp/chrome.deb
+ ```
+
+2. Chrome sandbox support requires you set up and run as a non-root user. The [`debian-common.sh`](common.md) script can do this for you, or you [set one up yourself](https://aka.ms/vscode-remote/containers/non-root). Alternatively, you can start Chrome using `google-chrome --no-sandbox`
+
+That's it!
+
+
---
-_Note: This file was auto-generated from the [devcontainer-feature.json](https://github.com/devcontainers/features/blob/main/src/desktop-lite/devcontainer-feature.json)._
+_Note: This file was auto-generated from the [devcontainer-feature.json](https://github.com/devcontainers/features/blob/main/src/desktop-lite/devcontainer-feature.json). Add additional notes to a `NOTES.md`._