Windows Terminal是微软出品的新版终端,可扩展性超高,用户可以很大程度的DIY终端外观,比旧版Cmd这个小黑框更好看也更强大。
安装
- 进入Windosw自带的应用商店搜索
Windows Terminal,点击安装即可。也可以根据文档下载Microsoft/Terminal源码自行安装 

基本配置
- 首先打开
Windows Terminal终端,点击下三角图标,选择Settings打开配置文件profiles.json 

- 这里举例配置
PowerShell和Cmd,如需其它终端如GitBash,可参考以下代码自行配置"profiles":[{// PowerShell"guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}", // 唯一ID"name": "PowerShell","commandline": "powershell.exe", // 命令行所在位置"colorScheme" : "Campbell", // 主题"useAcrylic": true, // 毛玻璃"acrylicOpacity" : 0.8, // 不透明度"fontSize": 10, // 字体大小"fontFace" : "Consolas", // 字体"cursorShape" : "emptyBox", // 光标形状,bar/emptyBox/filledBox/underscore/vintage"padding": "10, 10, 10, 10", // 边距"closeOnExit": true, // 关闭时退出终端"startingDirectory": "./", // 当前目录打开"historySize": 9001, // 上滚历史行数"hidden": false},{// Command"guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}","name": "Command","commandline": "cmd.exe", // 命令行所在位置"colorScheme" : "Campbell", // 主题"useAcrylic": true, // 毛玻璃"acrylicOpacity" : 0.8, // 不透明度"fontSize": 10, // 字体大小"fontFace" : "Consolas", // 字体"cursorShape" : "emptyBox", // 光标形状,bar/emptyBox/filledBox/underscore/vintage"padding": "10, 10, 10, 10", // 边距"closeOnExit": true, // 关闭时退出终端"startingDirectory": "./", // 当前目录打开"hidden": false,"historySize": 9001}],
 
美化
修改字体
- 推荐字体Fira Code,进入Github仓库,点击上方
releases,下载FiraCode_2.zip,下载完成后解压,进入tff文件夹,双击安装即可。 安装完成后,打开配置文件
profiles.json,修改字体属性后保存"profiles":[{// PowerShell......"fontFace" : "Fira Code", // 字体......}]
修改配色
打开终端配色开源库iTerm2-Color-Schemes,选择喜欢的配色方案。例如这里选择的是
rebecca,在配色库中找到rebecca.json,点击进入,复制配色方案{"name": "rebecca","black": "#12131e","red": "#dd7755","green": "#04dbb5","yellow": "#f2e7b7","blue": "#7aa5ff","purple": "#bf9cf9","cyan": "#56d3c2","white": "#e4e3e9","brightBlack": "#666699","brightRed": "#ff92cd","brightGreen": "#01eac0","brightYellow": "#fffca8","brightBlue": "#69c0fa","brightPurple": "#c17ff8","brightCyan": "#8bfde1","brightWhite": "#f4f2f9","background": "#292a44","foreground": "#e8e6ed"}
打开配置文件
profiles.json,下拉找到schemes列表,将复制的配色方案粘贴进去"schemes": [{"name": "rebecca","black": "#12131e","red": "#dd7755","green": "#04dbb5","yellow": "#f2e7b7","blue": "#7aa5ff","purple": "#bf9cf9","cyan": "#56d3c2","white": "#e4e3e9","brightBlack": "#809699","brightRed": "#ff92cd","brightGreen": "#01eac0","brightYellow": "#fffca8","brightBlue": "#69c0fa","brightPurple": "#c17ff8","brightCyan": "#8bfde1","brightWhite": "#f4f2f9","background": "#292a44","foreground": "#e8e6ed"}]
最后修改
profiles列表中相应终端的colorScheme属性为配色方案中的name值"profiles":[{// PowerShell......"colorScheme" : "rebecca", // 主题......}]
添加Emoji
x> Typecho编辑器好像不支持Emoji,附一个Emoji表情网站,需要请自取
使用管理员模式打开
PowerShell,输入以下命令创建配置文件if (!(Test-Path -Path $PROFILE )) { New-Item -Type File -Path $PROFILE -Force }# C:\Users\[用户名]\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
安装
choco```powershelliwr https://chocolatey.org/install.ps1 -UseBasicParsing | iex
报错的话应该是Powershell的执行策略问题
Get-ExecutionPolicy # 查看当前策略 Set-ExecutionPolicy Unrestricted # 设置为Unrestricted
等下全部配置完成后,再将执行策略设回前面查看策略时的值(更安全)
choco # 测试是否安装成功
- 使用`choco`安装`ConEmu````powershell> choco install ConEmu
安装
oh-my-posh和posh-git> Install-Module posh-git -Scope CurrentUser> Install-Module oh-my-posh -Scope CurrentUser> install-module posh-git
打开
PowerShell配置文件,如果不知道文件路径可使用$PROFILE查看,打开后插入以下语句Import-Module posh-gitImport-Module oh-my-poshSet-Theme Paradox # 设置主题,具体可选主题可看后面function prompt {"PS $pwd X >" } # X代表Emoji表情
最后在
PowerShell内输入配置文件路径来更新配置并重启PowerShell随机Emoji
打开
oh-my-posh主题配置文件目录# 主题配置文件目录C:\Users\[用户名]\Documents\WindowsPowerShell\Modules\oh-my-posh\2.0.332\Themes\
选择想修改的主题文件,复制一份重命名为
myTheme.psm1,打开myTheme.psm1进行修改找到以下表示右箭头
>的语句,并在其前面加入#进行注释# $prompt += Write-Prompt -Object ($sl.PromptSymbols.PromptIndicator) -ForegroundColor $sl.Colors.VirtualEnvBackgroundColor
然后插入以下代码
$food = Get-Random -InputObject ("X","X","X"....) # X代表Emoji标签$color = Get-Random -InputObject ("VirtualEnvBackgroundColor", "WithForegroundColor", "GitDefaultColor", "PromptHighlightColor", "PromptBackgroundColor", "WithBackgroundColor")$prompt += Write-Prompt -Object ($sl.PromptSymbols.PromptIndicator) -ForegroundColor $sl.Colors.$color$prompt += Write-Prompt -Object "$food "

最后打开
PowerShell配置文件,应用myTheme主题Set-Theme myTheme # 设置主题
最终效果

其它
myTheme主题配置
[hide]
#requires -Version 2 -Modules posh-gitfunction Write-Theme {param([bool]$lastCommandFailed,[string]$with)$lastColor = $sl.Colors.PromptBackgroundColor$prompt = Write-Prompt -Object $sl.PromptSymbols.StartSymbol -ForegroundColor $sl.Colors.PromptForegroundColor -BackgroundColor $sl.Colors.SessionInfoBackgroundColor#check the last command state and indicate if failedIf ($lastCommandFailed) {$prompt += Write-Prompt -Object "$($sl.PromptSymbols.FailedCommandSymbol) " -ForegroundColor $sl.Colors.CommandFailedIconForegroundColor -BackgroundColor $sl.Colors.SessionInfoBackgroundColor}#check for elevated promptIf (Test-Administrator) {$prompt += Write-Prompt -Object "$($sl.PromptSymbols.ElevatedSymbol) " -ForegroundColor $sl.Colors.AdminIconForegroundColor -BackgroundColor $sl.Colors.SessionInfoBackgroundColor}$user = $sl.CurrentUser$computer = [System.Environment]::MachineName$path = Get-FullPath -dir $pwdif (Test-NotDefaultUser($user)) {# User@Hostname$prompt += Write-Prompt -Object "$user " -ForegroundColor $sl.Colors.GitDefaultColor -BackgroundColor $sl.Colors.SessionInfoBackgroundColor# $prompt += Write-Prompt -Object "$user@$computer " -ForegroundColor $sl.Colors.SessionInfoForegroundColor -BackgroundColor $sl.Colors.SessionInfoBackgroundColor}if (Test-VirtualEnv) {$prompt += Write-Prompt -Object "$($sl.PromptSymbols.SegmentForwardSymbol) " -ForegroundColor $sl.Colors.SessionInfoBackgroundColor -BackgroundColor $sl.Colors.VirtualEnvBackgroundColor$prompt += Write-Prompt -Object "$($sl.PromptSymbols.VirtualEnvSymbol) $(Get-VirtualEnvName) " -ForegroundColor $sl.Colors.VirtualEnvForegroundColor -BackgroundColor $sl.Colors.VirtualEnvBackgroundColor$prompt += Write-Prompt -Object "$($sl.PromptSymbols.SegmentForwardSymbol) " -ForegroundColor $sl.Colors.VirtualEnvBackgroundColor -BackgroundColor $sl.Colors.PromptBackgroundColor}else {$prompt += Write-Prompt -Object "$($sl.PromptSymbols.SegmentForwardSymbol) " -ForegroundColor $sl.Colors.SessionInfoBackgroundColor -BackgroundColor $sl.Colors.PromptBackgroundColor}# Writes the drive portion$prompt += Write-Prompt -Object "$path " -ForegroundColor $sl.Colors.PromptForegroundColor -BackgroundColor $sl.Colors.PromptBackgroundColor$status = Get-VCSStatusif ($status) {$themeInfo = Get-VcsInfo -status ($status)$lastColor = $themeInfo.BackgroundColor$prompt += Write-Prompt -Object $($sl.PromptSymbols.SegmentForwardSymbol) -ForegroundColor $sl.Colors.PromptBackgroundColor -BackgroundColor $lastColor$prompt += Write-Prompt -Object " $($themeInfo.VcInfo) " -BackgroundColor $lastColor -ForegroundColor $sl.Colors.GitForegroundColor}# Writes the postfix to the prompt$prompt += Write-Prompt -Object $sl.PromptSymbols.SegmentForwardSymbol -ForegroundColor $lastColor# Time# $timeStamp = Get-Date -UFormat %R# $timestamp = "$timeStamp"# $prompt += Set-CursorForRightBlockWrite -textLength ($timestamp.Length + 1) # 一堆空格到行末# $prompt += Write-Prompt $timeStamp -ForegroundColor $sl.Colors.GitDefaultColor # 行末# $prompt += Set-Newline # NewLineif ($with) {$prompt += Write-Prompt -Object "$($with.ToUpper()) " -BackgroundColor $sl.Colors.WithBackgroundColor -ForegroundColor $sl.Colors.WithForegroundColor}# $prompt += Write-Prompt -Object ($sl.PromptSymbols.PromptIndicator) -ForegroundColor $sl.Colors.VirtualEnvBackgroundColor# $prompt######################$food = Get-Random -InputObject (“X”,“X”,“X”,“X”,“X”,)$color = Get-Random -InputObject ("VirtualEnvBackgroundColor", "WithForegroundColor", "GitDefaultColor", "PromptHighlightColor", "PromptBackgroundColor", "WithBackgroundColor")$prompt += Write-Prompt -Object ($sl.PromptSymbols.PromptIndicator) -ForegroundColor $sl.Colors.$color$prompt += Write-Prompt -Object "$food "######################}$sl = $global:ThemeSettings #local settings$sl.PromptSymbols.StartSymbol = ''$sl.PromptSymbols.PromptIndicator = [char]::ConvertFromUtf32(0x276F)$sl.PromptSymbols.SegmentForwardSymbol = [char]::ConvertFromUtf32(0xE0B0)$sl.Colors.PromptForegroundColor = [ConsoleColor]::White$sl.Colors.PromptSymbolColor = [ConsoleColor]::White$sl.Colors.PromptHighlightColor = [ConsoleColor]::DarkBlue$sl.Colors.GitForegroundColor = [ConsoleColor]::Black$sl.Colors.WithForegroundColor = [ConsoleColor]::DarkRed$sl.Colors.WithBackgroundColor = [ConsoleColor]::Magenta$sl.Colors.VirtualEnvBackgroundColor = [System.ConsoleColor]::Red$sl.Colors.VirtualEnvForegroundColor = [System.ConsoleColor]::White
[/hide]
