Windows Terminal美化:oh-my-posh配置记录

2023-05-16

Windows Terminal美化:oh-my-posh配置记录


前置:安装Windows Terminal + powershell,打开终端,默认路径为powershell。
这个流程踩了不少坑,记录在错误示范,正确的配置流程请移步配置流程。



[ 2023-3-13 ] 新增:WSL应用oh-my-posh
oh my posh for Linux


错误示范


按照网上教程开始配置,管理员身份启动shell,按如下过程进行:

Install-Module posh-git -Scope CurrentUser
Install-Module oh-my-posh -Scope CurrentUser

这里-Scope CurrentUser限制了域,仅当前用户可用。

Import-Module posh-git
Import-Module oh-my-posh
Set-Theme PowerLine

然后,递归地,就是极为惨痛的一段踩坑

无法加载文件 ,因为在此系统上禁止运行脚本

这里是powershell执行策略的问题。
About_Execution_Policies
输入如下指令:

Set-ExecutionPolicy RemoteSigned  # Bypass也可

无法将“Set-Theme”项识别为cmdlet、函数、脚本文件或可运行程序的名称

这里应该是Windows Terminal测试版支持的指令,用Set-PoshPrompt代替即可。

无法将“oh-my-posh”项识别为 cmdlet、函数、脚本文件或可运行程序的名称

删除了C:\Users<UserName>\Documents\WindowsPowerShell下的几个文件夹,然后选择为全部用户安装oh-my-posh:

Install-Module -Name PSReadLine -Scope AllUsers -Force -SkipPublisherCheck
Install-Module posh-git -Scope AllUsers
Install-Module oh-my-posh -Scope AllUsers

这时插件会装在\Program Files\WindowsPowerShell文件夹下,但是报错仍然出现。这里是个大坑,删起文件来很费劲。
您需要来自 Trustedinstaller 的权限
更改权限时,选“最大的应用范围”(此文件夹、子文件夹和文件)。注意只把Modules下刚装的插件删掉即可。


配置流程


按官网说明操作。
https://ohmyposh.dev/docs/
Installation → Windows → manual,复制指令进终端:

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

安装oh-my-posh.exe及下载主题。
装好后会自动配置环境变量POSH_THEMES_PATH,是各种主题的json文件所在路径,以后可以通过$env:POSH_THEMES_PATH调用。
然后开始配置主题,首先查看powershell配置文件路径:

# powershell profile script
# 这个文件会在每次启动终端时调用
$PROFILE

得到一个后缀为.ps1的文件路径。我们希望每次启动powershell时,都可以加载oh-my-posh对页面进行美化,编辑该文件:

# 如果提示路径不存在,手动创建一下即可
notepad $PROFILE

输入如下指令:

# 第一条不加应该也可以,我是删文件不小心把PSReadLine也删了,后来还原的
Import-Module PSReadLine
# $env:POSH_THEMES_PATH\<theme_name.json>,去上文提到的环境变量里看看,这里我选的是powerline
oh-my-posh init pwsh --config $env:POSH_THEMES_PATH\powerline.omp.json | Invoke-Expression

保存后重启powershell,已经初步看到美化效果,但icon部分还是乱码。如果之前没有配置Set-ExecutionPolicy,会显示配置无法加载。

字体配置

下载Nerd Fonts,该字体为oh-my-posh所支持。任选一样式下载,解压后全选安装在系统字体库,路径为C:\Windows\Fonts。然后修改Windows Terminal的配置(不是powershell的配置!),在终端窗口设置里选中powershell → 外观 → 字体,或直接修改外观配置文件,路径为%LOCALAPPDATA%\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json。
Windows终端中的外观配置文件设置
这个文件中我们主要关注如下结构:

{	
	...
	
	"profiles":
	{
		"defaults":
		{
			"font":
			{
				// 字体名称去字体文件夹里找,或者在官网
				// 如"face": "CodeNewRoman Nerd Font"
				"face": "<FontName>",
			},
		},
		"list":
		[
			...
		]
	}
	
	...
}

找到"defaults": {},手动添加font字段进去,配置后保存,这时终端能正常加载主题和字体了。
至此,oh-my-posh for powershell配置完成。
还可以设置一下终端背景,同样在defaults下加入以下字段:

"backgroundImage": "<imgpath>",
"backgroundImageAlignment": "bottomRight",
"backgroundImageOpacity": 0.3,
"backgroundImageStretchMode": "uniformToFill"

最终的完整终端界面:
在这里插入图片描述



现在发现,按Microsoft指导安装才是道门正派
https://learn.microsoft.com/zh-cn/windows/terminal/tutorials/custom-prompt-setup


oh my posh for Linux


参考Oh My Posh 文档中的 Linux 安装指南进行安装。因为我在一台ARM设备上安装,而Homebrew暂不支持ARM64,故采用手动安装。

# 注意把posh-linux-arm64换成你设备的ISA
sudo wget https://github.com/JanDeDobbeleer/oh-my-posh/releases/latest/download/posh-linux-arm64 -O /usr/local/bin/oh-my-posh
sudo chmod +x /usr/local/bin/oh-my-posh

下面是重新在Linux下安装了一遍主题库,这一步可以省略

mkdir ~/.poshthemes
wget https://github.com/JanDeDobbeleer/oh-my-posh/releases/latest/download/themes.zip -O ~/.poshthemes/themes.zip
unzip ~/.poshthemes/themes.zip -d ~/.poshthemes
chmod u+rw ~/.poshthemes/*.omp.*
rm ~/.poshthemes/themes.zip

配置.bashrc文件,或者配置在.profile里
linux关于bashrc与profile的区别

eval "$(oh-my-posh init bash --config ~/.poshthemes/powerline.omp.json)"

如果没有重装主题库,则路径改为/mnt/<Windows下的主题路径>/powerline.omp.json。字体设置同powershell。重启Bash,成功看到美化效果。


参考


  • https://blog.csdn.net/lz6363/article/details/118876966
  • https://blog.csdn.net/weixin_42818618/article/details/118104218
  • https://blog.csdn.net/ba_wang_mao/article/details/121220935
  • https://blog.csdn.net/qq_43108090/article/details/121687415
  • https://blog.csdn.net/weixin_30920513/article/details/97960798
  • https://blog.csdn.net/weixin_43924623/article/details/107947006



准备配posh-git的时候发现,我的powershell可以直接操作git,想来应该是以前找大佬远程协助的时候顺手装了(


黑夜来了,我驶进银河的港湾。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Windows Terminal美化:oh-my-posh配置记录 的相关文章

  • git在Windows和Linux之间切换后强制刷新索引

    我有一个Windows和Linux共享的磁盘分区 格式 NTFS 它包含一个 git 存储库 约 6 7 GB 如果我只使用Windows or 只使用Linux操作 git 存储库一切正常 但是每次切换系统的时候git status命令将
  • 如何使用Python在没有窗口的情况下在屏幕上显示文本

    问题 我需要在没有窗口的情况下直接将文本写入屏幕 文本需要显示在所有其他窗口和全屏应用程序之上 并且不应以任何方式单击或交互 Example The text doesn t need to have a transparent backg
  • 使用 CreateRestrictedToken(LUA_TOKEN) 从提升的进程创建低/中进程

    我正在尝试从提升的进程创建中或低完整性进程 我知道还有其他类似的问题 但它们主要关注使用资源管理器或任务计划程序等解决方法 我想坚持使用CreateRestrictedToken CreateProcessAsUser 我认为一定可以以某种
  • 已安装全局 NPM 包但未找到命令

    我已经全局安装了两个 npm 包 下载 https www npmjs com package download and 谜虚拟盒 https www npmjs com package enigmavirtualbox通过命令行 npm
  • 在 powershell 脚本中以不同用户身份本地运行代码块

    这是非常简单的事情 但我就是无法让任何东西发挥作用 我想在特定用户下的 powershell 脚本中运行块代码 关键字是locally我正在使用 powershell 2 0 Invoke Command 似乎需要远程主机 我运行以下命令
  • Windows 版 GitKraken 中的文件名太长

    正如建议的Q22575737 https stackoverflow com a 22575737 6623589 我已经更新了我的注册表并设置了git config system core longpaths true在处理长路径时 问题
  • 你知道 Windows 上有类似的 wc(unix 字数统计命令)程序吗? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 快速搜索给了我陶巴瓦厕所 http www tawbaware com wc htm 但它不接受 std
  • 我如何移动粘性/捕捉 wpf 窗口

    当我移动 主 窗口时 我想移动两个或更多粘性窗口 我想做这样的事情 private void MainWindow PreviewMouseMove object sender MouseEventArgs e if e LeftButto
  • 在 C# 中使用反射列出枚举中的值

    我正在尝试使用反射来列出一个 Visual Studio 解决方案内的各个项目中的一些类的公共成员和方法 我尝试访问的所有类都是 C 的 并且它们都是从 C 类访问的 我用来进行这些调用的代码如下 public void PopulateE
  • 使用 Windows 任务计划程序安排 [Virtualenv 相关] Python 脚本

    I want to schedule a python script to start at 3AM and break at 5PM every weekday However the problem arises when I need
  • 生成一个新终端并写入其标准输出

    我有一个应用程序 它使用 GUI 来完成与用户的大部分界面 不过 我想要一个单独的终端窗口 我可以写入一些错误检查 原始值等 我知道我可以使用以下命令生成一个新终端system 命令 但我不知道是否可以进行交互 在最好的情况下 我希望有一个
  • subprocess.Popen('start') 失败

    在 python 中运行此命令将导致 WindowsError 指出找不到指定的文件 FAILS import subprocess subprocess Popen start notepad exe 在命令窗口中 它可以工作 start
  • windows关闭tomcat后保持端口锁定

    我遇到了一个问题 该问题发生在不同站点的 3 台不同服务器上 问题是 当我关闭 Windows 服务器上的 Tomcat 7 和 8 5 版本 服务并尝试重新启动该服务后 该服务将无法启动 因为 tomcat 认为端口仍在使用中 以下是错误
  • 为 Windows 98 编译 Qt

    我需要支持 Windows 98 Qt 文档声称这是可能的 但没有说明 Qt 4 6 的分布式二进制文件不能在 Win98 上运行 而且我采样的大多数 Qt 应用程序也不能在 Win98 上运行 对于几个确实在 98 上运行的应用程序 我询
  • 在 mac 终端中加载库时出错

    有谁请帮忙 我该如何修复以下错误 dyld Library not loaded usr local lib libgdbm 4 dylib Referenced from usr local bin zsh Reason image no
  • Pip 无法在 Windows 上安装 Twisted

    我正在尝试在 Windows 8 计算机上安装 Twisted 在 Twisted 官方网站上 只有一个 Windows 版的 Wheel 文件 https twistedmatrix com trac wiki Downloads htt
  • PostgreSql“运行安装后步骤...数据库集群初始化失败”

    我是一名 Windows 用户 我花了几个小时不断地安装和卸载 然后才使其正常工作 前 10 次左右才看到标题中的错误消息 我将其作为一个自我回答的问题放在这里 以防止其他人在安装时可能遇到同样的问题 并为像我这样第一次使用 Postgre
  • zsh:未找到命令:使用 Big Sur Mac 的终端上的 R

    我从官方 cran 网站安装了 R 我可以从 Rstudio 运行 R 但是当我尝试从终端使用 R 时 我得到以下结果 base ege Eges MBP R zsh command not found R base ege Eges MB
  • .profile 无法从 Mac 终端运行

    我有一个 profile 文件 我正在终端中读取并使用别名 但在某些时候 别名由于没有明确的原因而停止工作 其他命令仍在工作 为了快速修复 我删除了 rm 并在用户目录中重新创建了 profile 文件 我可以看到 至少在该目录中没有 ba
  • 在Windows 7上安装curl后缺少libcurl-4.dll

    按照这个人的安装curl后指示 https stackoverflow com a 28757477 1186038 除了第 2 步 已安装Win64 OpenSSL v1 0 1u 轻型相反 因为下载页面中缺少版本 k http slpr

随机推荐

  • vscode通过跳板机连接远程服务器(亲测可用)

    一 windows用户需要先配置好本地的Remote SSH相关服务并开启服务 二 打开VS Code xff0c 在扩展中搜索 34 Remote SSH 34 并安装 三 ctrl 43 shift 43 p呼出控制面板搜索remote
  • 如何抓取log

    一 Catcher log Catcher是 MTK 提供的功能机上一个功能比较强大的一个 log 工具 Catcher log 一般情况下使我们使用起来最多也最方便的一种 xff0c 不用跳线 xff0c 连接上 USB 就行 Catch
  • android studio (record audio)一些问题记录

    2022 03 29 19 23 16 253 1659 1706 E Request requires android permission RECORD AUDIO 2022 03 29 19 23 16 253 1659 1706 E
  • 向量的点乘和叉乘

    向量是由n个实数组成的一个n行1列 xff08 n1 xff09 或一个1行n列 xff08 1n xff09 的有序数组 一 向量的点乘 也叫向量的内积 数量积 xff0c 对两个向量执行点乘运算 xff0c 就是对这两个向量对应位一一相
  • C语言 生产者消费者问题

    目录 生产者消费者问题算法设计实现源程序测试日志总结 生产者消费者问题 算法设计 实现 1 编写所需头文件 span class token macro property span class token directive keyword
  • 操作系统-进程同步:生产者-消费者问题

    文章目录 进程同步 xff1a 生产者 消费者问题问题描述实验环境输入输出测试数据实验设计数据结构系统框架图流程图 实验结果与分析结果展示与描述结果分析总结 源代码 进程同步 xff1a 生产者 消费者问题 问题描述 以生产者 消费者模型为
  • 《动手学习深度学习》预备知识——自动求导

    自动微分 正如我们在 numref sec calculus中所说的那样 xff0c 求导是几乎所有深度学习优化算法的关键步骤 虽然求导的计算很简单 xff0c 只需要一些基本的微积分 但对于复杂的模型 xff0c 手工进行更新是一件很痛苦
  • Ubuntu—root用户权限设置

    Ubuntu root用户权限设置 本人ubuntu版本 xff1a 18 04 xff08 其他版本设置步骤相同 xff09 Step1 获得临时root权限 xff08 1 xff09 terminal中输入命令 xff1a sudo
  • matlab 自写 自适应中值滤波 matlab自适应中值滤波算法

    一 自适应中值滤波 xff08 代码 xff09 function aOut 61 stPlus aIn f1 f2 st stMax 这仅仅是 AdaMedFilter 自适应中值滤波函数 的子函数 这仅仅是一个附属函数 功能片段 xff
  • 使用@RequestBody传递多个不同对象

    64 RequestBody 主要用来接收前端传递给后端的json字符串中的数据的 请求体中的数据的 xff1b GET方式无请求体 xff0c 所以使用 64 RequestBody接收数据时 xff0c 前端不能使用GET方式提交数据
  • 解决No converter for [class org.jeecg.common.api.vo.Result] with preset Content-Type ‘multipart/form-d

    我们在下载文件的时候 xff0c 会对contentType进行设置 比如我这里设置的是 xff1a response span class token punctuation span span class token function
  • Linux安装Nginx(超详细步骤)

    1 xff0c 进入官网下载Nginx资源 官网下载 xff1a http nginx org en download html 2 xff0c 资源下载 xff08 因为是在Linux安装 xff0c 所以我下载Linux安装的资源包 x
  • Linux安装tomcat(超详细步骤)

    1 xff0c 安装前置条件 安装Tomcat需要先安装jdk xff0c 没有安装jdk的 xff0c 先移步到这里安装jdk xff0c 详见参考文章 2 xff0c 下载所需压缩包 xff0c 上传到服务器 官网下载地址 xff1a
  • 解决虚拟机启动报:此主机支持AMD-V,但AMD-V处于禁用状态

    开启VMware虚拟机弹出以下异常 解决方法 xff1a 将SVM Mode设置成允许 解决步骤 xff1a 1 xff0c 将电脑关机 xff0c 然后进行启动 xff0c 启动过程中多按delete xff08 f1或者f2 xff0c
  • 编写Shell脚本监控jar运行状态

    1 xff0c 创建一个shell文件 xff0c 编辑内容如下 span class token shebang important bin bash span span class token assign left variable
  • java使用freemarker实现word下载

    freemarker 简单示例1 xff0c 引入依赖2 xff0c 引入依赖包3 xff0c 创建所需要的模板3 1 xff0c 新建一个word文档3 2 xff0c 将word模板另存为xml格式 4 xff0c 代码实现5 xff0
  • 本地使用IIS快速搭建一个属于自己的网站,并发布公网访问「无需购买云服务器」

    文章目录 1 前言2 Windows网页设置2 1 Windows IIS功能设置2 2 IIS网页访问测试 3 Cpolar内网穿透3 1 下载安装Cpolar内网穿透3 2 Cpolar云端设置3 3 Cpolar本地设置 4 公网访问
  • Datawhale数据分析第一章第二节:Pandas基础

    复习 xff1a 数据分析的第一步 xff0c 加载数据我们已经学习完毕了 当数据展现在我们面前的时候 xff0c 我们所要做的第一步就是认识他 xff0c 今天我们要学习的就是了解字段含义以及初步观察数据 1 第一章 xff1a 数据载入
  • Linux下定时任务Crontab执行jar文件

    一 安装jdk 具体操作参照 Linux下安装jdk1 8并配置环境变量 我是采用yum源安装 xff0c 按照成功后如下 查看JAVA HOME路径结果如下 所以我的JAVA HOME路径如下 usr lib jvm java 1 8 0
  • Windows Terminal美化:oh-my-posh配置记录

    Windows Terminal美化 xff1a oh my posh配置记录 前置 xff1a 安装Windows Terminal 43 powershell xff0c 打开终端 xff0c 默认路径为powershell 这个流程踩