如果您已经gnome-terminal
运行并想要该程序的新实例,您可能会认为gnome-terminal &
从 shell 运行就可以了。
令人惊讶的是,这个新实例的行为就像一些平淡的 Windows 或 Mac 程序;它只向现有的运行消息发送一条消息gnome-terminal
来创建一个新窗口。如果这一gnome-terminal
进程崩溃,您将丢失所有终端窗口!
(当然,每个窗口都有自己的 shell,这是一个独立的进程,但实际的终端仿真器及其 GUI 是通过应用程序的单个实例进行管理的。)
我们如何创建 的独立实例gnome-terminal
,每个实例都在自己的进程中运行,以便杀死该进程仅破坏与该进程关联的窗口?
答案1
由于新的客户端/服务器架构(详情这里) 您必须启动 的单独实例gnome-terminal-server
。为此,您可以使用--app-id
开关:
/usr/lib/gnome-terminal/gnome-terminal-server --app-id my.first.Terminal
然后使用客户端(具有相同的 app-id)在新服务器内创建终端1 :
gnome-terminal --app-id my.first.Terminal
gnome-terminal --full-screen --app-id my.first.Terminal
......
另一个例子:
/usr/lib/gnome-terminal/gnome-terminal-server --app-id my.second.Terminal
和终端:
gnome-terminal --geometry 80x24+200+200 --app-id my.second.Terminal
gnome-terminal --app-id my.second.Terminal
.....
gnome-terminal-server
您的系统上的路径可能有所不同。
1:注意“您有 10 秒的时间使用客户端在新服务器内创建终端”。
答案2
根据man gnome-terminal
,您正在寻找的选项似乎是名称令人困惑的
--disable-factory
Do not register with the activation name server, do
not re-use an active terminal.
然而,这个选项显然是在较新版本中已删除所以不应该依赖。
答案3
我一直在努力解决 mc 与其他终端窗口位于同一 alt-tab 组中的问题,并找到了这个解决方案。
https://chrisirwin.ca/posts/multiple-instances-of-gnome-terminal/
这个人(克里斯·欧文)在他的邮件例程中解决了这个问题。我对 mc 做了同样的事情,除了 alt-tab 中的 mc 图标之外,还取得了完全的成功,但这很好。
您将需要 3 个文件:
/usr/share/dbus-1/services/org.gnome.Terminal-mc.service
[D-BUS Service]
Name=org.gnome.Terminal-mc
SystemdService=gnome-terminal-server-mc.service
Exec=/usr/lib/gnome-terminal-server --class=org.gnome.Terminal-mc --app-id org.gnome.Terminal-mc
/usr/lib/systemd/user/gnome-terminal-server-mc.service
[Unit]
Description=GNOME mc Terminal Server
[Service]
KillMode=process
Type=dbus
BusName=org.gnome.Terminal-mc
ExecStart=/usr/lib/gnome-terminal-server --class=org.gnome.Terminal-mc --app-id org.gnome.Terminal-mc
/usr/local/share/applications/mc.desktop
这是午夜指挥官的桌面条目。可以直接编辑它/usr/share/applications/...
,也可以将其从那里移动到此处,以/usr/local/share/applications/mc.desktop
强调它是您自己修改的副本。无论如何,Exec
应将条目修改为gnome-terminal --app-id org.gnome.Terminal-mc -e mc
Exec=gnome-terminal --app-id org.gnome.Terminal-mc --hide-menubar --geometry=102x35 -e mc
包含以上所有内容的存档
https://we.tl/t-6rH5jduMG7
这是要解压到您的 .tar.gz 中的文件/
。它将从上面创建文件,加上 mc 的 .svg 图标。