我有一个终端窗口,其中打开了十几个命名选项卡。
我想保存当前配置并使用名称和目录恢复它。
有没有办法做到这一点?
答案1
要保存配置到/tmp/cfg
:
gnome-terminal --save-config=/tmp/cfg
要将其重新加载:
gnome-terminal --load-config=/tmp/cfg
更新
在使用了 bash 之后,我创建了以下脚本,该脚本/tmp/test
也将选项卡名称存储到文件中:
#!/usr/bin/env bash
gnome-terminal --save-config=/tmp/test
LINES=($(grep -n '\[Terminal' /tmp/test | cut -d: -f1))
for ((i=0; i<$(grep '\[Terminal' /tmp/test | wc -l); i++))
do
TITLE=$(xprop -id $WINDOWID WM_NAME | sed -e 's/WM_NAME(STRING) = "//' -e 's/"$//';xdotool key ctrl+Page_Down;)
sed -ri "$((${LINES[$i]}+$i))s/.*/&\nTitle=$TITLE/" /tmp/test
done
要正确分配名称,您必须从终端的第一个选项卡运行它。加载与以前相同:
gnome-terminal --load-config=/tmp/test
解释:
我可以使用以下命令获取标签名称:
xprop -id $WINDOWID WM_NAME
我可以使用以下命令跳转到下一个选项卡:
xdotool key ctrl+Page_Down;
在 grep 之前保存的配置文件后,我得到了标签数:
$(grep '\[Terminal' /tmp/test | wc -l)
因此我可以在循环内迭代选项卡。我必须在之前保存的文件中为每个选项卡配置部分添加“Title=titlename”条目。为此,我首先创建一个行号数组,我将在其中添加行。
LINES=($(grep -n '\[Terminal' /tmp/test | cut -d: -f1))
我在循环迭代标签内添加了“Title=titlename”行:
sed -ri "$((${LINES[$i]}+$i))s/.*/&\nTitle=$TITLE/" /tmp/test
答案2
另一种方法是使用屏风。按 F2 在其中打开新终端。使用 F3 和 F4 在终端之间左右切换。
随时关闭 GUI 窗口。重新打开 Byobu 时,所有终端都会恢复 :)
答案3
我也在 Gnome 终端中寻找该功能,但找不到。到目前为止,我发现的最佳选择是使用 konsole。它允许您为标签添加书签,以便您可以从书签菜单中选择它们来返回它们。希望这对您有所帮助。
答案4
我找到了一种我认为更快的方法。
- 就像 Yoga 所说的那样,创建一个具有您想要的标题和名称的个人资料。
类型:
gnome-terminal --tab-with-profile=PROFILENAME1 --tab-with-profile=PROFILENAME2 ... --tab-with-profile=PROFILENAME999
我使用此命令创建了一个别名,它对我来说效果很好。我只需键入workflow
,就会出现一个终端,其中包含 3 个选项卡以及我在配置文件定义中选择的标题,这些标题将放置在选项卡中。
我在我的.bashrc
档案中放置了:
alias workflow='gnome-terminal --tab-with-profile=Git --tab-with-profile=Run | sublime-text &'