This repository provides an interactive setup script to install and run a desktop environment (DE) inside GitHub Codespaces. It includes support for multiple DEs, letting users choose their preferred option during the installation process.
- Customizable Setup: Choose from popular desktop environments like GNOME, KDE Plasma, XFCE, Cinnamon, MATE, and more.
- Web-Based Access: Access your Codespace desktop using VNC and noVNC in your browser.
- Secure Access: Automatically generates SSL certificates for encrypted noVNC connections.
- GitHub Codespaces with sufficient resources (at least 2 cores and 4 GB RAM recommended).
- Internet connection to install packages and access the desktop remotely.
- Click the Fork button in the top-right corner to create your own copy.
- Navigate to your forked repository.
- Click Code > Open with Codespaces to start your Codespace.
- Open the Terminal in your Codespace.
- Make the script executable:
chmod +x setup.sh
- Run the setup script:
./setup.sh
- Follow the prompts to choose your desktop environment.
During installation, you can choose from the following desktop environments:
- GNOME
- KDE Plasma
- XFCE
- Cinnamon
- MATE
- LXQt
- Budgie
- Deepin
- Pantheon
The script will install the selected DE along with all required components.
After setup, access the desktop environment using the browser-based noVNC client:
- Start the VNC server:
vncserver :1
- Start noVNC:
websockify -D --web=/usr/share/novnc/ --cert=$HOME/novnc.pem 6081 localhost:5901
- Open the browser and navigate to:
https://<your-codespace-url>:6081
- Enter your VNC password when prompted.
GitHub Codespaces automatically stops after 1 hour of inactivity. When restarting, follow these steps:
- Kill any existing VNC session:
vncserver -kill :1
- Restart the VNC server:
vncserver :1
- Restart noVNC:
websockify -D --web=/usr/share/novnc/ --cert=$HOME/novnc.pem 6081 localhost:5901
This project is licensed under the MIT License. See the LICENSE file for details.
Contributions are welcome! If you have ideas for improvements or new features, feel free to open an issue or submit a pull request.