就不说怎么安装了,见 https://docs.microsoft.com/en-us/windows/wsl/wsl2-install
下面的配置解决了我的几个问题:
- 配置字体
- 干掉黑框
- 隐藏滚动条
- 默认进入
$HOME
目录
"fontFace": "SauceCodePro Nerd Font Mono",
"cursorShape": "filledBox",
"padding" : "0, 0, 0, 0",
"scrollbarState": "hidden",
"commandline" : "wsl.exe ~",
我的完整配置如下:
// 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 还不能用于生产工具,还存在以下问题没有解决:
- 光标在 Vim 里面一直是白块状态,挡住当前字符
- 不能输入中文
- 鼠标点击不能切换 tmux 窗口
更新到 0.7.3291.0 版本后可以输入中文了,但是会自动插入空格。光标在vim里可以变成竖线了,但是白块的时候还是挡住当前字符。再等他完善下吧。
期待下一个版本更新,再试试 hyper 吧,hyper 速度不错,就是遇到两个小问题:
- nerd 字体显示有缺陷
- tmux 不支持鼠标
最后又试了一下在 WSL 里装 xfce. 最终效果是这样的。
配置 xfce 参考了:
https://token2shell.com/howto/x410/xidekick/
https://www.robertmarkoski.net/wsl/nix/xfce4-on-wsl/
https://github.com/QMonkey/wsl-tutorial
https://autoize.com/xfce4-desktop-environment-and-x-server-for-ubuntu-on-wsl-2/
下面是我的快捷打开terminal的相关脚本和快捷方式
上面的 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 XMODIFIERS=@im=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 版本的时间也块出来了。