Windows Terminal内核、配置及主题优化全流程

本文最后更新于:2024年9月11日 晚上

1、内核优化

替换为优化内核PWSH 7,官方仓库:

https://github.com/PowerShell/PowerShell/releases

进入后,下载Windows 64位安装包:

image-20240909173313490

根据安装向导,一路点击安装,安装完成后打开Windows terminal设置页面,将启动的内核切换为PowerShell

image-20240909173607167

2、配置优化

2.1、默认配置文件

安装完成后的windows terminal默认配置文件为settings.json,默认路径:

1
2
# xxx为PC账户名
C:\Users\xxx\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState

通过Windows terminal设置界面,可以直接打开配置文件:

image-20240909175147668

2.2、配置优化

对于windows terminal,我们来对其进行简单的配置优化,打开settings.json文件,修改profiles中的内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# 完整配置如下:
"profiles":
{
"defaults": // 适用于所有配置文件的默认设置
{
//设置字体配置
"font":
{
"face": "Agave Nerd Font",
"size": 12
},
//设置配色方案
"colorScheme": "One Half Dark (copy)",
//设置亚克力效果
"useAcrylic": true,
//亚克力效果不透明度
"acrylicOpacity": 0.80,
//设置背景图片
"backgroundImage": "F:\\\u4e2a\u4eba\u6587\u6863\\\u58c1\u7eb8\\wallhaven-x6jo5o.jpg",
//设置背景透明度
"backgroundImageOpacity": 0.85,
//设置背景图片拉伸模式
"backgroundImageStretchMode": "uniformToFill",
//设置光标形状
"cursorShape": "bar"
},
"list": //配置独立内核的配置文件
[
{
"commandline": "%SystemRoot%\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
"guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
"hidden": false,
"name": "Windows PowerShell"
},
{
"commandline": "%SystemRoot%\\System32\\cmd.exe",
"guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
"hidden": false,
"name": "\u547d\u4ee4\u63d0\u793a\u7b26"
},
{
"guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}",
"hidden": false,
"name": "Azure Cloud Shell",
"source": "Windows.Terminal.Azure"
},
{
"elevate": true,
"guid": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",
"hidden": false,
"name": "PowerShell",
"source": "Windows.Terminal.PowershellCore"
}
]
}

defaults为全局配置,list针对每个启动内核做单独的配置,当配置不同时,优先采用list中的独立配置项。

自定义配色方案在schemes中创建,自定义主题在themes中创建。scheme只影响单独运用的终端,themes会影响整个终端效果,下面是参考的配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
"schemes": 
[
{
"background": "#416187",
"black": "#06141C",
"blue": "#61AFEF",
"brightBlack": "#686E80",
"brightBlue": "#61AFEF",
"brightCyan": "#56B6C2",
"brightGreen": "#98C379",
"brightPurple": "#C678DD",
"brightRed": "#E06C75",
"brightWhite": "#DCDFE4",
"brightYellow": "#E5C07B",
"cursorColor": "#FFFFFF",
"cyan": "#56B6C2",
"foreground": "#72A1AD",
"green": "#98C379",
"name": "One Half Dark (copy)",
"purple": "#C678DD",
"red": "#E06C75",
"selectionBackground": "#FFFFFF",
"white": "#DCDFE4",
"yellow": "#E5C07B"
}
],
"themes": [
{
"name": "Custom Theme 1",
"tab": {
"background": "#1F1F1F",
"showCloseButton": "always",
"unfocusedBackground": "#2D2D2D"
},
"window": {
"applicationTheme": "dark",
"useMica": true
}
}
]

主题可在设置->外观->应用程序主题中设置:

image-20240910181007069

也可直接在配置文件中修改:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
"theme": "Custom Theme 1",
"themes":
[
{
"name": "Custom Theme 1",
"tab":
{
"background": "#1F1F1FFF",
"iconStyle": "default",
"showCloseButton": "always",
"unfocusedBackground": "#2D2D2DFF"
},
"window":
{
"applicationTheme": "dark",
"experimental.rainbowFrame": false,
"frame": null,
"unfocusedFrame": null,
"useMica": true
}
}
]

此配置项与themes同级,不可嵌入到defaults或list中,为全局配置。

3、主题优化

3.1、on-my-posh安装及配置

注意:下列步骤均基于管理员模式操作。

on-my-posh是powershell中用于自定义和美化命令行提示符的跨平台工具。基于on-my-posh,可以自由的定制powershell命令行样式,大大增强了pwsh的美观度和实用性。下面是on-my-posh的安装过程:

1)on-my-posh安装

打开Windows terminal命令行,执行安装指令:

1
2
3
winget install JanDeDobbeleer.OhMyPosh -s winget
#
winget install oh-my-posh

image-20240909180329019

2)安装oh-my-posh指令

安装完成后,进行oh-my-posh指令安装,执行下面指令:

1
(Get-Command oh-my-posh).Source

可能会执行失败,执行失败时进行手动安装:

1
Set-ExecutionPolicy Bypass -Scope Process -Force; Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://ohmyposh.dev/install.ps1'))

image-20240909180916109

在命令行输入oh-my-posh以验证oh-my-posh指令,正常输出如下:

image-20240909181059300

一般情况下默认安装最新版本,想要手动升级执行如下指令:

1
winget upgrade JanDeDobbeleer.OhMyPosh -s winget

3)配置oh-my-posh主题环境变量

  • 设置POSH_THEMES_PATH环境变量:这个变量的作用在快速定位到oh-my-posh主题路径

win+r打开运行栏,输入sysdm.cpl打开系统属性配置页,在‘高级’->‘环境变量’,新建POSH_THEMES_PATH系统变量,加入主题文件路径,默认如下:

1
2
# xxx替换为自己的账户名称
C:\Users\xxx\AppData\Local\Programs\oh-my-posh\themes\

image-20240909191025126

此路径下,每一个配置文件都为一个独立主题。

4)切换主题

创建环境变量成功后,重新打开Windows terminal,进行主题切换,示例:

1
2
# 切换到jandedobbeleer.omp主题
oh-my-posh init pwsh --config $env:POSH_THEMES_PATH\jandedobbeleer.omp.json | Invoke-Expression

切换成功后,命令面板的样式会变化:

image-20240909192526186

或者在面板执行Get-PoshThemes获取主题列表,再进一步选择。

切换指定的主题:

1
2
# M365Princess为主题名称
Set-PoshPrompt -Theme M365Princess

每种主题的效果,可以查看官方预览:https://ohmyposh.dev/docs/themes

3.2、Nerd字体安装

在配置完oh-my-posh后,因为主题中会含有部分特殊字符,用默认的系统字体会乱码,需要使用兼容性更好的字体,这里使用nerd font下面来安装

1)Nerd字体下载

访问Nerd官方下载字体: https://www.nerdfonts.com/font-downloads

选择任意一款字体下载即可,这里我选择下载Agrave Nerd Font字体:

image-20240909193138288

下载完成后,解压zip包,将其中的字体进行安装:

image-20240909193414036

上述文件,直接拖进C:\Windows\Fonts\路径进行安装:

image-20240909193521184

到此即可正常在系统中安装Nerd字体,后续在oh-my-posh中进一步配置。

2)oh-my-posh安装Nerd字体

进入Windows terminal,进行oh-my-posh字体安装:

1
oh-my-posh font install

执行后,可以看到我们之前装的Agrave字体,选中按回车即可:

image-20240909194004482

安装成功之后结果如下:

image-20240909194112007

切换powershell内核字体:

Windows terminal进入设置->PowerShell->外观->字体切换为Agrave Nerd Font,如下:

image-20240909194516190

PS:切换之后一定要记得点保存!!

配置完上面的内容,主题即大功告成了。

提示:除了nerd还有其他可使用的字体还有:等距更纱黑体、powerline: https://github.com/powerline/fonts

3.3、配置主题自启动

在默认powershell启动下,不会自动加载主题,下面通过自定义配置,使得PWSH启动时能够自动加载主题:

  • 创建Powershell配置文件
1
2
# 检查 $PROFILE 文件是否存在, 如果不存在则新建空文件
if (!(Test-Path -Path $PROFILE )) { New-Item -Type File -Path $PROFILE -Force }

image-20240909200813533

  • 修改配置文件
1
notepad $PROFILE
  • 加入配置内容
1
2
3
4
# 配置打开pwsh默认使用oh-my-posh并配置主题:jandedobbeleer.omp.json、1_shell.omp.json替换为自己定义的主题
oh-my-posh init pwsh --config $env:POSH_THEMES_PATH\jandedobbeleer.omp.json | Invoke-Expression
#
oh-my-posh init pwsh --config "env:POSH_THEMES_PATH/1_shell.omp.json" | Invoke-Expression

image-20240909200924536

  • 生效配置文件
1
. $PROFILE

image-20240909201003112

生效配置后,重启Windows terminal即可自动加载oh-my-posh及主题了:

image-20240909201113245

4、(可选)安装Starship主题

4.1、starship安装

基于前几章,已经将Windows terminal各项配置及主题都搞定,这里个人喜欢Starship的样式,在配置完前面的内容后,选择安装单独的Starship主题样式:

官方开源库:https://github.com/starship/starship

样式预览:

demo.gif

针对Windows安装,使用以下命令:

1
2
# 默认走github源
winget install --id Starship.Starship

键入Y同意:

image-20230517112525751

上述源安装失败后,切换到widget源继续:

1
winget install --id Starship.Starship --source winget

安装成功如下:

image-20240909202527893

安装完成后重启powershell。

4.2、生效配置

修改配置文件:

1
2
3
4
5
6
# 打开配置文件
notepad $PROFILE
# 填入下面内容
Invoke-Expression (&starship init powershell)
# 生效配置
. $PROFILE

切换效果:

image-20240909202928203

非GIT路径显示如下:

image-20240909203350840

GIT路径显示如下,会展示当前git分支及版本,仓库所用的编程语言:

image-20240909203552531

给命令行再加入背景壁纸:

image-20240909204005684

至此配置完毕。

5、附录:Windows terminal常用快捷键

类别 操作 快捷键
标签页操作 新建标签页 Ctrl + Shift + T
切换到下一个标签页 Ctrl + Tab
切换到上一个标签页 Ctrl + Shift + Tab
切换到指定编号的标签页 Ctrl + Num (1-9)
关闭当前标签页 Ctrl + W
窗口分割 垂直分割窗口 Alt + Shift + +
水平分割窗口 Alt + Shift + -
在分割的窗口间切换焦点 Alt + 方向键
复制粘贴 复制选中文本 Ctrl + C
粘贴文本 Ctrl + V
粘贴(某些 shell 中) Shift + 鼠标右键
文本操作 删除光标前的一个单词 Ctrl + Backspace
删除光标后的一个单词 Ctrl + Delete
滚动和查找 向上/向下滚动 Ctrl + Shift + Up/Down
在终端中查找文本 Ctrl + Shift + F
字体大小调整 增大字体 Ctrl + +
减小字体 Ctrl + -
重置字体大小 Ctrl + 0
全屏模式 切换全屏模式 F11
透明度调节 调整窗口透明度 Ctrl + Shift + 滚轮
设置 打开设置 JSON 文件 Ctrl + ,
命令面板 打开命令面板 Ctrl + Shift + P
配置文件 快速切换配置文件 Ctrl + Shift + 空格
多行选择 选择多行文本 Shift + 鼠标左键拖动
窗口操作 打开新的 Windows Terminal 窗口 Shift + Ctrl + N
关闭整个 Windows Terminal 窗口 Alt + F4
特定标签页 打开新的 PowerShell 标签页 Ctrl + Shift + 1
打开新的 CMD 标签页 Ctrl + Shift + 2

参考:

https://blog.csdn.net/Likianta/article/details/124950605

https://blog.csdn.net/yihuajack/article/details/111405007

https://ohmyposh.dev/docs/installation/prompt

https://zhuanlan.zhihu.com/p/456129712

https://sspai.com/post/52907

https://blog.joaograssi.com/windows-subsystem-for-linux-with-oh-my-zsh-conemu/


Windows Terminal内核、配置及主题优化全流程
http://www.codestar.top/2024/09/11/Windows/Windows-Terminal内核、配置及主题优化全流程/
作者
mini小新
发布于
2024年9月11日
更新于
2024年9月11日
许可协议