# wsl2+archlinux+kde+tigerVNC图形化配置
**Repository Path**: regentsai/wsl_arch_kde
## Basic Information
- **Project Name**: wsl2+archlinux+kde+tigerVNC图形化配置
- **Description**: 漫长的折腾以后完成了wsl2下archlinux的安装和kde桌面的图形化显示。以此记录。
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 12
- **Forks**: 1
- **Created**: 2023-01-29
- **Last Updated**: 2025-12-22
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# wsl2安装archlinux并配置KDE图形化界面-基于TigerVNC
参考网上的教程,我在wslg+manjaro上实现了KDE部分软件以及xfce4桌面的可视化,但始终不能实现KDE桌面的可视化。
搜索一番后发现kali发行版声称[在wsl2上提供了完整的kali桌面体验](https://www.kali.org/docs/wsl/win-kex/),完全兼容wslg,共享剪贴板,分别采用TigerVNC、VcXsrv、xrdp,实现了窗口模式、无缝模式和增强模式。
结合目前的需求和网上的教程,终于用TigerVNC实现了wslg+manjaro上KDE桌面的可视化。
由于Distrod、github、LxRunOffline均暂未提供manjaro的快捷安装方式,我使用的是wsl官网演示的虚拟机+docker导出再导入的套娃方法。对于wsl而言,manjaro和archlinux没有太大差异。因此这里以archlinux为例,快速搭建arch软件源+kde可视化桌面,同时验证该方法在arch系发行版的通用性。
此外,Windows商店在2023.01.23上架了Arch WSL,根据评论和测试,不支持中文本地化,暂不做考虑。
## 参考
- [Win-KeX | Kali Linux Documentation](https://www.kali.org/docs/wsl/win-kex/)
- [使用 WSL 在 Windows 上安装 Linux](https://learn.microsoft.com/zh-cn/windows/wsl/install)
- [在 适用于 Linux 的 Windows 子系统 上运行 Linux GUI 应用](https://learn.microsoft.com/zh-cn/windows/wsl/tutorials/gui-apps)
- [旧版 WSL 的手动安装步骤](https://learn.microsoft.com/zh-cn/windows/wsl/install-manual#step-3---enable-virtual-machine-feature)
- [Distrod - WSL2 Distros with Systemd!](https://github.com/nullpo-head/wsl-distrod)
- [Arch Linux更换中科大源](https://blog.csdn.net/Stack_OVER_flow/article/details/115895739)
- [Setting up Arch Linux with KDE Plasma in Windows Subsystem for Linux 2](https://rashil2000.me/blogs/kde-arch-wsl)
## 先决条件
- wsl:win 10 2004+(内部版本19041+)或win 11,提供在windows上使用linux程序、操作linux文件系统的能力,比传统的虚拟机或双启动设置占用内存和硬盘少。低版本需要[手动安装](https://learn.microsoft.com/zh-cn/windows/wsl/install-manual),此处不介绍。
- wslg:win 10 内部版本19044+或win 11,自动创建linux程序的图形化界面快捷方式,并可以使用alt-tab切换linux和windows窗口。
- (可选)虚拟GPU,启用硬件加速OpenGL渲染。包括[Intel](https://www.intel.com/content/www/us/en/download/19344/intel-graphics-windows-dch-drivers.html)、[AMD](https://www.amd.com/en/support/kb/release-notes/rn-rad-win-wsl-support)、[NVIDIA](https://developer.nvidia.com/cuda/wsl)显卡的驱动程序。对硬件加速没有特别要求的可以跳过,不影响图形显示。
## 安装WSL
- 在window徽标右键单击
- 以管理员模式打开powershell或cmd或终端
- 在终端输入如下命令并回车以启用wsl功能:
```powershell
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
```
- 重启
- 再次以管理员模式打开终端,输入以下命令并回车以启用虚拟机平台功能:
```powershell
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
```
- 再次重启
- 下载[wsl2 linux内核更新包](https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi)并运行
- 再次以管理员模式打开终端,输入以下命令并回车以设置wsl默认版本为wsl2:
```powershell
wsl --set-default-version 2
```
## 安装archlinux发行版并创建用户
- [下载Distrod](https://github.com/nullpo-head/wsl-distrod/releases/download/v0.1.7/distrod_wsl_launcher-x86_64.zip)以安装多个linux发行版并让wsl2支持systemd。
- 解压缩Distrod_wsl_launcher压缩包,双击运行其中的`distrod_wsl_launcher.exe`。
- 在终端中输入`2`,以从[linuxcontainers.org](https://linuxcontainers.org/)获取拥有的wsl2发行版列表。
- 在终端中输入`archlinux`,获取linuxcontainers.org拥有的archlinux版本
- 在终端中输入`1`,下载当前版本。将archlinux安装于`%LocalAppData%\Distrod`,该发行版默认名为Distrod。
- 输入linux用户名以创建用户,无需和windows用户名一致。
- 创建用户密码,输入时不会显示,回车即可。
- 再次输入密码,回车。
- Distrod完成安装,会自动以创建的用户和bash登录archlinux。
- 在窗口输入`sudo /opt/distrod/bin/distrod enable`确保systemd被启用。
- 在窗口输入`sudo nano /etc/wsl.conf`,使用nano文本编辑器创建/etc/wsl.conf文件,输入以下内容并按下 ctrl+c ctrl+x设置默认登录用户。
```conf
[user]
default=你创建的用户名
```
- 关闭该窗口。
## 终端操作wsl的基本用法
- [建议]从[微软商店](https://www.microsoft.com/store/productId/9N0DX20HK701)下载 Windows Terminal,或者从网上下载[conemu](https://www.fosshub.com/ConEmu.html)、[tabby](https://github.com/Eugeny/tabby/releases/tag/v1.0.188)等对wsl提供支持的终端并打开。
- 单击终端标题栏的加号右侧按钮,单击Distrod即可登录到archlinux,若没有Distrod需要单击设置,在配置中进行刷新/复制。
- 可选的方式是在powershell或cmd中输入`wsl -d Distrod`登录到archlinux。
- 按下 ctrl+d 退出archlinux。如果在powershell终端登录到wsl,将退出到powershell,如果在单独窗口登录,将关闭该窗口。
- 在powershell中输入`wsl -d Distrod`登录到Distrod;输入`wsl -t Distrod`终止Distrod;输入`wsl --shutdown`立刻终止所有发行版和wsl虚拟机。
## [可选]重新分配archlinux安装位置和名称
用Distrod安装的发行版默认名为`Distrod`,且虚拟磁盘位于C盘的隐藏目录%LocalAppData%。如果希望发行版的名字更加明确或更换虚拟磁盘位置(以发行版名称改为arch、安装到E盘为例),按本节进行操作。如果没有这些需求,跳过本节,但需要注意后续章节中所有`wsl/wslg xxx
arch xxx`命令和快捷方式均需将arch替换为Distrod。
- 在终端打开powershell,输入:
```powershell
wsl --shutdown
wsl -l -v #查看当前安装的发行版
mkdir E:arch_wsl #创建存放的目录,自己选择合适的存储路径,注意导入时无法放在根目录,有条件的可放在固态硬盘,读取、导入、导出均会更快
wsl --export Distrod E:arch_wsl/arch_bk.vhdx --vhd #导出为虚拟磁盘文件
#或者 wsl --export Distrod E:arch_wsl/arch.tar导出为压缩包,经测试输出vhdx文件更快,因为就是复制粘贴,而tar还需要进行压缩
wsl --import arch E:arch_wsl E:arch_wsl/arch_bk.vhdx --vhd #导入archlinux,安装位置为E:arch_wsl
#或者 wsl --import arch E:arch_wsl E:arch_wsl/arch_bk.tar
wsl -d arch #登录到arch,确保能够登录到archlinux,且登录用户为创建的用户
ctrl+d登出archlinux
wsl --unregister Distrod #删除Distrod发行版
wsl -l -v #查看当前安装的发行版
```
## 为archlinux配置KDE桌面并可视化
### 为archlinux换源
- 打开终端,登入arch
- 输入`sudo nano /etc/pacman.d/mirrorlist`添加中科大镜像源,在第一行添加以下内容后按下 ctrl+s ctrl+x退出:
```conf
Server=https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch
```
- 输入`sudo nano /etc/pacman.conf`添加archlinuxcn镜像源。找到`#ParallelDownloads = 5`,将#号删除,根据网络情况更改并行下载数,在最后一行添加以下内容后按下 ctrl+s ctrl+x退出:
```conf
[archlinuxcn]
Server=https://mirrors.ustc.edu.cn/archlinuxcn/$arch
```
- 在终端输入:
```bash
sudo pacman -Syyu #更新系统
sudo pacman -S archlinuxcn-keyring #导入GPG密钥
sudo pacman -S fish yay #安装fish外壳和yay包管理器
```
### 下载、配置kde桌面和常用软件
- 在终端输入:
```bash
yay -S plasma konsole dolphin yakuake spectacle kate breeze-icons wqy-zenhei
```
此时就安装了kde系的图形化系统设置、终端、文件管理器、文本编辑器图标及中文字体。在开始菜单应该就可以找到konsole(arch)、kate(arch)等快捷方式,可以单击后打开图形化程序,yakuake、spectacle等需要捕获全局热键和桌面支持的程序还无法运作。如果没有自动生成快捷方式,在powershell中终止arch并重启以生效。
### 安装tigervnc并配置,使KDE桌面可视化
- 在终端输入:
```bash
yay -S tigervnc # 安装tigervnc虚拟网络控制台
vncpasswd #设置vnc的密码并确认,需要至少6位密码
sudo nano /etc/tigervnc/vncserver.users #打开vncserver的用户配置
```
- 在nano编辑器中,将光标移动至最后一行,输入`:1=你创建的用户名`,按下 ctrl+s ctrl+x。其中1可以更换为其他数,以避免重叠。
- 在终端输入:
```bash
sudo systemctl start vncserver@:1 #运行vnc服务器
vncviewer -passwd ~/.vnc/passwd 127.0.0.1:1 #运行vnc查看器,其中127.0.0.1为主机ip,可以替换为localhost或者省略
```
- 现在就可以进入远程KDE桌面进行图形化操作了,yakuake、spectacle等需要桌面的程序就可以正常运行了。按下F8可以打开vncviewer菜单,选择设置可以进行常用设置。
- 若要关闭该视窗,按下F8,点击disconnect可以断开连接;或者直接按×关闭vncviewer窗口。不要选择关机,否则需要重新启动vnc服务器甚至重启arch发行版。
- 在终端输入vncviewer或者在windows开始菜单搜索vncviewer可以显示图形化连接窗口,在该界面的设置会自动保存,如访问的服务器、全屏、全彩、上下文菜单快捷键、是否共享剪贴板等。
- linux上运行vncviewer的全屏模式会被windows的任务栏挡住(好处是alt-tab、win-tab可以在windows和linux窗口间切换),解决方法如下:
1. F8,重新点击fullscreen
2. 将windows任务栏设置为智能隐藏(并不智能)
3. 在windows安装[tigervnc](https://nchc.dl.sourceforge.net/project/tigervnc/beta/1.13beta/tigervnc64-1.12.90.exe),从windows的tigervnc访问可以确保全屏正常显示
- 如果想要在登录arch发行版时就启动vnc服务器,在终端输入`sudo systemctl enable vncserver@:1`将其设置为开启自启(会延长启动时间)。
- 如果想要为打开kde桌面创建windows快捷方式,在windows开始菜单搜索arch的任意程序快捷方式,右键打开文件所在位置,复制并创建副本,重命名为合适的名字,右键打开属性,将“目标”中`cd "~" --`后面的内容替换为`vncviewer -passwd ~/.vnc/passwd :1`。更改图标为合适的图标。右键添加到开始菜单或者复制到想要存放的位置。
- 如果想要用windows上的vncviewer创建快捷方式,在windwos开始菜单搜索tigervnc(无发行版后缀),右键打开所在位置,发送到桌面后,在桌面点击快捷方式,右键打开属性,在`Windows TigerVNC安装目录\TigerVNC\vncviewer.exe`后增加`-passwd \\wsl.localhost\arch\home\你创建的用户名\.vnc\passwd :1`即可。
## [可选]配置中文界面
- 在arch的终端中输入:
```bash
fish #进入fish外壳
sudo nano /etc/locale.gen #打开本地化配置文件
```
- 找到`#en_US.UTF-8 UTF-8`和`#zh_CN.UTF-8 UTF-8`,将#号删除,按下 ctrl+s ctrl+x退出。
- 在终端输入:
```bash
sudo locale-gen #生成本地化内容,还需要对环境变量进行设置
```
- 使用任意文本编辑器打开家目录下的`.bashrc`,在末尾添加:
```bash
export LANG="zh_CN.UTF-8"
export LANGUAGE="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"
export $(dbus-launch)
```
- 如果使用fish,在家目录/.config/fish目录下打开`config.fish`,在末尾添加:
```fish
export LANG="zh_CN.UTF-8"
export LANGUAGE="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"
export $(dbus-launch)
```
- 现在所有提供本地化支持的程序都将显示中文了。如果没有立刻生效,再次输入bash/fish更新环境变量。如果某些程序仍显示异常,重启arch发行版。