利用cygwin的Xorg为WSL1中的桌面程序提供X服务。
可在WSL1中运行桌面程序。
特点如下:
- 无需在WSL中运行X服务。
- 利用TCP端口(6000)提供服务,故需要注意公网暴露的问题。
个人认为,WSL相对于WSL2的特点:
- 资源占用相对小。
- 可直接访问部分Windows的设备(如串口,这对嵌入式开发十分有帮助)。
注意:使用脚本将会对系统进行修改,需要对某些操作具有一定了解。
- setup_xwin.bat:在windows下使用,安装XWin,添加注册表启动项。
- remove_xwin.bat:在windows下使用,移除XWin,移除注册表启动项
- install_desktop_for_ubuntu22.04.sh:在WSL中使用,为ubuntu22.04设置桌面环境,需直接执行,不可使用sudo。主要安装中文字体,fcitx输入法等。注意:本脚本通过~/.bashrc实现环境变量的自动设置与输入法自启,可能会影响wsl启动时的输出。
进入 XWin 目录后,双击运行XWin.bat即可。
当X服务正在运行时,任务栏托盘中会有以下图标:
当X服务意外关闭后(即任务栏图标消失),需要重新运行XWin.bat。
注意:WSL桌面程序运行过程中,必须确保X服务处于运行状态。
进入当前目录,输入以下命令即可设置好桌面环境运行环境:
source desktopenv.sh
注意:WSL桌面程序的各种问题如中文字体等均需要在WSL中解决。
对于ubuntu 20.04系统,设置中文环境需要执行以下步骤:
- 设置locales
- 安装中文字体与支持中文的输入法
- 启动支持中文的输入法
- 设置输入法环境变量
使用以下命令配置locales:
sudo dpkg-reconfigure locales
配置locales过程中,需要选中zh_CN.UTF-8。此配置只需要进行一次。
使用以下命令安装中文字体(wqy)与支持中文的输入法(fcitx):
sudo apt-get install fonts-wqy-microhei fonts-wqy-zenhei fcitx-sunpinyin
启动支持中文的输入法前需要设置好桌面环境,X服务只允许运行一个fcitx:
#进入桌面环境
source desktopenv.sh
#启动fcitx
fcitx-autostart
#启动完成后,fcitx将在后台运行,此时可关闭当前终端
注意:每个X服务只需要执行一次启动操作。除非X服务退出,无需重复执行。
注意:此操作对于每个终端都应执行一次。
使用以下命令设置输入法环境变量,设置好后即可打开桌面程序:
#进入桌面环境
source desktopenv.sh
#设置输入法环境变量
export XMODIFIERS=@im=fcitx
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
#设置语言环境
export LANG=zh_CN.UTF-8
#此时再启动桌面程序即可使用输入法
需要中文输入时,使用默认热键ctrl+space即可切换到中文输入,使用fcitx-config-gtk3可配置输入法。