GNOME 3.14+ 推出新的 gnome 终端并设置标题

GNOME 3.14+ 推出新的 gnome 终端并设置标题

令许多人失望的是,选项卡/窗口标题无法再设置--title

我用的是bash。我有一些别名用来连接到远程服务器。

alias c:prod='gnome-terminal --hide-menubar --profile=Production \
--title="Production Server" -e "ssh <url>" &'

我找到了 GNOME 3.14+ 的解决方法来设置标题,一旦输入,它就可以在命令行中很好地工作.bashrc

function set-title() {
  if [[ -z "$ORIG" ]]; then
    ORIG=$PS1
  fi
  TITLE="\[\e]2;$@\a\]"
  PS1=${ORIG}${TITLE}
}

然而,这似乎只有在远程服务器中放置和调用时才有效,.bashrc即我只能在登录后更改标题。

无论如何,如果我在连接之前尝试更改新窗口的标题,它不会产生任何效果:

alias c:prod='gnome-terminal --hide-menubar --profile=Production \
-e "bash -c \"source ~/.bashrc;set-title Production;ssh <url>\"" &'

当终端在我的盒子上运行时,在遥控器上设置窗口标题感觉不对,并且我无法使其在我的用户没有可放置的主目录的服务器上工作.bashrc

是否有一片只见树木不见森林的地方?

答案1

  1. set-title将函数附加到~/.bashrc

    function set-title() {
      if [[ -z "$ORIG" ]]; then
        ORIG=$PS1
      fi
      TITLE="\[\e]2;$@\a\]"
      PS1=${ORIG}${TITLE}
    }
    
  2. expect如果没有,请安装:

    sudo apt-get install expect
    
  3. 用内容创建ProductionServer.sh

    #!/usr/bin/env expect
    
    spawn bash
    expect -re $ {send -- "set-title \"Production Server\"\rclear\rssh [email protected]\rclear\r"}
    interact
    exit
    
  4. 带参数执行gnome-terminal

    gnome-terminal --hide-menubar -e ~/ProductionServer.sh
    

也许这个过程可以优化,但问题已经解决了。

相关内容