WSL 折腾记

折腾 WSL(颓废)的一点记录,其中前面的一部分是很久以前写的,从 OneNote 中提取出来的。当时一时兴起,折腾的是 ArchLinux,但是后来很快就发现 ArchLinux 的坑太多,也没有官方支持,而且滚动更新不太适合和 WSL 搭配使用(我可不想每次打开电脑第一件事就是 pacman -Syu,还要时不时处理滚挂的情况)

目前在用 Debian,比 ArchLinux 稳定多了,但是仍然没有官方支持(好像是?)

最近又开始捣鼓 GUI,又遇到了很多坑,填了一些,但是还要一些实在是搞不定。目前打算弃坑 Debian,换回又官方支持的 Ubuntu

WSL安装位置的移动

1. `wsl --export [发行版名] [输出目录]\[发行版名].tar` 导出当前发行版
2. `wsl --unregister [发行版名]` 删除当前发行版
3. `wsl --import [发行版名] [安装目录] [输出目录]\[发行版名].tar --version 2` 重新导入发行版
4. `[发行版名].exe config --default-user[用户名]` 设置默认用户名为之前安装时的用户名(否则默认以root用户登录)
5. 删除导出的 `.tar` 文件(可选)

yay安装与使用的问题

6. 换源:在 `/etc/pacman.d/mirrorlist` 顶端添加 `Server = [htt](https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch) ps://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch`
7. 添加 archlinuxcn 源:在 `/etc/pacman.conf` 底部添加
1
2
3
4
5
[archlinuxcn]

SigLevel = Optional TrustAll

Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch
8. 安装 yay:`sudo pacman -S yay` 9. EX: `database already registered` 问题:将 archlinuxcn 源添加至错误的文件 10. EX: 找不到 yay 包:没有添加 archlinuxcn 源

P.S. WSL 似乎不适合与 ArchLinux 这种激进的滚动发行版搭配使用,已弃坑


以下均在 Debian 环境下

GUI 问题

1. 花屏

原因可能是由于缺乏显卡驱动导致的

解决方案:sudo apt install mesa-utils

但是这个方案似乎不治本(也有可能根本没解决问题),安装完一段时间内这个问题确实解决了。但是在写本文时它又复发了,暂时无解。

2. GUI 应用程序的语言问题

WSL默认语言为全英文,在终端操作确实很好用,但是使用 GUI 程序时就有些不爽了。

解决方案I: 更改全局 locale: sudo dpkg-reconfigure locales,按照 TUI 界面操作就可以了(注意第一步按空格键选择)

解决方案II: 设置 ~/.profile: 还是 sudo dpkg-reconfigure locales,生成 zh_CN.UTF-8 的 locale(默认是没有的),然后再 ~/.profile 中插入 export LANG = zh_CN.UTF-8(如果是更改 .bashrc 从Windows开始菜单运行的程序不会生效,猜测是由于从开始菜单运行时不经过bash)

3. HiDPI 缩放问题

GTK 程序默认似乎是没有问题的,问题在于 Qt

解决方案: 编辑~/.profile:

1
2
3
4
export QT_QPA_PLATFORM="wayland"
export QT_AUTO_SCREEN_SCALE_FACTOR=0
export QT_ENABLE_HIGHDPI_SCALING=0
export QT_SCALE_FACTOR=1.25

对于 Qt5 应用程序,就完美地解决了问题,但是 Qt6 程序似乎会缩放地过大,暂时无解

4. Qt 应用程序主题问题

安装 qt5ct qt6ct 和需要的主题,编辑 .profile: export QT_QPA_PLATFORMTHEME=qt5ct

存在的问题

  1. 花屏问题的复现
  2. Qt6 缩放过大
  3. Wayland 下 Qt 应用程序窗口边框不能缩放,且没有阴影(导致分辨不清窗口边缘)