现代Windows开发运维Windows Terminal(终端)主题和字体美化
本文最后更新于:2024年11月13日 下午
前言
好久没弄Windows Terminal,发现有点时境过迁了,当时写它的时候,Windows Terminal才刚出茅庐,还没达到今天这般完善和广泛采纳。
1 |
|
如今,随着Oh-My-Posh迈入新阶段,之前的方式也不能用了,需要更新姿势了。
概念解读
Oh My Posh
Oh My Posh是一个自定义的提示引擎,适用于任何shell,能够用函数或变量调整提示字符串。
传统上,提示工具是通过每个主题的自定义脚本(就像Oh My Posh 2那样)或大量的CLI配置开关来定义它的外观。对于Oh My Posh,我想从一个单一的配置文件开始,可以很容易地在任何地方共享,消除了真正掌握下面发生的事情的需要。
当你看到像Agnoster或Paradox这样的提示时,你会注意到它们通常由一些构件组成,其中包含一个或多个显示某种信息的片段。Oh My Posh的配置正是如此。积木是一个或多个片段的组合。
1 |
|
段落渲染了一个单一的上下文,如显示当前文件夹、用户信息或相关的git状态。它可以以任何你想要的方式进行造型,从而使你所寻找的提示可视化。
Nerd Fonts
Nerd Fonts修补了具有大量字形(图标)的开发者目标字体。特别是要从流行的 “标志性字体”,如Font Awesome、Devicons、Octicons和其他字体中添加大量的额外字形。
Powerline和编程连字
Powerline是一个常用的命令行插件,用于在提示中显示附加信息。它使用一些附加的字形来正确显示此信息。
编程连字是通过组合字符创建的字形。它们在编写代码时最有用。
Cascadia Code
Cascadia Code是Microsoft提供的一种新的等宽字体,可为命令行应用程序和文本编辑器提供全新的体验。Cascadia Code是与Windows终端一起开发的。建议将此字体与终端应用程序和文本编辑器(如Visual Studio和Visual Studio Code)一起使用。
有多个版本的Cascadia Code可供使用,其中包括连字和字形。所有版本的Cascadia Code都可以从Cascadia Code GitHub发布页下载。Windows终端在其包中提供Cascadia Code和Cascadia Mono,并默认使用Cascadia Mono
字体名称 | 包括连字 | 包括 Powerline 字形 |
---|---|---|
Cascadia Code | 是 | 否 |
Cascadia Mono | 否 | 否 |
Cascadia Code PL | 是 | 是 |
Cascadia Mono PL | 否 | 是 |
“Code”变体包含连字,而”Mono”变体不包含连字。
Cascadia Code已获得GitHub上的SIL开源字体授权的许可。
Terminal-Icons
Terminal-Icons是一个PowerShell模块,它会添加在Windows终端中显示文件或文件夹时可能缺少的文件和文件夹图标,并基于名称或扩展名查找相应的图标。它尝试将图标用于已知文件/文件夹,但如果找不到此内容,则会回滚到通用文件或文件夹图标。
Posh-Git
Posh-Git是一个PowerShell模块,它集成了Git和PowerShell,提供可在PowerShell提示符中显示的Git状态摘要信息。
Caskaydia Cove Nerd Font
基于CascadiaCode的一个Nerd Font的字体补充库,里面包括了很多图标,这里推荐使用它。
PSReadLine
PSReadLine是一个受bash启发的用于PowerShell的readline实现。
它的模块取代了PowerShell 3及以上版本的命令行编辑体验。它提供了:
- 语法着色
- 简单的语法错误通知
- 良好的多行体验(包括编辑和历史)。
- 可定制的键绑定
- Cmd和emacs模式(两者都没有完全实现,但都可以使用)
- 许多配置选项
- Bash风格的补全(Cmd模式下可选,Emacs模式下默认)。
- Bash/zsh风格的交互式历史搜索(CTRL-R)
- Emacs yank/kill环
- 基于PowerShell令牌的 “单词 “移动和删除
- 撤销/重做
- 自动保存历史记录,包括在实时会话中共享历史记录
- 通过Ctrl+Space的 “菜单 “完成(有点像Intellisense,用箭头选择完成)。
开箱即用的体验是为了让PowerShell用户非常熟悉–应该不需要学习任何新的按键。
如果你在Windows 10上使用Windows PowerShell或使用PowerShell 6+,PSReadLine已经安装了。最新的Windows 10上的Windows PowerShell有2.0.0-beta2版本的PSReadLine。PowerShell 6+版本有较新的PSReadLine的预发布版本。
操作指南
安装字体
这里推荐安装上面提到的
Caskaydia Cove Nerd Font
字体。
如果你从Github下载了Cascadia Code或者从Nerd Fonts下载了其它字体,把它解压出来。
选择其中ttf格式,找到其中的*.ttf
字体文件。
从系统搜索字体
这个控制面板入口,点击打开它。
从解压后的文件夹中选中所有要添加的字体文件,复制后粘贴到上诉字体对话框,或者以拖拽的方式丢进去也可以,它会提示安装。
对于重复的字体,我们勾选为所有当前项目执行此操作
这个选项,然后点击是
按钮即可。
为了保障字体被完全安装,建议将所有的字体文件都一口气安装上,以免后续使用遇到问题。
设置字体
在Windows Terminal(终端)
中,点击顶部小三角下拉进入设置
面板。
在左侧配置文件
设置块中,我们找到Windows PowerShell
,先来设置它的配置文件,在其他设置
里面,有一个外观
设置,点击它。
接下来,可以在字体这项属性设置,下拉找到我们前面安装的CaskaydiaCove Nerd Font
字体,点击保存
按钮即可。
接下来,要么重启Windows Terminal(终端)
,要么新开一个标签页才能看到效果。
安装Oh My Posh
通过Winget进行安装(推荐)
1 |
|
它安装后会包括:
- oh-my-posh.exe
- 内置的多个主题
保持更新:
1 |
|
通过Microsoft Store安装
ms-windows-store://pdp/?productid=XP8K0HKJFRXGCK
设置Oh My Posh
首先,我们需要知道安装后自带的主题是哪些,安装后,我们可以通过如下命令全部展示出来:
1 |
|
从这里找到自己比较中意的主题,比如这里我暂时选的就是powerline
这个主题。
怎么使用呢?接下来,我们要去设置PowerShell的配置文件,在当前Windows Terminal(终端)
窗口中,输入notepad $PROFILE
,回车后可打开它的配置。
如果之前没有配置文件,第一次Notepad会提示你是否创建一个,所以我们直接点击是
按钮来创建一个就好了。
在新的一行,追加如下格式的信息:
1 |
|
关键来了,这个themeConfigFilePath
怎么填呢?
这个主题配置文件的路径实际上就是前面我们看上的主题那个配置的路径,一般来说,它就在UserAppData
下面,例如:
1 |
|
最终拼在一起,完整的举例是:
1 |
|
现在,每个新的PowerShell实例都将通过导入Oh My Posh并设置命令行主题启动。
这时候,我们重启Windows Terminal(终端)
查看效果吧。
设置配色
如果感觉别人的视觉好看更好看,那估计对方也是改了配色方案了,前往设置
面板-配置文件
-Windows PowerShell配置
-其他设置
-外观
设置界面。
在配色方案
这块,选择喜欢的配色方案,上面还能直接预览效果,如果满意就点击保存即可。
如果对内置的配色方案不满意,我们还可以从Windows Terminal Themes这个网站找到更多配色方案。
预览效果满意后,点击Get Theme
按钮,它会把配色方案的Json配置复制到粘贴板。
在Windows Terminal(终端)
中使用快捷键Ctrl
+ Shift
+ ,
组合可以打开配置文件。
把Json内容添加到schemes
节点列表末尾。
这里推荐一个配色方案,叫One Half Dark
,它的地址:https://github.com/sonph/onehalf
1 |
|
贴进去之后,真是色彩多。
这里还贴一个Ubuntu色
1 |
|
这里需要注意,采用网上的配色,后面发现brightBlack
这个值有点问题,自己做了一些修正。
清除欢迎
每次我们打开Windows Terminal(终端)
都会有几段欢迎词,如果你不想看到它,这个也是可以设置的。
我们前往设置
面板-配置文件
-Windows PowerShell配置
-命令行
这里,点击它可展开进行编辑,在之前路径的后面追加 -NoLogo
然后点击保存
即可。
哈哈,可惜有点bug。
定制欢迎
先前往这个网站,生成你喜欢的欢迎词:http://patorjk.com/software/taag/#p=testall&f=Graffiti&t=TaylorShi
点击你中意的一项的Select & Copy
,内容例如:
1 |
|
接下来,我们前往PowerShell配置文件:notepad $PROFILE
,在追前面添加如下内容:
1 |
|
保存即可。
接下来,要么重启Windows Terminal(终端)
,要么新开一个标签页才能看到效果。
安装Terminal-Icons
通过管理员模式打开Windows Terminal(终端)
打开。
运行如下命令:
1 |
|
安装之后,我们前往PowerShell配置文件:notepad $PROFILE
追加对它的引入:
1 |
|
这里建议配合安装前面提到的Caskaydia Cove Nerd Font
来使用会更好,将字体设置成CaskaydiaCove NF
即可。
这样,各种文件或者文件夹就会识别出现图标了。
安装Posh-git
Posh-git是一个PowerShell模块,它将Git和PowerShell整合在一起,提供可以在PowerShell提示符下显示的Git状态汇总信息,例如:
通过管理员模式打开Windows Terminal(终端)
打开。
运行如下命令:
1 |
|
安装之后,我们前往PowerShell配置文件:notepad $PROFILE
追加对它的引入:
1 |
|
亚克力和透明度
自动补全
通过PSReadLine
可以显现自动补全,在Windows 10开始已经自带了,如果需要补装可以使用:
通过管理员模式打开Windows Terminal(终端)
打开。
1 |
|
安装之后,我们前往PowerShell配置文件:notepad $PROFILE
追加对它的配置项:
1 |
|
保存后即可生效。
使用的时候,它会自动提示你猜测的补全,如果你要采纳,按下->
左箭头按钮即可。
通过向上按键和向下按键即可切换历史的命令。
交互可视化
通过GraphicalTools
可实现可视化交互。
1 |
|
卸载插件
通过命令Uninstall-Module
即可卸载指定的插件。
卸载Oh-My-Posh
1 |
|
卸载Terminal-Icons
1 |
|
卸载posh-git
1 |
|
Ubuntu中安装配置
Github加速站:https://github.91chi.fun
安装Oh My Posh
虽然官方也建议用Homebrew
来安装,但是也可以手动安装。
1 |
|
1 |
|
下载主题
先创建一个存储目录:
1 |
|
下载主题压缩包
1 |
|
解压主题压缩包
1 |
|
如果提示unzip
不存在,那就先安装它:apt install unzip
给主题配置文件增加权限
1 |
|
移除主题压缩包缓存
1 |
|
我们进入主题文件夹看下有哪些主题:
1 |
|
从中间选一个,比如我这里选powerline.omp.json
修改Bash主题
1 |
|
按下i
进入编辑状态,然后再最后一行追加:
1 |
|
这里powerline.omp.json
就是你自己选中的主题配置文件。
按ESC
退出编辑,然后输入:wq
保存。
重新打开终端,这时候会发现变化。
安装字体
接下来就是安装字体了,从nerdfonts网站找一个心仪的字体。
下载并解压字体到/usr/share/fonts/CascadiaCode
下。
1 |
|
前往字体目录
1 |
|
刷新字体缓存
1 |
|
设置字体
接下来,我们需要在Ternimal里面设置我们当前这个Ubuntu版本的字体。
进入对应的Ubuntu Bash的设置中外观这项。
把字体切换到CaskaydiaCove Nerd Font
,保存即可,再次进入就可以了
笔者之前这步没达到预期效果,后面发现竟然是自己设置错了对象,所以这里要看清楚,WSL对应的同一个版本,在Ternimal可能存在多个入口,我们要找到正确的。
参考
- Oh My Posh
- Terminal终端美化(Oh My Posh)
- Windows 终端的 PowerShell 主题中的 Oh-My-Posh
- Windows Terminal美化:oh-my-posh配置记录
- 利用oh-my-posh美化Windows Terminal
- Windows Terminal for Nerd Font And FontForge
- https://windowsterminalthemes.dev
- Nerd Fonts
- Powerline fonts & Nerd fonts 简介
- ubuntu 字体安装 —— 以nerd font为例
- Powerline fonts & Nerd fonts 简介
- Cascadia Code
- microsoft/cascadia-code
- 教程:使用 Oh My Posh 为 PowerShell 或 WSL 设置自定义提示符
- Terminal-Icons
- PSReadLine - Powershell 的强化工具
- PowerShell/PSReadLine
- 使用Oh My Posh自定义WSL提示符
- Oh My Posh For Linux
- Homebrew
- ubuntu安装 oh-my-posh
- Ubuntu美化——安装Oh-My-Zsh
- PowerShell和WSL for Ubuntu安装oh-my-posh
- Linux 系统安装 Oh my posh 终端美化工具
- GitHub 文件加速
- https://github.com/hunshcn/gh-proxy
- ubuntu 字体安装 —— 以nerd font为例
- Linux 系列快速入门-01-常用命令
- 入门:如何更改 Ubuntu 的终端的字体和大小 | Linux 中国
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!