防止 Windows 终端标题更改

Ris*_*ngh 1 windows terminal

我正在尝试 Windows 终端。我使用 bash 并希望 Windows 终端选项卡标题保留为 cwd(最初由 bash 设置)而不是更改,因为在使用多个选项卡时它们变得难以区分。如果我npm run start直接在 bash 中运行 say,标题(在标题栏中)仍为 cwd,但如果我尝试通过 Windows 终端使用它,选项卡标题将更改为 npm,这是我不想要的。

我的.bashrc

if test -f /etc/profile.d/git-sdk.sh
then
    TITLEPREFIX=SDK-${MSYSTEM#MINGW}
else
    TITLEPREFIX=$MSYSTEM
fi

if test -f ~/.config/git/git-prompt.sh
then
    . ~/.config/git/git-prompt.sh
else
    # PS1='\[\033]0;$TITLEPREFIX:$PWD\007\]' # set window title
    # PS1='\[\e]0;\W\a\]\[\033]0;$PWD\007\]' # set window title (full path)
    PS1='\[\e]0;\W\a\]' # set window title (only directory name)
    PS1="$PS1"'\n'                 # new line
    PS1="$PS1"'\[\033[32m\]'       # change to green
    PS1="$PS1"'\u '             # user@host<space>
    # PS1="$PS1"'\[\033[35m\]'       # change to purple
    # PS1="$PS1"'$MSYSTEM '          # show MSYSTEM
    PS1="$PS1"'\[\033[33m\]'       # change to brownish yellow
    PS1="$PS1"'\w'                 # current working directory
    if test -z "$WINELOADERNOEXEC"
    then
        GIT_EXEC_PATH="$(git --exec-path 2>/dev/null)"
        COMPLETION_PATH="${GIT_EXEC_PATH%/libexec/git-core}"
        COMPLETION_PATH="${COMPLETION_PATH%/lib/git-core}"
        COMPLETION_PATH="$COMPLETION_PATH/share/git/completion"
        if test -f "$COMPLETION_PATH/git-prompt.sh"
        then
            . "$COMPLETION_PATH/git-completion.bash"
            . "$COMPLETION_PATH/git-prompt.sh"
            PS1="$PS1"'\[\033[36m\]'  # change color to cyan
            PS1="$PS1"'`__git_ps1`'   # bash function
        fi
    fi
    PS1="$PS1"'\[\033[0m\]'        # change color
    PS1="$PS1"'\n'                 # new line
    PS1="$PS1"'$ '                 # prompt: always $
fi

MSYS2_PS1="$PS1"               # for detection by MSYS2 SDK's bash.basrc

# Evaluate all user-specific Bash completion scripts (if any)
if test -z "$WINELOADERNOEXEC"
then
    for c in "$HOME"/bash_completion.d/*.bash
    do
        # Handle absence of any scripts (or the folder) gracefully
        test ! -f "$c" ||
        . "$c"
    done
fi

export PS1='${debian_chroot:+($debian_chroot)}\[\e]0;\W\a\]\[\033[01;32m\]\u \[\033[00m\]\[\033[01;00m\]\w\n$ '
# echo -ne '\033]0;New Title\a'
Run Code Online (Sandbox Code Playgroud)

我的 Windows 终端settings.json

{
  "$schema": "https://aka.ms/terminal-profiles-schema",
  "defaultProfile": "{00000000-0000-0000-ba54-000000000002}",
  "copyOnSelect": false,
  "copyFormatting": false,
  "profiles": {
    "defaults": {
      "fontSize": 10
    },
    "list": [
      {
        "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
        "name": "Windows PowerShell",
        "commandline": "powershell.exe",
        "hidden": false
      },
      {
        "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
        "name": "Command Prompt",
        "commandline": "cmd.exe",
        "hidden": false
      },
      {
        "guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}",
        "hidden": false,
        "name": "Azure Cloud Shell",
        "source": "Windows.Terminal.Azure"
      },
      {
        "guid": "{00000000-0000-0000-ba54-000000000002}",
        "commandline": "%PROGRAMFILES%/git/usr/bin/bash.exe -i -l",
        "icon": "%PROGRAMFILES%/Git/mingw64/share/git/git-for-windows.ico",
        "name": "Bash",
        "startingDirectory": "%USERPROFILE%"
      }
    ]
  },
  "schemes": [],
  "actions": [
    { "command": { "action": "copy", "singleLine": false }, "keys": "ctrl+c" },
    { "command": "paste", "keys": "ctrl+v" },
    { "command": "find", "keys": "ctrl+shift+f" },
    {
      "command": {
        "action": "splitPane",
        "split": "auto",
        "splitMode": "duplicate"
      },
      "keys": "alt+shift+d"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我该如何实现这一目标?

小智 6

Windows 终端有两个标签可以更改此设置

"tabTitle": "yourtitle",
"suppressApplicationTitle": true
Run Code Online (Sandbox Code Playgroud)

所以对于你的情况,也许你可以这样写

{
    "guid": "{00000000-0000-0000-ba54-000000000002}",
    "commandline": "%PROGRAMFILES%/git/usr/bin/bash.exe -i -l",
    "icon": "%PROGRAMFILES%/Git/mingw64/share/git/git-for-windows.ico",
    "name": "Bash",
    "startingDirectory": "%USERPROFILE%",
    "tabTitle": "cwd",
    "suppressApplicationTitle": true
}
Run Code Online (Sandbox Code Playgroud)