非系统盘安装WSL2并配置Win10任务栏启动菜单,适配HiDPi

130

【2020.12.31 10:00更新】

wsltoolbar.gif

资料集合

  • LxRunOffline:WSL维护,安装、移动、备份。
  • Arch下载地址:WSL安装包,下载
    archlinux-bootstrap-xxxx.xx.xx-x86_64.tar.gz
  • vcxsrv:X Server
  • wsl-windows-toolbar-launcher:生成Win10任务栏托盘的脚本,配置好之后可以直接从Win10的任务栏的菜单启动WSL的应用。

前置条件: 遵循官方教程 开启WSL2 (本教程不适配WSL1),这没啥好说的。

安装 Arch for WSL2 到 D 盘

  1. 安装 LxRunOffline。推荐使用 chocolatey安装,或者直接下载 可执行文件
  2. 如果在开启WSL2时已经安装了其他的Linux子系统,请先删除。(或者使用LxRunOffline移动到D盘,可自己探索)
  3. 安装 archlinux-bootstrap-2020.12.01-x86_64.tar.gzD:\WSL\arch,名字为 arch。在powershell或cmd执行如下命令:
LxRunOffline.exe i -n arch -d D:\WSL\arch -r root.x86_64 -f .\archlinux-bootstrap-2020.12.01-x86_64.tar.gz -s
  1. LxRunOffline安装的是WSL1,修改为WSL2:wsl --set-version arch 2
  2. 测试arch:lxrunoffline r -w -n arch,如成功进入了WSL则进行下一步。
  3. 将arch设为默认的WSL:wsl --setdefault arch

配置 windows

1.下载并安装 vcxsrv

  1. 在vcxsrv的启动程序XLaunch上右键修改兼容性->更改所有用户设置->更改高DPI设置->替代高DPI缩放行为->应用程序
    替代高DPI缩放

  2. 启动 XLaunch。

  • Multiple windows
  • Display number:0
  • Start no client
  • 勾选 Disable access control
  • Save conguration (下次可以直接双击保存的配置文件来启动)

Multiple windows
勾选 Disable access control

  1. 在win10的防火墙中允许VcXsrv的访问,包括专用和公用。

配置 Arch

配置软件源

  1. 设置软件源
$ mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak
$ echo 'Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch' > /etc/pacman.d/mirrorlist
  1. 初始化秘钥
$ pacman-key --init
$ pacman-key --populate
$ pacman -Sy archlinux-keyring
  1. 更新软件源:pacman -Syu
  2. 安装软件:
pacman -S sudo wget curl make gcc fakeroot gzip git python3 vim vi xorg-apps gnome-menus cairo imagemagick fontconfig nerd-fonts-fira-code xorg-xclock

配置环境变量

  1. 设置LOCAL
$ vim /etc/locale.gen

en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8

$ locale-gen
  1. 设置Xorg环境变量:vim ~/.bashrc,添加以下两行
export DISPLAY=${DISPLAY:-$(grep -Po '(?<=nameserver ).*' /etc/resolv.conf):0}
export LIBGL_ALWAYS_INDIRECT=1

3.(首次配置可先跳过该步,测试成功后再配置)适配高分屏,该教程不使用完整的桌面环境,仅有一个菜单。所以不通过桌面环境来适配高分屏缩放,而是使用 Xresources。Xft.dpi: 192 => 200%; 168 => 175%; 144 => 150%; 96 =>100%

$ vim ~/.Xresources

Xft.dpi: 192
Xft.autohint: 0
Xft.lcdfilter:  lcddefault
Xft.hintstyle:  hintfull
Xft.hinting: 1
Xft.antialias: 1
Xft.rgba: rgb

$ vim ~/.bashrc

xrdb -merge ~/.Xresources

重启 WSL

退出所有终端,在powershell或cmd执行 wsl --shutdown

再打开WSL。

测试 xclock

在wsl中运行 xclock,应该会弹出一个时钟窗口,则配置成功。

xclock

配置任务栏启动菜单 wsl-windows-toolbar-launcher

在WSL中配置

  1. 安装wsl-windows-toolbar pip install wsl-windows-toolbar
  2. 安装cairosvg pip install cairosvg
  3. 运行 wsl-windows-toolbar -n arch,记住最后输出的任务栏工具的保存位置

在Windows中配置

在任务栏右击选择工具栏->新建工具栏,找到上一步中最后输出的文件夹位置,一般在C盘。

可以安装一个Pycharm或者浏览器测试一下,安装了新软件后需要重新执行 wsl-windows-toolbar。

完成。