此方法须要咱们下载源码,首先进入官方源码发布页 咱们能够看到三个文件。 linux
往下翻,能够看到里面有三个源码文件,第一个是源码文件的密钥文件,咱们暂时不须要,第二个文件是源码文件的gnome-terminal原始源码,第三个是针对ubuntu系统的补丁,在gnome-terminal官方源码的基础上应用这个补丁,就能在ubuntu上面运行,否则会出bug。所以咱们须要下载的是第2、第三个文件。 git
使用如下命令应用补丁:shell
git apply patches/*.patch
复制代码
在src目录中,咱们能够找到如下代码片断ubuntu
case FILE_INFO_DESKTOP://这个说明是在桌面上打开
if (desktop_is_home_dir (nautilus) || desktop_opens_home_dir (nautilus)) {
//这个if判断条件很重要
path = g_strdup (g_get_home_dir ());
} else {
path = g_strdup (g_get_user_special_dir (G_USER_DIRECTORY_DESKTOP));
}
break;
复制代码
这个就是关键代码,其中if判断条件判断desktop_is_home_dir (nautilus)和desktop_opens_home_dir (nautilus)这两个函数是否成立,只要有其中一个成立,咱们就打开home目录,否则咱们就打开桌面,以后,咱们继续搜索desktop_is_home_dir (nautilus)和desktop_opens_home_dir (nautilus)这两个函数, 首先找到desktop_is_home_dir (nautilus)这个函数,bash
static inline gboolean
desktop_is_home_dir (TerminalNautilus *nautilus)
{
return FALSE;
}
复制代码
因为ubuntu默认桌面不是home目录,因此这个函数返回FALSE。 以后咱们继续寻找desktop_opens_home_dir (nautilus)这个函数app
static inline gboolean desktop_opens_home_dir (TerminalNautilus *nautilus) {
#if 0
return _client_get_bool (gconf_client,
"/apps/nautilus-open-terminal/desktop_opens_home_dir",
NULL);
#endif
return TRUE;//这里要改成FALSE
}
复制代码
注意这里返回了TRUE说明在desktop上面打开终端后进入的是home目录,咱们须要改成FALSE,这样才能进入Desktop目录。 修改后咱们获得如下代码:ionic
static inline gboolean desktop_opens_home_dir (TerminalNautilus *nautilus) {
#if 0
return _client_get_bool (gconf_client,
"/apps/nautilus-open-terminal/desktop_opens_home_dir",
NULL);
#endif
return FALSE;
}
复制代码
这样代码就修改完了,顺便咱们还能够看看代码别的部分,以下两段代码分别设置了桌面上右键和普通文件夹里面右键显示的不一样,其中桌面上是Open Terminal而普通文件夹里面是Open in Terminal,只相差了一个in。 函数
case FILE_INFO_DESKTOP:
if (desktop_opens_home_dir (nautilus)) {
name = _("Open T_erminal");
tooltip = _("Open a terminal");
} else {
name = _("Open in T_erminal");
tooltip = _("Open the currently open folder in a terminal");
}
break;
复制代码
case FILE_INFO_OTHER:
name = _("Open in T_erminal");
if (is_file_item) {
tooltip = _("Open the currently selected folder in a terminal");
} else {
tooltip = _("Open the currently open folder in a terminal");
}
break;
复制代码
sudo apt install intltool libvte-2.91-dev gsettings-desktop-schemas-dev uuid-dev libdconf-dev libpcre2-dev libgconf2-dev libxml2-utils gnome-shell libnautilus-extension-dev itstool yelp-tools pcre2-utils
复制代码
咱们按照autoreconf->autoconf->configure->make->make install的步骤进行ui
autoreconf --install
autoconf
./configure --prefix='/usr'
make
sudo make install
复制代码
编译好以后咱们重启,以后在桌面上打开终端,看看是否生效。很遗憾个人没生效,通过仔细检查,发现缘由是make install 把libterminal-nautilus.so安装到了/usr/lib/nautilus/extensions-3.0/目录下,而咱们须要安装到\usr\lib\x86_64-linux-gnu\nautilus\extensions-3.0\目录下,所以须要如下命令来复制这个库文件。spa
cp /usr/lib/nautilus/extensions-3.0/libterminal-nautilus.so \usr\lib\x86_64-linux-gnu\nautilus\extensions-3.0\
复制代码
复制以后,桌面上右键菜单会暂时不可用,但重启以后就会恢复正常了。 如今咱们在桌面上打开终端,# 方法一
cd Desktop
复制代码
这样也会产生一些新的问题,好比在home目录下打开终端会跳转到Desktop,但假如你的我的喜爱和我同样是在桌面上操做的话,这个就问题不大。
方法二须要咱们下载源码,首先进入官方源码发布页 咱们能够看到三个文件。
往下翻,能够看到里面有三个源码文件,第一个是源码文件的密钥文件,咱们暂时不须要,第二个文件是源码文件的gnome-terminal原始源码,第三个是针对ubuntu系统的补丁,在gnome-terminal官方源码的基础上应用这个补丁,就能在ubuntu上面运行,否则会出bug。所以咱们须要下载的是第2、第三个文件。
使用如下命令应用补丁:
git apply patches/*.patch
复制代码
在src目录中,咱们能够找到如下代码片断
case FILE_INFO_DESKTOP://这个说明是在桌面上打开
if (desktop_is_home_dir (nautilus) || desktop_opens_home_dir (nautilus)) {
//这个if判断条件很重要
path = g_strdup (g_get_home_dir ());
} else {
path = g_strdup (g_get_user_special_dir (G_USER_DIRECTORY_DESKTOP));
}
break;
复制代码
这个就是关键代码,其中if判断条件判断desktop_is_home_dir (nautilus)和desktop_opens_home_dir (nautilus)这两个函数是否成立,只要有其中一个成立,咱们就打开home目录,否则咱们就打开桌面,以后,咱们继续搜索desktop_is_home_dir (nautilus)和desktop_opens_home_dir (nautilus)这两个函数, 首先找到desktop_is_home_dir (nautilus)这个函数,
static inline gboolean
desktop_is_home_dir (TerminalNautilus *nautilus)
{
return FALSE;
}
复制代码
因为ubuntu默认桌面不是home目录,因此这个函数返回FALSE。 以后咱们继续寻找desktop_opens_home_dir (nautilus)这个函数
static inline gboolean desktop_opens_home_dir (TerminalNautilus *nautilus) {
#if 0
return _client_get_bool (gconf_client,
"/apps/nautilus-open-terminal/desktop_opens_home_dir",
NULL);
#endif
return TRUE;//这里要改成FALSE
}
复制代码
注意这里返回了TRUE说明在desktop上面打开终端后进入的是home目录,咱们须要改成FALSE,这样才能进入Desktop目录。 修改后咱们获得如下代码:
static inline gboolean desktop_opens_home_dir (TerminalNautilus *nautilus) {
#if 0
return _client_get_bool (gconf_client,
"/apps/nautilus-open-terminal/desktop_opens_home_dir",
NULL);
#endif
return FALSE;
}
复制代码
这样代码就修改完了,顺便咱们还能够看看代码别的部分,以下两段代码分别设置了桌面上右键和普通文件夹里面右键显示的不一样,其中桌面上是Open Terminal而普通文件夹里面是Open in Terminal,只相差了一个in。
case FILE_INFO_DESKTOP:
if (desktop_opens_home_dir (nautilus)) {
name = _("Open T_erminal");
tooltip = _("Open a terminal");
} else {
name = _("Open in T_erminal");
tooltip = _("Open the currently open folder in a terminal");
}
break;
复制代码
case FILE_INFO_OTHER:
name = _("Open in T_erminal");
if (is_file_item) {
tooltip = _("Open the currently selected folder in a terminal");
} else {
tooltip = _("Open the currently open folder in a terminal");
}
break;
复制代码
sudo apt install intltool libvte-2.91-dev gsettings-desktop-schemas-dev uuid-dev libdconf-dev libpcre2-dev libgconf2-dev libxml2-utils gnome-shell libnautilus-extension-dev itstool yelp-tools pcre2-utils
复制代码
咱们按照autoreconf->autoconf->configure->make->make install的步骤进行
autoreconf --install
autoconf
./configure --prefix='/usr'
make
sudo make install
复制代码
编译好以后咱们重启,以后在桌面上打开终端,看看是否生效。很遗憾个人没生效,通过仔细检查,发现缘由是make install 把libterminal-nautilus.so安装到了/usr/lib/nautilus/extensions-3.0/目录下,而咱们须要安装到\usr\lib\x86_64-linux-gnu\nautilus\extensions-3.0\目录下,所以须要如下命令来复制这个库文件。
cp /usr/lib/nautilus/extensions-3.0/libterminal-nautilus.so \usr\lib\x86_64-linux-gnu\nautilus\extensions-3.0\
复制代码
复制以后,桌面上右键菜单会暂时不可用,但重启以后就会恢复正常了。 如今咱们在桌面上打开终端,默认进入的就是desktop目录: