手把手 windows terminal 美化,拥有王一博个性化的终端

windows terminal

<code>Windows 终端</code> 是一个新式主机应用程序,它面向你喜爱的命令行 shell,如命令提示符、PowerShell 和 bash(通过适用于 Linux 的 Windows 子系统 (WSL))。
它的主要功能包括多个选项卡、窗格、Unicode 和 UTF-8 字符支持、GPU 加速文本呈现引擎,你还可用它来创建你自己的主题并自定义文本、颜色、背景和快捷方式

windows terminal 美化

window11 系统默认会自动安装 windows terminal 的,
如果是 windows 10 的系统需要先 下载 windows-terminal

windows-terminal下载地址

https://apps.microsoft.com/store/detail/windows-terminal/9N0DX20HK701?hl=zh-cn&gl=cn

默认的 windows teminal 的样式

相对之前的 cmd 和 powershell 已经是非常好看了,但是还是得搞点个性化的东西,打开 windows terminal 进行设置

打开 windows terminal 进行设置

打开 windows terminal 设置后可以终端的 启动、样式、快捷键、配置的默认等进行设置,这里选择 打开 左下角的 <code>打开 JSON 文件</code>,点击后
默认会使用 编辑器帮你打开

3

<code>windows terminal 配置文件所在目录</code>

C:\Users\sunsb\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json

C:\Users\sunsb\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json

最好是,打开 settings.json 文件所在目录,对 settings.json 文件拷贝一份

对 settings.json 文件拷贝

使用编辑器 vscode 或者 notepad++ 打开 settings.json 后 ,找到 profiles 下的 defaults

// C:\Users\sunsb\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json
{
    "profiles": {
        "defaults": { // 终端的默认值配置
            "experimental.retroTerminalEffect": false, // 复古风格的终端效果
            "font": {
                "face": "Consolas",
                "size": 14
            }
        },
    }
}

下方图片就是,上面默认配置的可视化

默认配置的可视化

<code>配置终端亚克力效果</code>

{
// C:\Users\sunsb\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json
    "profiles": {
        "defaults": { // 终端的默认值配置
            "experimental.retroTerminalEffect": false, // 复古风格的终端效果
            "useAcrylic": true, // 是否使用 亚克力效果
            "acrylicOpacity": 0.1, // 亚克力效果 透明度
            "font": {
                "face": "Consolas",
                "size": 14
            }
        },
    }
}
亚克力效果

接下来,给终端配置一个背景图片,并且设置背景图的透明度

// C:\Users\sunsb\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json
{
    "profiles": {
        "defaults": { // 终端的默认值配置
            "experimental.retroTerminalEffect": false, // 复古风格的终端效果
            "useAcrylic": true, // 是否使用 亚克力效果
            "acrylicOpacity": 0.1, // 亚克力效果 透明度,取值:0 - 1
            "backgroundImage": "D:/Terminal/1.png", // 背景图片路径,注意,图片路径使用 / 正斜杠,拷贝路径过来需要替换下
            "backgroundImageOpacity": 1, // 背景图片透明度,取值:0 - 1
            "font": {
                "face": "Consolas",
                "size": 14
            }
        },
    }
}

注意,图片路径使用 / 正斜杠,拷贝路径过来需要替换下

<code>初次配置背景图效果</code>


初次配置背景图效果

对 亚克力效果透明度 <code>acrylicOpacity: 0.2</code> 和 背景图片透明度 <code>backgroundImageOpacity: 0.2</code> 进行调整,最好找深一点颜色图片来作为背景图

下面是调整过后的效果,可以根据自己选择的背景图片 来调整 亚克力效果透明度 和 背景图片透明度,边调整边查看效果

调整过后的效果

oh-my-posh 美化终端

使用 oh-my-posh 来进一步的美化终端,打开 oh-my-posh 官网地址查看 <code>安装命令</code>,这里采用了 <code>winget</code> 的方式安装了

::: block-2

oh-my-posh官网

https://ohmyposh.dev
:::

winget 方式安装 oh-my-posh
winget 是 windows 下的包管理工具

oh-my-posh 的安装方式

1 直接在 <code>Microsoft Store</code> 中搜索 <code>oh-my-posh</code> 进行安装,这种默认是安装在 C盘的,本着不将东西安装 C盘的原则,不采用这种方式安装

Microsoft Store 进行安装

2 通过命令安装,这里采用 <code>winget 命令方式</code> 进行安装,安装前,先新建 <code>D:\OhMyPosh</code> 目录,用于保存 <code>oh-my-posh</code> 的安装目录(D:\OhMyPosh)

新建的 D:\OhMyPosh 目录

安装前的注意事项

::: block-1

Windows PowerShell 执行策略

在执行 winget install 命令之前,先查看下,Windows PowerShell 的执行策略

执行策略 是 Windows PowerShell安全策略中的一部分,它将决定你是否可以载入配置文件(包括你的 Windows PowerShell profile文件)和运行脚本,它将会在运行前确定哪些文件必须具有数字签名(digitally signed)

get-ExecutionPolicy 获取 Windows PowerShell 当前执行策略

set-ExecutionPolicy 修改 Windows PowerShell 中执行策略的用户首选项(preference)
:::

::: block-2

执行策略状态说明

  • Restricted 表示状态是禁止的 不载入配置文件, 不执行脚本. Restricted 是默认值.
  • RemoteSigned 所有从互联网上下载的脚本必须通过信任的出版商签名(trusted publisher)
  • AllSigned 所有的配置文件和脚本必须通过信任的出版商签名(trusted publisher),这里所指的脚本页包括在本地计算机上创建的脚本
  • Unrestricted 载入所有的配置文件和脚本,如果运行了一个从互联网上下载且没有数字签名的脚本,在执行前都会被提示是否执行
    :::
// 执行策略状态:Restricted/RemoteSigned/AllSigned/Unrestricted

// 获取 Windows PowerShell 当前执行策略
get-ExecutionPolicy

// 修改 Windows PowerShell 中执行策略
set-ExecutionPolicy RemoteSigned

winget 执行命令安装 oh-my-posh

// oh-my-posh 安装命令
winget install JanDeDobbeleer.OhMyPosh -s winget --location D:\OhMyPosh

// oh-my-posh 更新命令
winget upgrade JanDeDobbeleer.OhMyPosh -s winget --location D:\OhMyPosh

::: block-2
-- location D:\OhMyPosh 是将 oh-my-posh 安装到 D:\OhMyPosh 目录下
:::

oh-my-posh 安装示例图

PowerShell 创建可维护配置文件

powershell文档
https://learn.microsoft.com/zh-cn/powershell

about_profiles
https://learn.microsoft.com/zh-cn/powershell/module/microsoft.powershell.core/about/about_profiles

可以创建一个 PowerShell 配置文件来自定义环境并将特定于会话的元素添加到启动的每个 PowerShell 会话中

PowerShell 配置文件是在 PowerShell 启动时运行的脚本,可以将配置文件用作登录脚本来自定义环境,
可以添加命令、别名、函数、变量、管理单元、模块和 PowerShell 驱动器,
还可以将其他特定于会话的元素添加到您的配置文件中,以便在每个会话中都可以使用它们,而无需导入或重新创建它们。

PowerShell 控制台支持以下基本配置文件,配置文件按优先顺序列出,第一个配置文件,如:<code>Microsoft.VSCode_profile.ps1</code> 具有最高优先级

PowerShell 支持用户和主机程序的多个配置文件,它不会为您创建配置文件

::: block-1

windows 下的几个变量

变量名 变量说明
$HOME 用户的主目录
$PSHOME PowerShell 安装目录
$PROFILE 当前用户、当前主机 配置文件的路径
$PROFILE.CurrentUserCurrentHost 当前用户、当前主机 配置文件的路径
$PROFILE.CurrentUserAllHosts 当前用户,所有主机 配置文件的路径
$PROFILE.AllUsersCurrentHost 所有用户,当前主机 配置文件的路径
$PROFILE.AllUsersAllHosts 所有用户、所有主机 配置文件的路径

:::

一般当前用户,当前主机下,PowerShell 配置文件所在位置
$Home\Documents\PowerShell\Microsoft.VSCode_profile.ps1

变量 和 PowerShell 配置文件位置

::: block-1
注意 PowerShell 配置文件 Profiles 不是自动创建的,有可能这个路径 <code>C:\Users\sunsb\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1</code> 是存在,
打开电脑对应的目录 C:\Users\sunsb\Documents 却找不到 WindowsPowerShell 目录 和 Microsoft.PowerShell_profile.ps1 文件
:::

可以使用命令 Test-Path $PROFILE 查看当前是否存在 PowerShell 配置文件

// 查看当前是否存在 PowerShell 配置文件
// False 不存在配置文件
// True  存在配置文件
Test-Path $PROFILE

::: block-1
如果没有 Microsoft.PowerShell_profile.ps1 文件,使用命令 new-item -path $PROFILE -itemtype file -force 创建一个 PowerShell 配置文件,最好是在创建好 PowerShell 配置文件文件后查看下
当前的 PowerShell 执行策略,get-ExecutionPolicy 将执行策略设置为 <code>RemoteSigned</code>,执行命令是:set-ExecutionPolicy RemoteSigned,如果不设置可能会报错 <code>无法加载配置文件</code>
:::

// 创建一个 PowerShell 配置文件
New-Item -Path $PROFILE -Type File -Force
// 当前的 PowerShell 执行策略
get-ExecutionPolicy
// 设置 PowerShell 执行策略为 RemoteSigned
set-ExecutionPolicy RemoteSigned
创建一个 PowerShell 配置文件

::: block-1

快速打开配置文件

有个小技巧,在 <code>C:\Users\sunsb\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1</code> 编写函数,如想使用 vscode 打开该文件的函数 或者 使用 nodepad 打开该文件的函数
:::

# Microsoft.PowerShell_profile.ps1

# 使用 vscode 打开 $PROFILE 配置文件
function vscodeOpen {
    Code $PROFILE
}

# 使用 nodepad++ 打开 $PROFILE 配置文件
function notepadOpen {
    noetepad $PROFILE
}
编写函数命令打开配置文件

oh-my-posh 主题定制化配置

定制化配置
https://ohmyposh.dev/docs/installation/customize

oh-my-posh 主题
https://ohmyposh.dev/docs/themes

C:\Users\sunsb\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

# $PROFILE 配置文件路径
# C:\Users\sunsb\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

# 配置 oh-my-posh 主题方式一
# 所有的本地主题文件都在 D:/OhMyPosh/themes 目录下,以 .json 结尾
# oh-my-posh init pwsh --config 'D:/OhMyPosh/themes/jandedobbeleer.omp.json' | Invoke-Expression

# 配置 oh-my-posh 主题方式二,远程方式
# oh-my-posh init pwsh --config 'https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/jandedobbeleer.omp.json' | Invoke-Expression

# 配置 oh-my-posh 主题方式三,当前我使用的
# POSH_THEMES_PATH 是 oh-m-posh 的 用户环境变量
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH/jandedobbeleer.omp.json" | Invoke-Expression

# 导出 oh-my-posh 主题
# oh-my-posh config export --output D:/jandedobbeleer.omp.json
oh-my-posh 本地的主题
配置 oh-my-posh 的命令
首次配置主题的效果

此时会发现,字体和小图标是乱码的,oh-my-posh 想要在终端中正常的显示图标,请安装 Nerd Font 字体,并进行终端的 settings.json 的配置

oh-my-posh 有一个 cli 可以选择和安装 Nerd 字体(测试版)

// 此命令需要以管理员身份执行,字体在系统范围内安装
oh-my-posh font install

官方也说这个只是测试版本的,个人感觉不太好,有些可能选择的字体可能装不上,根据官方友情提示 去 nerdfonts 官网下载自己想要的字体

nerdfonts
https://www.nerdfonts.com/

nerdfonts downloads
https://www.nerdfonts.com/font-downloads

这里以下载、安装、设置 JetBrainsMono Nerd Font 为示例

nerdfonts官网
nerdfonts downloads下载地址
JetBrainsMono Nerd Font字体包

打开下载的 JetBrainsMono 字体包,Ctrl + a 全选,右击 为所有用户安装

安装 JetBrainsMono 字体

windows 下 如何查看本地的字体:C:\Windows\Fonts

C:\Windows\Fonts

然后对 windows terminal 的配置文件 settings.json 进行修改,选择带有 Nerd Font 的,字体名字好像复制不了,只能手敲了

C:\Users\sunsb\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json

// C:\Users\sunsb\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json
{
    "profiles": {
        "defaults": { // 终端的默认值配置
            "experimental.retroTerminalEffect": false, // 复古风格的终端效果
            "font": {
                "face": "JetBrainsMono Nerd Font",
                "size": 14
            }
        },
    }
}

如何下次快速的打开改文件,进行修改,在 PowerShell 配置文件新增个函数 openTermialSetting 即可

C:\Users\sunsb\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

# 去除 Window PowerShell 版权所有提示
clear

# Microsoft.PowerShell_profile.ps1

# 使用 vscode 打开 $PROFILE 配置文件
function vscodeOpen {
    Code $PROFILE
}

# 使用 nodepad++ 打开 $PROFILE 配置文件
function notepadOpen {
    noetepad $PROFILE
}

# 打开 windows termial 设置文件

function openTermialSetting {
    Code C:\Users\sunsb\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json
}


# 配置 oh-my-posh 主题方式一
# oh-my-posh init pwsh --config 'D:/OhMyPosh/themes/jandedobbeleer.omp.json' | Invoke-Expression

# 配置 oh-my-posh 主题方式二,远程方式
# oh-my-posh init pwsh --config 'https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/jandedobbeleer.omp.json' | Invoke-Expression

# 配置 oh-my-posh 主题方式三,当前我使用的
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH/jandedobbeleer.omp.json" | Invoke-Expression

# 导出 oh-my-posh 主题
# oh-my-posh config export --output D:/jandedobbeleer.omp.json

::: bloack-1

如何去除 Window PowerShell 版权所有提示

如何去除 Window PowerShell 版权所有提示,在上面的 Microsoft.PowerShell_profile.ps1 最前面加上 clear 或者 cls,以为 clear 只能在 Mac 下使用,window terminal 也支持
:::

其他主题的更换

  • 在终端使用命令 get-Poshthemes 查看本地 oh-my-posh 的所有主题,并且会出现其他出题的样式
  • 在 oh-my-posh 官网查看 oh-my-posh 主题
  • 打开 D:/OhMyPosh/themes/ 复制 .json 前面的替换即可

终端使用上面配置的函数 vscodeOpen 命令打开 $PROFILE 文件,修改对应的 xx.json 名称即可

vscodeOpen

C:\Users\sunsb\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

# 去除 Window PowerShell 版权所有提示
clear

# Microsoft.PowerShell_profile.ps1

# 使用 vscode 打开 $PROFILE 配置文件
function vscodeOpen {
    Code $PROFILE
}

# 使用 nodepad++ 打开 $PROFILE 配置文件
function notepadOpen {
    noetepad $PROFILE
}

# 打开 windows termial 设置文件

function openTermialSetting {
    Code C:\Users\sunsb\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json
}


# 配置 oh-my-posh 主题方式一
# oh-my-posh init pwsh --config 'D:/OhMyPosh/themes/jandedobbeleer.omp.json' | Invoke-Expression

# 配置 oh-my-posh 主题方式二,远程方式
# oh-my-posh init pwsh --config 'https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/jandedobbeleer.omp.json' | Invoke-Expression

# 配置 oh-my-posh 主题方式三,当前我使用的
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH/jandedobbeleer.omp.json" | Invoke-Expression

# 导出 oh-my-posh 主题
# oh-my-posh config export --output D:/jandedobbeleer.omp.json
# 查看本地 oh-my-posh 所有主题,并且展示其样式
get-Poshthemes
28

其他问题处理

WindowsTerminal.exe - 系统错误

由于找不到 MSVCP140.dll,无法继续执行代码。重新安装程序可能会解决此问题

Visual Studio 2015 运行库是 microsoft 微软公司提供的很多程序软件必备的运行环境组件,
Visual Studio 2015 运行库是 <code>Visual C++ Redistributable Package</code> 安装运行使用 Visual Studio 2015 生成的 C++ 应用程序时所需的运行时组件,
下载并安装微软 Visual Studio 2015 版运行库后重启系统,<code>msvcp140.dll</code> 文件即可修复成功

Microsoft Visual C++ 可再发行程序包最新支持的下载

Microsoft Visual C++ 可再发行程序包最新支持的下载
https://learn.microsoft.com/zh-cn/cpp/windows/latest-supported-vc-redist?view=msvc-170

Microsoft Visual C++ 可再发行程序包最新支持的下载:https://learn.microsoft.com/zh-cn/cpp/windows/latest-supported-vc-redist?view=msvc-170
找到 Visual Studio 2015、2017、2019 和 2022,我是 64位系统的,下载 体系结构 X64 的 VC_redist.x64.exe 进行安装即可

windows11 下,右击展开菜单

可能在平时使用过程中,在某个项目中,需要 右击打开终端,下面是 右键菜单的展开

// 使用管理员身份,打开终端,输入命令,重启电脑

// 展开 右击菜单
reg.exe add "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" /f /ve

// 折叠 右击菜单 原来的
reg.exe delete "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" /va /f

快点配置一个拥有自己喜欢的明星的个性化终端吧

王一博个性化终端

本文由mdnice多平台发布

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,214评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,307评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,543评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,221评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,224评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,007评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,313评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,956评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,441评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,925评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,018评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,685评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,234评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,240评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,464评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,467评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,762评论 2 345

推荐阅读更多精彩内容