Skip to content

Instantly share code, notes, and snippets.

@b23prodtm
Last active October 30, 2024 06:22
Show Gist options
  • Save b23prodtm/b058b8b0efbd7e9c632dbcc7affe1754 to your computer and use it in GitHub Desktop.
Save b23prodtm/b058b8b0efbd7e9c632dbcc7affe1754 to your computer and use it in GitHub Desktop.
How to install Gnome for Ubuntu 22.04 on WSL2?
#!/usr/bin/env bash
if [ -z $(command -v wslvar) ]; then printf "%s\n" "Install package wslu please" ; sleep 2; exit 0; fi
username=$(wslvar USERNAME | awk '{ print tolower($0) }' )
mkdir -p --parents "/mnt/c/users/$username/.ubuntu/"
cd "/mnt/c/users/$username/.ubuntu"
if [ ! -f /etc/apt/sources.list.d/microsoft-prod.list ]; then
sudo apt-key adv --fetch-keys https://packages.microsoft.com/keys/microsoft.asc
sudo apt update
fi
if [ ! -f /etc/apt/sources.list.d/wsl-transdebian.list ]; then
sudo wget -O /etc/apt/trusted.gpg.d/wsl-transdebian.gpg https://arkane-systems.github.io/wsl-transdebian/apt/wsl-transdebian.gpg
sudo chmod a+r /etc/apt/trusted.gpg.d/wsl-transdebian.gpg
sudo cat << EOF > /etc/apt/sources.list.d/wsl-transdebian.list
deb https://arkane-systems.github.io/wsl-transdebian/apt/ $(lsb_release -cs) main
deb-src https://arkane-systems.github.io/wsl-transdebian/apt/ $(lsb_release -cs) main
EOF
sudo apt update
fi
if [ -z $(sudo apt install --yes systemd-genie > /dev/null) ]; then
if [ ! -f /etc/sudoers.d/$USER ]; then
echo "$USER ALL=(ALL) NOPASSWD:/usr/bin/genie" | sudo EDITOR="tee" visudo --fil> fi
fi
# CREATE BASH SCRIPT
# Save block of text in bash file
cat << EOF > "/mnt/c/users/$username/.ubuntu/02_start_desktop.sh"
# Define necessary environment variables
export DISPLAY="\$(cat /etc/resolv.conf | grep nameserver | awk '{ print \$2 }'):0.0"
export DESKTOP_SESSION="ubuntu"
export GDMSESSION="ubuntu"
export XDG_SESSION_DESKTOP="ubuntu"
export XDG_CURRENT_DESKTOP="ubuntu:GNOME"
export XDG_SESSION_TYPE="x11"
export XDG_BACKEND="x11"
export XDG_SESSION_CLASS="user"
export XDG_DATA_DIRS="/usr/local/share/:/usr/share/:/var/lib/snapd/desktop"
export XDG_CONFIG_DIRS="/etc/xdg"
export XDG_RUNTIME_DIR="\$HOME/xdg"
export XDG_CONFIG_HOME="\$HOME/.config"
export XDG_DATA_HOME="\$HOME/.local/share"
export XDG_CACHE_HOME="\$HOME/.cache"
export XDG_DESKTOP_DIR="\$HOME/Desktop"
export XDG_DOCUMENTS_DIR="\$HOME/Documents"
export XDG_DOWNLOAD_DIR="\$HOME/Downloads"
export XDG_MUSIC_DIR="\$HOME/Music"
export XDG_PICTURES_DIR="\$HOME/Pictures"
export XDG_PUBLICSHARE_DIR="\$HOME/Public"
export XDG_TEMPLATES_DIR="\$HOME/Templates"
export XDG_VIDEOS_DIR="\$HOME/Videos"
# Start desktop environment
gnome-session
EOF
@danktankk
Copy link

danktankk commented Mar 1, 2023

Same:

Some index files failed to download. They have been ignored, or old ones used instead.
./wsl2-setup-desktop-gnome.sh: line 56: syntax error: unexpected end of file

@toanphuong
Copy link

Run script raised error:
The repository 'https://ppa.launchpadcontent.net/communitheme/ppa/ubuntu jammy Release' does not have a Release file.

@vitce
Copy link

vitce commented Jul 24, 2024

@b23prodtm below statement is wrong, and script fails

  if [ ! -f /etc/sudoers.d/$USER ]; then
    echo "$USER ALL=(ALL) NOPASSWD:/usr/bin/genie" | sudo EDITOR="tee" visudo --fil>  fi

got working with modifications

#!/usr/bin/env bash
if [ -z "$(command -v wslvar)" ]; then printf "%s\n"  "Install package wslu please" ; sleep 2; exit 0; fi
username=$(wslvar USERNAME | awk '{ print tolower($0) }' )
mkdir -p --parents "/mnt/c/users/$username/.ubuntu/" 
cd "/mnt/c/users/$username/.ubuntu" || exit 
if [ ! -f /etc/apt/sources.list.d/microsoft-prod.list ]; then
  sudo apt-key adv --fetch-keys https://packages.microsoft.com/keys/microsoft.asc
  sudo apt update
fi
if [ ! -f /etc/apt/sources.list.d/wsl-transdebian.list ]; then
  sudo wget -O /etc/apt/trusted.gpg.d/wsl-transdebian.gpg https://arkane-systems.github.io/wsl-transdebian/apt/wsl-transdebian.gpg

  sudo chmod a+r /etc/apt/trusted.gpg.d/wsl-transdebian.gpg

  cat << EOF | sudo tee /etc/apt/sources.list.d/wsl-transdebian.list
deb https://arkane-systems.github.io/wsl-transdebian/apt/ $(lsb_release -cs) main
deb-src https://arkane-systems.github.io/wsl-transdebian/apt/ $(lsb_release -cs) main
EOF

  sudo apt update
fi
if [ -z "$(sudo apt install --yes systemd-genie > /dev/null)" ]; then
  if [ ! -f "/etc/sudoers.d/$USER" ]; then
    echo "$USER ALL=(ALL) NOPASSWD:/usr/bin/genie" | sudo EDITOR="tee" visudo --file "/etc/sudoers.d/$USER"
  fi
fi

# CREATE BASH SCRIPT

# Save block of text in bash file
cat << EOF > "/mnt/c/users/$username/.ubuntu/02_start_desktop.sh"
# Define necessary environment variables
export DISPLAY="\$(cat /etc/resolv.conf | grep nameserver | awk '{ print \$2 }'):0.0"
export DESKTOP_SESSION="ubuntu"
export GDMSESSION="ubuntu"
export XDG_SESSION_DESKTOP="ubuntu"
export XDG_CURRENT_DESKTOP="ubuntu:GNOME"
export XDG_SESSION_TYPE="x11"
export XDG_BACKEND="x11"
export XDG_SESSION_CLASS="user"
export XDG_DATA_DIRS="/usr/local/share/:/usr/share/:/var/lib/snapd/desktop"
export XDG_CONFIG_DIRS="/etc/xdg"
export XDG_RUNTIME_DIR="\$HOME/xdg"
export XDG_CONFIG_HOME="\$HOME/.config"
export XDG_DATA_HOME="\$HOME/.local/share"
export XDG_CACHE_HOME="\$HOME/.cache"
export XDG_DESKTOP_DIR="\$HOME/Desktop"
export XDG_DOCUMENTS_DIR="\$HOME/Documents"
export XDG_DOWNLOAD_DIR="\$HOME/Downloads"
export XDG_MUSIC_DIR="\$HOME/Music"
export XDG_PICTURES_DIR="\$HOME/Pictures"
export XDG_PUBLICSHARE_DIR="\$HOME/Public"
export XDG_TEMPLATES_DIR="\$HOME/Templates"
export XDG_VIDEOS_DIR="\$HOME/Videos"
# Start desktop environment
gnome-session
EOF

But it fails with following, seems wsl-transdebian for Ubuntu24 not available, only Ubuntu22

E: The repository 'https://arkane-systems.github.io/wsl-transdebian/apt noble Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

@p145085
Copy link

p145085 commented Oct 20, 2024

W: Failed to fetch https://wsl-translinux.arkane-systems.net/apt/InRelease Could not resolve 'wsl-translinux.arkane-systems.net'
W: Some index files failed to download. They have been ignored, or old ones used instead.

"gnome-session
Terminated"

Is this project still alive? Would very much like to have Gnome desktop environment on my Windows machine.

EDIT: I somehow got it working yesterday. I then reinstalled Ubuntu because of other reasons and now can't get it to work again. This time I'm getting

"dbus-launch --exit-with-session gnome-session
dbus[1015]: Unable to set up transient service directory: XDG_RUNTIME_DIR "$HOME/xdg" not available: No such file or directory
Terminated"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment