命令行在gnome-terminal中的配置文件之间切换

我为gnome-terminal创建了一个新的配置文件,我可以在“隐式”配置文件和新创建的配置文件之间切换,如下图所示:

在gnome-terminal中切换配置文件

现在我想知道如何使用命令行/脚本或使用快捷方式在配置文件之间切换。

注意:解决方案如:

gnome-terminal --tab-with-profile=Implicit && exit 

排除因为我不想在更改配置文件的过程中关闭并打开另一个终端或获取另一个终端窗口。

要切换到“隐含”配置文件:

 xdotool key Alt+tp Return 

要切换到第二个配置文件:

 xdotool key Alt+tp Down Return 

xdotool 安装xdotool 在Ubuntu中默认不安装,因此必须先安装它。

当然,对于这些命令可以添加自定义键盘快捷键 。

没有快捷方式允许您更改终端内的配置文件(无需像在评论中所述那样导航菜单),而无需使用GUI。 引用手册( 稳定 , 开发3.9 ):

您可以通过从终端▸更改配置文件中选择配置文件来更改当前“终端”选项卡或窗口中的配置文件。

(你可以在bug跟踪器中提出这个建议)

我本来想做同样的事情,最后得到一个脚本工作,我把它放在我的GitHub上 。

就像我在README.md中解释的那样,它实际上并没有切换,而是将配置文件配置加载到默认配置文件中。 为此,每次配置文件的配置都会在第一次运行脚本时保存到文件中。 该脚本使您看起来像是在配置文件之间切换,这对我来说已经足够了。 希望它能帮到任何人……

根据您的目的,您可能会发现此脚本很有用: https : //github.com/xyrix/gnome-terminal-profile-switcher

它执行一种猴子补丁并为每个终端生成新的配置文件,然后设置一些环境变量以公开用于切换当前终端的配置文件主题的程序。

希望示例safe_ssh脚本能够清楚地表明:-)。 我已经使用它一年多了,它帮助我不破坏公司的实时数据库^ _ ^

如果你有一个经常访问的服务器列表,我相信最简单的解决方案就是只为该框的会话调用第二个窗口。

首先,为您经常使用的每个远程位置创建单独的gnome-terminal配置文件。 然后,在每个配置文件中,指定终端应该为该框执行SSH登录命令,而不是普通shell。

 ssh alice@athena 

最后,编写一个简短的脚本,在给定配置文件ID的情况下启动一个新的远程窗口。

 #!/bin/bash if [[ $# -ne 1 ]] ; then echo "Give me a server/profile name!" exit 1 fi gnome-terminal --window-with-profile=$1 exit 0 

使用此策略,您可以“无限地”改变每个盒子终端窗口的外观,并从单个“控制”终端启动它们。 例如,如果我们将此脚本称为“rlv”,那么我们可以通过简单地调用具有配置文件名称的脚本来生成远程窗口。

 >> rlv athena 

如果您曾指责主机名,或忽略为该主机设置配置文件,那么您将在本地框中获得另一个默认配置文件窗口。 有一种方法可以通过将登录放入脚本本身而不是在gnome-terminal中来编写脚本来避免这种情况:

 #!/bin/bash if [[ $# -ne 1 ]] ; then echo "Give me a server/profile name!" exit 1 fi gnome-terminal --window-with-profile=$1 -e "ssh $1" exit 0 

…但是你失去了为该框定义登录用户名的灵活性。 脚本的附加function我作为练习留给读者。

我刚才注意到我的原始解决方案已在问题中被拒绝。 虽然似乎没有简单的方法来更改配置文件,但您可以使用setterm命令更改背景/前景色。

所以,这个setterm -term linux -background black -foreground green会给你带有绿色文本的黑色背景。 唯一的问题是ls有彩色输出,所以你可能想要关闭ls着色。 否则,它将重置为先前的配色方案

原帖 :有一种方法可以解决。 来自man gnome-terminal:

–window-与轮廓= PROFILENAME

  Open a new window containing a tab with the given profile. More than one of these options can be provided. 

这是我机器上的例子。 我有三个配置文件:B&G(绿色黑色),ForPrinting(黑色字体,白色背景)和默认值。 所以我所做的是在当前窗口类型gnome-terminal --window-with-profile=ForPrinting 。 然后我可以从命令行中删除旧窗口或切换并以图形方式关闭它。

B&G档案不起作用。 可能因为&不是有效字符,所以在命名配置文件时请记住这一点。

我最终使用的非常丑陋的解决方案是

 unset xy eval $(xwininfo -id $(xdotool getactivewindow) | sed -n -e 's/^ \+Absolute upper-left X: \+\([0-9]\+\).*/x=\1/p' \ -e 's/^ \+Absolute upper-left Y: \+\([0-9]\+\).*/y=\1/p') xdotool mousemove $(($x + 50)) $(($y + 50)) xdotool click 3; xdotool key --repeat 3 Up; xdotool key Right; xdotool key --delay 50 Down; xdotool key --delay 50 Return 

(这会选择第二个配置文件,但您可以通过将第二个“key down”命令更改为xdotool key --delay 50 --repeat 2 Down来更改它来说明htir配置文件。

这是做什么的:

  1. 找到当前窗口的左上角坐标(例如,正在使用的gnome终端)。
  2. 将鼠标移动到该终端上方
  3. 右键单击并导航上下文菜单以选择第二个配置文件。

你需要xdotool安装sudo apt install xdotool

终端本身并不允许通过终端进行配置!

gnome-terminal提供“下一个配置文件”命令和快捷方式会很棒; 不幸的是,它没有。

禁用Alt+T (编辑>首选项>启用助记符 – 未选中)的解决方法是: F10 left left down right并选择配置文件。 哎哟。