此方法須要咱們下載源碼,首先進入官方源碼發佈頁 咱們能夠看到三個文件。 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目錄: