Ahao's Studio.

使用Oh-My-Posh配置和美化PowerShell终端

2024/04/29

最终效果

安装必要组件

(手动安装完才发现,其实都可以从微软应用商店下载)

Oh-My-Posh

Windows Terminal

微软开发的一个现代终端软件,用来替代老旧的控制台终端。Windows Terminal 的特点是颜值高,而且已经是 Windows 11 的默认终端了,如果你还在使用 Windows 10,也可以在应用商店中搜索并安装 Windows Termial





MesloLGM Nerd Font 字体

点此下载

下载完成后解压,全选右键点击安装即可自动安装。

使用默认的字体会导致特殊字符无法显示:




Powershell 7

  • 简而言之,Powershell 7 是 Powershell 的升级版
  • 可与Powershel旧版共存,新版为pwsh,与旧版的powershell区分开

PowerShell 文档 - PowerShell

配置

Windows Terminal 选项

然后再来配置一下 Windows Terminal,点击下拉菜单选择设置打开设置标签页,然后依次修改以下选项:

  • 打开Windows Terminal —> Win+R,输入 wt , 回车确定
  • 启动 -> 默认配置文件,改为 Powershell,如果你已经安装了 Powershell 7.4,这里应当可以自动搜索到。否则可能需要手动编辑配置文件。
  • 启动 -> 默认终端应用程序,改为 Windows Terminal。
  • 外观 -> 在选项卡中显示亚力克效果,选择启用。
  • 配色方案,这里可以根据自己喜好调整。
  • 配置文件默认值 -> 外观 -> 字体,改为 MesloLGM Nerd Font 字体,字号按照自己屏幕大小选择,再开启亚力克效果,透明度选择 80% 左右。
  • 配置文件默认值 -> 外观 -> 背景,选择自己的图片,拉伸模式选择均匀填充,不透明度设置为12%

这样一来,Windows Terminal 的配置就算完成了。当然如果你对自带的配色方案不满意,也可以从网络上寻找一些好看的配色方案, 其他设置也可以根据自己喜好进行修改,这里就不多做介绍了。





On-My-Posh和主题

主题预览Themes | Oh My Posh
也可以使用以下命令预览所有主题效果:

1
Get-PoshThemes
  • 完成Windows Terminal配置后,在命令行中打开配置文件

    1
    2
    3
    4
    notepad $PROFILE
    #如提示找不到文件可参考下面的debug部分

    #code $PROFILE #使用vscode编辑
  • 在其中添加以下配置(自行替换【】中内容),并保存配置文件,重新启动pwsh

  • 主题json文件在 C:\Users\【你的用户名】\AppData\Local\Programs\oh-my-posh\themes\

    1
    oh-my-posh init pwsh --config 'C:\Users\【你的用户名】\AppData\Local\Programs\oh-my-posh\themes\【主题的json】' | Invoke-Expression
  • 示例:

    1
    oh-my-posh init pwsh --config 'C:\Users\ZZZ\AppData\Local\Programs\oh-my-posh\themes\kushal.omp.json' | Invoke-Expression



debug:打开$PROFILE提示无法找到文件

问题:提示无法找到Microsoft.Powershell_profile.ps1

  • 手动创建它并开始使用新建的配置文件
1
new-item -type file -path $profile -force
  • 打开配置文件notepad $PROFILE,按上方教程继续配置Oh-My-Posh和主题





CATALOG
  1. 1. 最终效果
  2. 2. 安装必要组件
    1. 2.1. Oh-My-Posh
    2. 2.2. Windows Terminal
    3. 2.3. MesloLGM Nerd Font 字体
    4. 2.4. Powershell 7
  3. 3. 配置
    1. 3.1. Windows Terminal 选项
    2. 3.2. On-My-Posh和主题
      1. 3.2.1. debug:打开$PROFILE提示无法找到文件