重新尝试 WSL2 和 Windows Terminal 后感觉不错

就不说怎么安装了,见 https://docs.microsoft.com/en-us/windows/wsl/wsl2-install

下面的配置解决了我的几个问题:

            "fontFace":  "SauceCodePro Nerd Font Mono",
            "cursorShape": "filledBox",
            "padding" : "0, 0, 0, 0",
            "scrollbarState": "hidden",
            "commandline" : "wsl.exe ~",

image

我的完整配置如下:


// To view the default settings, hold "alt" while clicking on the "Settings" button.
// For documentation on these settings, see: https://aka.ms/terminal-documentation

{
    "$schema": "https://aka.ms/terminal-profiles-schema",

    "defaultProfile": "{c6eaf9f4-32a7-5fdc-b5cf-066e8a4b1e40}",

    "profiles":
    [
        {
            "guid": "{c6eaf9f4-32a7-5fdc-b5cf-066e8a4b1e40}",
            "hidden": false,
            "name": "Ubuntu-18.04",
            "source": "Windows.Terminal.Wsl",
            "fontFace":  "SauceCodePro Nerd Font Mono",
            "cursorShape": "filledBox",
            "padding" : "0, 0, 0, 0",
            "scrollbarState": "hidden",
            "commandline" : "wsl.exe ~",
            "snapOnInput": true
        },
        {
            // Make changes here to the powershell.exe profile
            "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
            "name": "Windows PowerShell",
            "commandline": "powershell.exe",
            "hidden": false
        },
        {
            // Make changes here to the cmd.exe profile
            "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
            "name": "cmd",
            "commandline": "cmd.exe",
            "hidden": false
        },
        {
            "guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}",
            "hidden": false,
            "name": "Azure Cloud Shell",
            "source": "Windows.Terminal.Azure"
        }
    ],

    // Add custom color schemes to this array
    "schemes": [],

    // Add any keybinding overrides to this array.
    // To unbind a default keybinding, set the command to "unbound"
    "keybindings": []
}

PS: Windows Terminal 还不能用于生产工具,还存在以下问题没有解决:

更新到 0.7.3291.0 版本后可以输入中文了,但是会自动插入空格。光标在vim里可以变成竖线了,但是白块的时候还是挡住当前字符。再等他完善下吧。

期待下一个版本更新,再试试 hyper 吧,hyper 速度不错,就是遇到两个小问题:

缺陷特殊字体
image

最后又试了一下在 WSL 里装 xfce. 最终效果是这样的。

image

配置 xfce 参考了:

https://token2shell.com/howto/x410/xidekick/

https://www.robertmarkoski.net/wsl/nix/xfce4-on-wsl/

https://www.lainme.com/doku.php/blog/2018/07/%E5%A6%82%E4%BD%95%E4%BC%98%E9%9B%85%E7%9A%84%E5%9C%A8windows_10%E4%B8%8A%E8%A3%85x

https://github.com/QMonkey/wsl-tutorial

https://autoize.com/xfce4-desktop-environment-and-x-server-for-ubuntu-on-wsl-2/

下面是我的快捷打开terminal的相关脚本和快捷方式

wsl.zip

上面的 zip 里 vcxsrv.bat 有个 bug, 用下面这句忽略报错

@echo off

"C:\Program Files\VcXsrv\vcxsrv.exe" :0 -multiwindow -clipboard -wgl -ac -silent-dup-error

试了几个终端,都不合我意,安装个 deepin 终端:

sudo add-apt-repository ppa:leaeasy/dde
sudo apt install -y deepin-terminal

这个 deepin-terminal 版本比较低,考虑再换个新版本的试试。编译了个最新版,没看出啥区别,暂时用旧版本吧。

我又用回最新版本的 deepin-terminal 了,并修了一个 bug, 使其可以使用 VcXsrv 的窗口管理控制大小。

deepin-terminal -m tiling

上面 zip 包里的 terminal.bat 就需要改成下面这个了

@echo off

start /B vcxsrv.bat
rem bash -c "source ~/.bashrc;xfce4-terminal"

bash -c "cd ~;export DISPLAY=$(grep -m 1 nameserver /etc/resolv.conf | awk '{print $2}'):0;export LIBGL_ALWAYS_INDIRECT=1;export GTK_THEME=Adapta-Nokto;export [email protected]=fcitx;export GTK_IM_MODULE=fcitx;export QT_IM_MODULE=fcitx;fcitx-autostart;deepin-terminal -m tiling"

2020/04/02 更新:

其实我已经放弃 deepin-terminal 这个办法了,感觉性能有问题,有卡顿的现象。而且 WLS2 和安卓模拟器冲突了,所以我就把 WSL2 卸载了。

用了一阵子的 Mintty, 除了不支持标签页,其他都挺好的。

现在又换到 Windows Terminal 了,采用这个方法 microsoft/terminal#1203 (comment) 解决了 Windows Terminal 光标覆盖字符的问题,但是官方要 1.0 版本才解决这个光标的问题,自己编译了一个自己先用着,况且 1.0 版本的时间也块出来了。

点击进入评论 ...