fal*_*lse 92 configuration command-line gnome-terminal tabs
我有一个终端窗口,其中打开了十几个命名选项卡。
我想保存当前配置并使用名称和目录恢复它。
有没有办法做到这一点?
Nyk*_*kin 46
将配置保存到/tmp/cfg:
gnome-terminal --save-config=/tmp/cfg
Run Code Online (Sandbox Code Playgroud)
要重新加载它:
gnome-terminal --load-config=/tmp/cfg
Run Code Online (Sandbox Code Playgroud)
更新
在玩过 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
Run Code Online (Sandbox Code Playgroud)
要正确分配名称,您必须从终端的第一个选项卡运行它。加载与以前相同:
gnome-terminal --load-config=/tmp/test
Run Code Online (Sandbox Code Playgroud)
解释:
我可以使用以下来获取选项卡名称:
xprop -id $WINDOWID WM_NAME
Run Code Online (Sandbox Code Playgroud)
我可以使用以下内容跳转到下一个选项卡:
xdotool key ctrl+Page_Down;
Run Code Online (Sandbox Code Playgroud)
在 grepping 之前保存的配置文件后,我获得了多个选项卡:
$(grep '\[Terminal' /tmp/test | wc -l)
Run Code Online (Sandbox Code Playgroud)
所以我可以在循环内迭代选项卡。我必须为之前保存的文件中的每个选项卡配置部分添加“Title=titlename”条目。为此,首先我要创建一个行号数组,我将在其中添加行。
LINES=($(grep -n '\[Terminal' /tmp/test | cut -d: -f1))
Run Code Online (Sandbox Code Playgroud)
我在迭代选项卡的循环内添加“Title=titlename”行:
sed -ri "$((${LINES[$i]}+$i))s/.*/&\nTitle=$TITLE/" /tmp/test
Run Code Online (Sandbox Code Playgroud)
Ash*_*ppa 13
另一种方法是只使用Byobu。按 F2 打开里面的新终端。使用 F3 和 F4 在端子之间进行左右切换。
随时关闭 GUI 窗口。当您重新打开 Byobu 时,您的所有终端都将恢复:)
小智 5
我也在 Gnome 终端中寻找过该功能,但找不到。到目前为止,我发现的最佳选择是使用 konsole。它允许您为标签添加书签,以便您可以通过从书签菜单中选择它们来返回它们。我希望这有帮助。