我已经成功地在windows 10机器上安装了WLS (ubuntu 18)。我想使用TightVnc访问它的UI特性。在默认设置下,.vnc/xstartup包含以下行
xrdb $HOME/.Xresources
xsetroot -solid grey
#x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &
# Fix to make GNOME work
export XKL_XMODMAP_DISABLE=1
/etc/X11/Xsession我可以从windows使用紧密的vnc查看器连接到它,但是UI看起来像

但是,我想使用Ubuntu 18附带的默认桌面。
#!/bin/sh
#Uncommment this line if using Gnome and your keyboard mappings are incorrect.
#export XKL_XMODMAP_DISABLE=1
# Load X resources (if any)
if [ -r "$HOME/.Xresources" ]
then
xrdb "$HOME/.Xresources"
fi
gnome-session --disable-acceleration-check --session=ubuntu &但是,当我在进行这些更改后启动vncserver时,我可以连接,但它显示的是一个没有视觉控制的灰色屏幕。

请注意,我的机器上没有.Xresources文件,所以我手动创建了一个空文件,但是没有什么区别。下面是ls /usr/share/xsessions的输出
ubuntu-communitheme-snap.desktop ubuntu.desktop xfce.desktop我可以在.vnc/CS-63341DT:5.log文件中看到一些错误。下面是这个文件的内容
05/04/19 12:49:17 Xvnc version TightVNC-1.3.10
05/04/19 12:49:17 Copyright (C) 2000-2009 TightVNC Group
05/04/19 12:49:17 Copyright (C) 1999 AT&T Laboratories Cambridge
05/04/19 12:49:17 All Rights Reserved.
05/04/19 12:49:17 See http://www.tightvnc.com/ for information on TightVNC
05/04/19 12:49:17 Desktop name 'X' (CS-63341DT:5)
05/04/19 12:49:17 Protocol versions supported: 3.3, 3.7, 3.8, 3.7t, 3.8t
05/04/19 12:49:17 Listening for VNC connections on TCP port 5905
Font directory '/usr/share/fonts/X11/75dpi/' not found - ignoring
Font directory '/usr/share/fonts/X11/100dpi/' not found - ignoring
gnome-session-binary[1645]: WARNING: Using null backend for session tracking
_IceTransmkdir: Owner of /tmp/.ICE-unix should be set to root
GNOME_KEYRING_CONTROL=/home/adeel/.cache/keyring-FKBRZZ
GNOME_KEYRING_CONTROL=/home/adeel/.cache/keyring-FKBRZZ
GNOME_KEYRING_CONTROL=/home/adeel/.cache/keyring-FKBRZZ
SSH_AUTH_SOCK=/home/adeel/.cache/keyring-FKBRZZ/ssh
Window manager warning: Unsupported session type
gnome-session-binary[1645]: WARNING: App 'org.gnome.Shell.desktop' exited with code 1
Window manager warning: Unsupported session type
gnome-session-binary[1645]: WARNING: App 'org.gnome.Shell.desktop' exited with code 1
gnome-session-binary[1645]: WARNING: App 'org.gnome.Shell.desktop' respawning too quickly
gnome-session-binary[1645]: CRITICAL: We failed, but the fail whale is dead. Sorry....如何使默认的ubuntu18桌面与窗口中的TightVnc查看器一起工作?
发布于 2019-04-08 18:53:56
根据微软的说法,WSL是专为那些希望运行Linux终端实用程序的开发人员设计的。这在此类似的问题。中表示。
据报道,你可以通过
2)通过apt-get或apt安装您希望在WSL下运行的图形软件。
3)使用要运行图形应用程序的export DISPLAY=:0 every时间导出显示环境变量。
4)通过键入图形应用程序可执行文件的名称启动其图形应用程序。
<#>注意:这个子系统( WSL )不能运行所有Linux软件,比如32位二进制文件,或者那些需要在WSL中实现的特定Linux内核服务的二进制文件。
可以通过在Windows (主机)环境中安装X11服务器(如VcXsrv或Xming)来运行一些图形化(GUI)应用程序(如Mozilla ),尽管没有警告,例如缺乏音频支持或硬件加速(导致了糟糕的图形性能)。目前也没有实现对OpenCL和CUDA的支持,尽管它可能在将来的版本中实现。
这个练习比它更有价值。最终的结果是糟糕的图形性能和I/O瓶颈。简单地使用在VM上运行Ubuntu或双靴比处理Linux系统调用应用程序所需的可能不是完全由Linux的的子系统支持.要好得多
资料来源:
到2018年,在Linux的Windows子系统上运行GUI应用程序的最简单方法是什么?
https://en.wikipedia.org/wiki/Windows_分系统_为_Linux
https://blogs.msdn.microsoft.com/wsl/2016/06/08/wsl-system-calls/
发布于 2019-04-15 11:27:40
我使用VcXsrv是因为它是免费的,并且经常更新。请看我的回答:
重要的是安装它,接受默认设置,然后(对我来说)编辑/etc/environment并修改如下:
PATH="/mnt/e/bin:/mnt/e/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:"对此:
PATH="/mnt/e/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
export LIBGL_ALWAYS_INDIRECT=Yes
export DISPLAY=localhost:0.0/mnt/e/bin:对于存储在NTFS分区上的共享脚本非常重要,Ubuntu本地运行的脚本和WSL都运行。LIBGGL...对于图形用户界面的正确绘制非常重要DISPLAY...对于X的正常运行非常重要,这样我就可以对我的所有GUI脚本使用yad和zenity。发布于 2020-12-14 22:00:21

下面的说明是从我写的一篇文章中复制和粘贴的,但是它丢失了原始格式、链接和屏幕截图:
资料来源: 如何在WSL2 2中使用图形用户界面安装Ubuntu
下载VcXsrv:访问官方网站点击“下载”
安装VcXsrv:打开"vcxsrv-64.1.20.8.1.installer.exe“下一步单击”Click“安装”Click“vcxsrv
允许访问VcXsrv:选中“专用网络”单击“允许访问”
打开PowerShell:按下"⊞Windows“,在搜索栏中输入"PowerShell”,右键单击"Windows PowerShell“单击”“
打开WSL2:从下面复制命令,将命令粘贴到PowerShell中,按"Enter“键
wsl
安装Ubuntu :从下面复制命令,将命令粘贴到PowerShell中,按"Enter“键
sudo apt --yes install ubuntu-desktop
设置用户名变量:从下面复制命令,将命令粘贴到PowerShell中,按"Enter“键
username=$(wslvar USERNAME)
创建Ubuntu :从下面复制命令,将命令粘贴到PowerShell中,按"Enter“键
mkdir --parents /mnt/c/users/$username/.ubuntu/
打开Ubuntu :从下面复制命令,将命令粘贴到PowerShell中,按"Enter“键
cd /mnt/c/users/$username/.ubuntu
下载:从下面复制命令,将命令粘贴到PowerShell中,按"Enter“键
Ubuntu 20.04: wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb --output-document packages-microsoft-prod.deb Ubuntu 18.04: wget https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb --output-document packages-microsoft-prod.deb
安装:从下面复制命令,将命令粘贴到PowerShell中,按"Enter“键
sudo dpkg --install packages-microsoft-prod.deb
更新存储库:从下面复制命令,将命令粘贴到PowerShell中,按"Enter“键
sudo apt update
安装HTTPS的APT传输:从下面复制命令,将命令粘贴到PowerShell中,按"Enter“键
sudo apt install --yes apt-transport-https
更新存储库:从下面复制命令,将命令粘贴到PowerShell中,按"Enter“键
sudo apt update
安装.Net:从下面复制命令,将命令粘贴到PowerShell中,按"Enter“键
sudo apt install --yes dotnet-sdk-5.0
将阿卡内系统添加到源列表目录:从下面复制命令,将命令粘贴到PowerShell中,按"Enter“键
sudo sh -c 'echo "deb [trusted=yes] https://wsl-translinux.arkane-systems.net/apt/ /" > /etc/apt/sources.list.d/wsl-translinux.list'
更新存储库:从下面复制命令,将命令粘贴到PowerShell中,按"Enter“键
sudo apt update
安装Genie:从下面复制命令,将命令粘贴到PowerShell中,按"Enter“键
sudo apt install --yes systemd-genie
创建Sudoers :从下面复制命令,将命令粘贴到PowerShell中,按"Enter“键
echo "$USER ALL=(ALL) NOPASSWD:/usr/bin/genie" | sudo EDITOR="tee" visudo --file /etc/sudoers.d/$USER
创建桌面脚本:从下面复制代码,将代码粘贴到PowerShell中,按"Enter“键
# CREATE BASH SCRIPT
# Store block of text with here document
create_bash_script=$(cat << end_of_string
# Define necessary environment variables
export DISPLAY="\$(cat /etc/resolv.conf | grep nameserver | awk '{ print \$2 }'):1.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
end_of_string
)
# Store username environment variable in lowercase
username=$(wslvar USERNAME | awk '{ print tolower($0) }') &&
# Save block of text in bash file
echo "${create_bash_script}" > "/mnt/c/users/$username/.ubuntu/02_start_desktop.sh"下载快捷图像:从下面复制命令,将命令粘贴到PowerShell中,按"Enter“键
wget https://assets.ubuntu.com/v1/9fbc8a44-circle-of-friends-web.zip
解压缩快捷图像:从下面复制命令,将命令粘贴到PowerShell中,按"Enter“键
unzip -o 9fbc8a44-circle-of-friends-web.zip
创建快捷图标:从下面复制命令,将命令粘贴到PowerShell中,按"Enter“键
convert -resize 64x64 ./circle-of-friends-web/png/cof_orange_hex.png ubuntu.ico
退出WSL2:从下面复制命令,将命令粘贴到PowerShell中,按"Enter“键
exit
创建VcXsrv脚本:从下面复制代码,将代码粘贴到PowerShell中,按"Enter“键
# RELOAD VCXSRV SCRIPT
# Store username environment variable in lowercase
$username = $env:username.tolower()
# Store block of text with here-string
$reload_vcxsrv_script = @"
# Stop vcxsrv proccess that contains "1.0" in the program window title
get-process vcxsrv | where { `$_.mainwindowtitle -like "*1.0*" } | stop-process
# Start vcxsrv process in a large program window on display number one
start-process "c:\program files\vcxsrv\vcxsrv.exe" -argument ":1 -ac -nowgl -multimonitors -dpms"
"@
# Save block of text in powershell file
echo "${reload_vcxsrv_script}" > $env:userprofile/.ubuntu/reload_vcxsrv.ps1创建Ubuntu脚本:从下面复制代码,将代码粘贴到PowerShell中,按"Enter“键
# CREATE VISUAL BASIC SCRIPT
# Store username environment variable in lowercase
$username = $env:username.tolower()
# Store block of text with here-string
$create_vbs_script = @"
' Run PowerShell script in background
set application = createobject("shell.application")
application.shellexecute "powershell", "-file c:\users\admin\.ubuntu\01_reload_vcxsrv.ps1", "", "", 0
' Allow PowerShell script to complete
wscript.sleep 3000
' Run Bash script in background
set shell= createobject("wscript.shell")
shell.run "wsl sudo genie -c bash /mnt/c/users/admin/.ubuntu/02_start_desktop.sh", 0
"@
# Save block of text in bash file
echo "${create_vbs_script}" > $env:userprofile/.ubuntu/03_start_ubuntu.vbs创建快捷脚本:从下面复制代码,将代码粘贴到PowerShell中,按"Enter“键
# Store block of text with here-string
$create_shortcut_script = @"
# Define location variables
`$shortcut_location = "`$env:userprofile\.ubuntu\Ubuntu.lnk"
`$program_location = "`$env:userprofile\.ubuntu\03_start_ubuntu.vbs"
# Create shortcut
`$object = new-object -comobject wscript.shell
`$shortcut = `$object.createshortcut(`$shortcut_location)
`$shortcut.targetpath = `$program_location
`$shortcut.iconlocation = "`$env:userprofile\.ubuntu\ubuntu.ico"
`$shortcut.save()
"@
# Save block of text in powershell file
echo $create_shortcut_script > $env:userprofile/.ubuntu/04_create_shortcut.ps1打开Ubuntu :从下面复制命令,将命令粘贴到PowerShell中,按"Enter“键
cd c:\users\admin\.ubuntu
创建快捷方式:从下面复制命令,将命令粘贴到PowerShell中,按"Enter“键
powershell.exe -file .\04_create_shortcut.ps1
在资源管理器中打开目录:从下面复制命令,将命令粘贴到PowerShell中,按"Enter“键
explorer .
启动Ubuntu桌面:双击"Ubuntu“快捷方式
打开终端:单击左上角的“活动”,在搜索栏中输入“终端”,单击“终端”。
禁用屏幕锁定:从下面复制命令,将命令粘贴到终端,按"Enter“键
gsettings set org.gnome.desktop.screensaver lock-enabled false
安装Store:从下面复制命令,将命令粘贴到终端,按"Enter“键
sudo snap install snap-store
https://askubuntu.com/questions/1131379
复制相似问题