Windows Terminal 配置文件+图形化配置界面+右键菜单+管理员权限

Windows Terminal 配置

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

记录 Windows Terminal 配置文件信息以及添加为右键菜单

零.安装

  • 1.直接应用商店安装,没啥好说的

  • 2.GitHub下载 啥啥啥.msixbundle 文件手动安装,两种方式

    • 2.1 PowerShell 命令行安装,效果与应用商店安装一样
    Add-AppPackage 下载的.msixbundle文件路径
    
    • 2.2 解压安装
      • 2.2.1 将下载的 啥啥啥.msixbundle 文件后缀改为 .zip 解压
      • 2.2.2 同样方法根据自己电脑的架构将对应的 CascadiaPackage_哟哟哟.msix 文件解压到某一文件夹
      • 2.2.3 将解压出来的文件夹放到自己想要放的地方,然后使用 wt.exe 或者 WindowsTerminal.exe 打开即可

一.参数说明

0.图形化配置

好消息 从 预览版v1.6.10272.0 开始支持可选的图形化配置,可选意思就是默认依然是配置文件,图形化界面需要手动打开

在配置文件的 "keybindings" 模块添加如下内容, 保存后可使用 ctrl+shift+, 命令打开图形配置界面,也可自行修改 "keys" 字段对应的数据自定义其他快捷键

注意 使用图形化配置界面保存后会覆盖手动编辑保存的配置文件,如果有什么要保留的东西提前备份

{ "command": { "action": "openSettings", "target": "settingsUI" }, "keys": "ctrl+shift+," }

官方文档

1.global

顾名思义,该部分配置对于整个 Windows Terminal 软件生效,以下是部分常用参数

$schema ==> 配置项可选值,类似xml的scheme https://aka.ms/terminal-profiles-schema
defaultProfile ==> 默认打开profiles的guid
initialCols ==> 列数(宽度)
initialRows ==> 行数(高度)
confirmCloseAllTabs ==> 多标签页同时关闭时是否弹窗提示
tabWidthMode ==> 标签宽度 equal|titleLength,即 等宽|与标题相同

2.profiles

该部分用来控制shell标签的行为

2-1.defaults

每个shell标签都会使用的配置,可以把 终端的配置 中所有shell标签都会用到的统一数据提取到该处

2-2.list

数组格式,用来配置shell标签的行为,以下为部分参数

guid ==> 唯一标识符
name ==> 指定该profiles对象的名称,将会显示在下拉菜单中
source ==> 内置的一些命令 Windows.Terminal.Wsl|Windows.Terminal.Azure
commandline ==> 启动终端窗口时执行指定的程序/命令/脚本
startingDirectory ==> 启动时的路径
tabTitle ==> 标签名
fontFace ==> 字体
fontSize ==> 字体大小
useAcrylic ==> 开启亚克力模糊即俗称的毛玻璃效果,值:true|false
acrylicOpacity ==> 亚克力模糊效果透明度,值:0~1,useAcrylic=false时无效
closeOnExit ==> 关闭窗口时退出当前shell,值:true|false
colorScheme ==> 颜色主题名称,为[]schemes下的主题对象中name的值
cursorColor ==> 光标颜色,值:16进制码
cursorShape ==> 光标形状,值:bar|vintage|underscore|filledBox|emptyBox
historySize ==> 保留历史行数
icon ==> 指定显示在顶部tab以及下拉菜单中的图标
padding ==> 边距,值:0, 0, 0, 0 值设定顺序为左、上、右、下
snapOnInput ==> 键入时跳转到光标位置,值:true|false

3.schemes

添加主题配色,数组格式,参数值均为十六进制

name ==> 配色名称
background ==> 背景色
foreground ==> 前景色
black/white/yellow/green/cyan/purple/blue/red ==> 定义8个颜色与对应浅色,浅色添加前缀bright

4.keybindings

快捷键,数组格式

command ==> 命令 
	closeTab: 关闭标签
	newTab: 新标签
	newTabProfile0: 新标签,0~9
	nextTab: 下一个标签
	openSettings: 打开设置
	prevTab: 上一个标签
	scrollDown: 下拉
	scrollDownPage: 下拉一页
	scrollUp: 上拉
	scrollUpPage: 上拉一页
	switchToTab0: 切换到第几个标签 0~9
keys ==> 绑定的快捷键,数组格式 如 [ctrl+t]

二.配置文件示例

一个配置文件示例

// 按住 'alt' 键点击 '设置按钮' 可以打开默认设置文件
// 官方文档地址 https://aka.ms/terminal-documentation
{
    // 全局配置信息,官方文档 https://aka.ms/terminal-global-settings
    "$schema": "https://aka.ms/terminal-profiles-schema",
    // 选择内容后复制, true:选择后立刻复制,鼠标右键变为始终粘贴; false:不立刻复制,选中后右键复制,非选中状态右键粘贴
    "copyOnSelect": false,
    // 是否复制字体/颜色等格式
    "copyFormatting": false,
    // 这会确定双击选定的内容中使用的字分隔符。 字分隔符是指定两个字之间的边界的字符。 最常见的示例包括空格、分号、逗号和句号。
    //"wordDelimiters": " ./\\()\"'-:,.;<>~!@#$%^&*|+=[]{}~?│",
    // 屏幕重绘 true:终端将重绘整个屏幕的每个帧; false:只会渲染屏幕中发生了变化的帧
    //"experimental.rendering.forceFullRepaint": true,
    // 设置打开 Terminal 时默认打开哪个标签
    "defaultProfile": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}", // cmd
    //"defaultProfile": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}", // powershell
    //"defaultProfile": "{58ad8b0c-3ef8-5f4d-bc6f-13e4c00f2530}", // wsl
    // "system":跟随系统; "dark":深色主题; "light":浅色主题
    "theme": "system",
    // 宽度
    "initialCols": 115,
    // 高度
    "initialRows": 33,
    // 始终显示标签
    "alwaysShowTabs": true,
    // 在标题栏中显示终端窗口标签栏
    "showTabsInTitlebar": true,
    // 在标签栏中显示终端标签,true:标题栏将显示所选选项卡的标题; false:标题栏将显示“Windows 终端”
    "showTerminalTitleInTitlebar": true,
    //"experimental_showTabsInTitlebar": true,
    // 标签宽度模式 equal:登长|titleLength:标题的长度|compact:非活动标签最窄
    "tabWidthMode": "compact",
    // 多标签关闭时提示
    "confirmCloseAllTabs": false,
    "profiles": {
        "defaults": { // 所有标签都会启用的设置
            // 加载 shell 时所处的起始目录 "%USERPROFILE%":用户文件夹; "//wsl$/Ubuntu-20.04":wsl的某个分发版; ".":当前位置,在右键菜单打开时有效
            "startingDirectory": ".",
            // 禁止脚本修改标题 true:tabTitle 成为默认标题,并禁止应用程序的任何标题更改消息,未设置tabTitle将改为使用name。false:tabTitle会正常起作用
            //"suppressApplicationTitle": false,
            // 主题配色 Campbell; Campbell Powershell; Vintage; One Half Dark; One Half Light; Solarized Dark; Solarized Light; Tango Dark; Tango Light
            "colorScheme": "One Half Dark",
            // 字体
            "fontFace" : "Cascadia Code PL",
            // 字体大小
            //"fontSize" : 12,
            // 字体粗细 "normal"、"thin"、"extra-light"、"light"、"semi-light"、"medium"、"semi-bold"、"bold"、"extra-bold"、"black"、"extra-black",或与 OpenType 字体粗细的数值表示形式相对应的整数
            //"fontWeight": "normal",
            // 消除文本锯齿 "grayscale"、"cleartype"、"aliased"
            //"antialiasingMode": "grayscale",
            // 输出历史行数
            "historySize": 9001,
            // 光标类型 "bar":┃,竖线; "emptyBox":▯,空心竖块; "filledBox":█实心竖块; "underscore": ▁,细下划线; "vintage":▃,粗下划线
            "cursorShape": "bar",
            // 光标百分数高度(从底部开始)。 只有将 cursorShape 设置为 "vintage" 时,此操作才有效。
            //"cursorHeight": 25,
            // 光标颜色 以十六进制格式表示的字符串形式的颜色:"#rgb" 或 "#rrggbb"
            //"cursorColor": "",
            // 文字距四周边框举例
            "padding": "0, 0, 0, 0",
            // acrylic即毛玻璃效果
            "useAcrylic": true,
            // acrylic即毛玻璃效果的不透明度,默认0.5
            "acrylicOpacity": 0.8,
            // 背景图片 输入图片位置即可
            //"backgroundImage": "",
            // 背景图片拉伸模式 "none"、"fill"、"uniform"、"uniformToFill"
            //"backgroundImageStretchMode": "fill",
            // 背景图片与窗口的对齐方式 "center"、"left"、"top"、"right"、"bottom"、"topLeft"、"topRight"、"bottomLeft"、"bottomRight"
            //"backgroundImageAlignment": "bottom",
            // 背景图片的不透明度
            //"backgroundImageOpacity": 1.0,
            // 滚动条可见性 "visible"、"hidden"
            //"scrollbarState": "visible",
            // 键入时滚动到输入行 true:则在键入时,窗口将滚动到命令输入行; false:则在开始键入时,窗口不会滚动
            //"snapOnInput": true,
            // 使用exit或正常退出时如何关闭配置文件。"graceful"/true:关闭配置文件; "always":始终关闭配置文件; "never"/false:永远不会关闭配置文件
            "closeOnExit": "graceful",
            // 控制 Windows 终端是否将 ctrl+alt 视为 AltGr 的别名
            "altGrAliasing": true
        },
        "list": [
            {
                "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
                "name": "cmd",
                "tabTitle": "cmd",
                "commandline": "cmd.exe",
                //"icon" : "ms-appx:///ProfileIcons/{0caa0dad-35be-5f56-a8ff-afceeeaa6101}.png",
                // 是否隐藏
                "hidden": false
            },
            {
                "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
                "name": "PowerShell",
                "tabTitle": "PowerShell",
                "commandline": "powershell.exe",
                //"icon" : "ms-appx:///ProfileIcons/{61c54bbd-c2c6-5271-96e7-009a87ff44bf}.png",
                // 是否隐藏
                "hidden": false
            },
            {
                "guid": "{58ad8b0c-3ef8-5f4d-bc6f-13e4c00f2530}",
                "name": "Debian",
                "tabTitle": "Debian(WSL)",
                "source": "Windows.Terminal.Wsl",
                // 是否隐藏
                "hidden": false
            },
            {
                "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6102}",
                "name": "cmdAdmin",
                "tabTitle": "cmdAdmin",
                // 以管理员身份打开新标签, 需要安装如下模块
                // PowerShell -Command "Set-ExecutionPolicy RemoteSigned -scope Process; iwr -useb https://raw.githubusercontent.com/gerardog/gsudo/master/installgsudo.ps1 | iex"
                "commandline": "gsudo.exe cmd.exe",
                "icon" : "ms-appx:///ProfileIcons/{0caa0dad-35be-5f56-a8ff-afceeeaa6101}.png",
                // 是否隐藏
                "hidden": false
            },
            {
                "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44c0}",
                "name": "PowerShellAdmin",
                "tabTitle": "PowerShellAdmin",
                // 以管理员身份打开新标签, 需要安装如下模块
                // PowerShell -Command "Set-ExecutionPolicy RemoteSigned -scope Process; iwr -useb https://raw.githubusercontent.com/gerardog/gsudo/master/installgsudo.ps1 | iex"
                "commandline": "gsudo.exe powershell.exe",
                "icon" : "ms-appx:///ProfileIcons/{61c54bbd-c2c6-5271-96e7-009a87ff44bf}.png",
                // 是否隐藏
                "hidden": false
            },
            {
                "guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}",
                "name": "Azure Cloud Shell",
                "source": "Windows.Terminal.Azure",
                "hidden": true
            }
        ],
        // 添加自定义主题配色
        "schemes": [
            {
                "name": "Night Owlish Light",
                "background": "#FFFFFF",
                "black": "#011627",
                "blue": "#4876D6",
                "brightBlack": "#7A8181",
                "brightBlue": "#5CA7E4",
                "brightCyan": "#00C990",
                "brightGreen": "#49D0C5",
                "brightPurple": "#697098",
                "brightRed": "#F76E6E",
                "brightWhite": "#989FB1",
                "brightYellow": "#DAC26B",
                "cyan": "#08916A",
                "foreground": "#403F53",
                "green": "#2AA298",
                "purple": "#403F53",
                "red": "#D3423E",
                "white": "#7A8181",
                "yellow": "#DAAA01"
            }
        ]
    },
    // 设置快捷键, 文档地址 https://aka.ms/terminal-keybindings
    "keybindings": [
        // 打开命令面板
        {
            "command": "commandPalette",
            "keys": "ctrl+shift+p"
        },
        // 打开图形配置界面
        {
            "command": {
                "action": "openSettings",
                "target": "settingsUI"
            },
            "keys": "ctrl+shift+,"
        }
    ]
}

三.右键菜单

1.添加右键菜单

复制下面的代码另存为 add.js 文件,双击执行即可在右键菜单添加菜单

  • 1.1 使用安装中第 1 和 2.1 两种方法安装的

注意修改下面代码中 用户名 为自己电脑的用户名

var WshShell = new ActiveXObject("WScript.Shell");

WshShell.RegWrite("HKCU\\Software\\Classes\\Directory\\Background\\shell\\wt_here\\", "Windows Terminal", "REG_SZ");
WshShell.RegWrite("HKCU\\Software\\Classes\\Directory\\Background\\shell\\wt_here\\command\\", "C:\\Users\\用户名\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe", "REG_SZ");
  • 1.2 使用安装中 2.2 方法安装的

注意修改下面代码中 自定义存放路径 为自己存放解压文件夹,注意转义,即双反斜杠 \\ 作为路径分隔符

var WshShell = new ActiveXObject("WScript.Shell");

WshShell.RegWrite("HKCU\\Software\\Classes\\Directory\\Background\\shell\\wt_here\\", "Windows Terminal", "REG_SZ");
WshShell.RegWrite("HKCU\\Software\\Classes\\Directory\\Background\\shell\\wt_here\\command\\", "自定义存放路径\\wt.exe", "REG_SZ");

2.删除右键菜单

复制下面代码另存为 remove.js,双击执行即可移除右键菜单

var WshShell = new ActiveXObject("WScript.Shell");

WshShell.RegDelete("HKCU\\Software\\Classes\\Directory\\Background\\shell\\wt_here\\command\\");
WshShell.RegDelete("HKCU\\Software\\Classes\\Directory\\Background\\shell\\wt_here\\");

四.使用管理员身份打开

1.使用第三方软件 gsudo

gsudo 是一个开源软件,类似 Linux Mac OS 中的 sudo 命令

该方式可以自由选择打开一个有管理员权限或没有管理员权限的shell标签

复制下面的代码在 power shell 中运行

PowerShell -Command "Set-ExecutionPolicy RemoteSigned -scope Process; iwr -useb https://raw.githubusercontent.com/gerardog/gsudo/master/installgsudo.ps1 | iex"

执行完毕后添加环境变量,然后就可以以类似 Linux Mac OS 中的 sudo 命令的方式进行提权,配合配置文件中的 source 即可在 Windows Terminal 中直接打开新的管理员身份的shell标签

// 以管理员身份打开cmd
gsudo cmd.exe

2.直接以管理员权限打开Windows Terminal

该方法是直接添加一个新的右键菜单,通过此菜单打开的Terminal只能以管理员身份运行,不如 gsudo 灵活

复制以下代码另存为 addAdmin.js,双击运行即可,注意将 用户名 修改为自己的用户名

var WshShell = new ActiveXObject("WScript.Shell");

WshShell.RegWrite("HKCU\\Software\\Classes\\Directory\\Background\\shell\\runas\\", "Windows Terminal Admin", "REG_SZ");
WshShell.RegWrite("HKCU\\Software\\Classes\\Directory\\Background\\shell\\runas\\command\\", "cmd.exe /k \"C:\\Users\\用户名\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe&&exit\"", "REG_SZ");

五.powershell设置主题

官方文档

安装微软开源的 Powerline 字体 Cascadia Code PL

在powershell中执行以下命令安装 Posh-Gitoh-my-posh
若提示不允许执行则开启开发者选项
如果尚未安装 NuGet,PowerShell 命令行会询问是否要安装 NuGet。 选择 [Y]“是”。 可能还需要批准从不受信任的存储库 PSGallery 中安装模块。 选择 [Y]“是”。

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

如果使用的是 PowerShell Core版本,还需要安装

Install-Module -Name PSReadLine -Scope CurrentUser -Force -SkipPublisherCheck

安装完成后在powershell中输入 notepad $PROFILE 命令,在打开的文件中填写如下代码
oh-my-posh 支持的主题

Import-Module posh-git
Import-Module oh-my-posh
Set-PoshPrompt Paradox
  • 注意 新版本的 oh-my-posh 已经将 Set-Theme 命令替换为 Set-PoshPrompt

你可能感兴趣的:(Windows,windows,cmd,shell,powershell)