答案1
我已经有一段时间没有使用 Linux 作为我的主要驱动程序了,但是曾经有一个程序nautilus-open-terminal
可以执行此操作,但不确定 Fedora 是否支持它。另外,虽然我不知道是否可以在非 Ubuntu/Debian 系统上安装它,但 Canonical 的 Unity DE 内置了此功能,您可能可以复制 Gnome 中使用的方法。
编辑:根据您的评论,您可以将行添加到您的.profile
始终在 gnome-terminal 的当前工作目录中打开 tmux 作为否认的进程(即tmux ./; disown -r && killall gnome-terminal
),这样当您右键单击并在目录中打开终端时,它会打开一个 gnome -terminal,并立即打开一个独立的 tmux 窗口,传递 nautilus 收到的工作目录作为参数。
更新:好的,我找到了两种方法。现在,每一个都有自己的问题,但希望其中一个对您来说足够好。这些方法在 Debian 8.7 安装上进行了测试,使用 Bash 作为 shell 和nautilus-open-terminal
在当前 Nautilus/Nemo 目录中启动终端窗口的程序。
方法 1.) 只需添加tmux
到文件的最后.bashrc
(或在您的情况下.zshrc
)。现在,您打开的任何终端窗口都会立即将 tmux 作为工作目录中的进程打开。
这种方法的优点是简单,只打开一个窗口。
此方法的主要缺点是它将始终作为当前 shell 中的嵌套进程运行,因此如果这是一个问题,您可能需要使用其他方法。
方法 2.) 将这一行gnome-terminal -e tmux ./
(这次进程名称周围没有引号)添加到您的.bashrc
或.zshrc
文件中。这将打开一个新的终端窗口,其中包含 tmux 作为主进程。
此方法的优点是 tmux 窗口将是一个独立的进程,并且仍将打开并将当前工作目录设置为 Nautilus/Nemo 窗口的目录。
缺点是,虽然它打开了 tmux 专用窗口,但exit
无法添加到.bashrc
文件中,否则它也会杀死 tmux 窗口。话虽如此,用于生成 tmux 窗口的 gnome 终端仍然可以通过单击x
窗口上的 来手动关闭,或者exit
在 tmux 打开后直接在 gnome 终端中运行。
而第二种方法则不太方便,需要手动关闭多余的终端窗口;Open In Terminal
单击上下文菜单选项时,它将在当前目录中打开一个专用的 tmux 窗口。
答案2
我已经添加了:
# Start tmux if tmux is not already running
pgrep tmux >/dev/null 2>&1 || exec tmux
在我的 .bashrc 的末尾,在我看来一切都工作正常。当我手动启动 gnome 终端(第一次)时,tmux 启动。如果我打开其他终端,它们将没有 tmux(这正是我想要的)。从 Nautilus 中的任何文件夹打开终端(使用“在终端中打开”)也可以按预期工作。
答案3
通过TMUX
环境变量,我们可以exit
在退出 tmux 会话时自动终止原始终端。
if [[ "$TMUX" == "" ]] # if not on tmux
then
tmux
exit
fi
它还可以防止在 tmux 会话中sessions should be nested with care, unset $TMUX to force
调用引起的“”消息。tmux