从 Caja 文件管理器 (MATE 桌面) 隐藏某些挂载点

从 Caja 文件管理器 (MATE 桌面) 隐藏某些挂载点

我的电脑上有相当多的绑定挂载目录(运行 Ubuntu 20.04 MATE 版本)。不幸的是,它们都显示在 Caja 文件管理器左侧边栏的“设备”下。我想知道这些绑定挂载的“挂载点”是否可以隐藏(或者是否可以从 Caja 显示的设备列表中排除某些路径)。它们变得杂乱无章,我真的不希望它们显示为“设备”。因为它们不是。

威拉万

答案1

这是一个已知的错误,由 libmount 引起,您可以在其中阅读更多相关信息GNOME Glib 问题 #1271

Caja 使用 GIO,它直接使用 libmount 并且没有能够隐藏驱动器/卷的功能(x-gvfs-hide 不起作用)。

您可以自己修补 Caja,但您必须重建软件包,只需执行以下操作:将以下补丁保存为.patch文件,,,apt source caja进入apt build-dep cajaCaja 源目录,,,patch -p1 < PATCHFILE.patch安装dpkg-buildpackage -rfakeroot -uc -b.deb软件包。

这将隐藏与驱动器不关联的卷(将其保存为hide_no_drive.patch:):

diff -Naur a/src/caja-places-sidebar.c b/src/caja-places-sidebar.c
--- a/src/caja-places-sidebar.c 2020-02-10 11:52:32.000000000 +0100
+++ b/src/caja-places-sidebar.c 2020-06-12 15:30:50.979210881 +0200
@@ -715,6 +715,7 @@
     g_list_free (drives);
 
     /* add all volumes that is not associated with a drive */
+    /*
     volumes = g_volume_monitor_get_volumes (volume_monitor);
     for (l = volumes; l != NULL; l = l->next)
     {
@@ -750,7 +751,7 @@
         }
         else
         {
-            /* see comment above in why we add an icon for an unmounted mountable volume */
+            // see comment above in why we add an icon for an unmounted mountable volume
             icon = g_volume_get_icon (volume);
             name = g_volume_get_name (volume);
             last_iter = add_place (sidebar, PLACES_MOUNTED_VOLUME,
@@ -763,6 +764,7 @@
         g_object_unref (volume);
     }
     g_list_free (volumes);
+    */
 
     /* add mounts that has no volume (/etc/mtab mounts, ftp, sftp,...) */
     network_mounts = NULL;

这将隐藏没有体积的坐骑(将其保存为hide_no_volume.patch:):

diff -Naur a/src/caja-places-sidebar.c b/src/caja-places-sidebar.c
--- a/src/caja-places-sidebar.c 2020-02-10 11:52:32.000000000 +0100
+++ b/src/caja-places-sidebar.c 2020-06-12 15:38:56.846812120 +0200
@@ -766,6 +766,7 @@
 
     /* add mounts that has no volume (/etc/mtab mounts, ftp, sftp,...) */
     network_mounts = NULL;
+    /*
     mounts = g_volume_monitor_get_mounts (volume_monitor);
 
     for (l = mounts; l != NULL; l = l->next)
@@ -809,7 +810,7 @@
         g_free (tooltip);
     }
     g_list_free (mounts);
-
+    */
 
     /* add bookmarks */
     bookmark_count = caja_bookmark_list_length (sidebar->bookmarks);

您还可以尝试重建glib(包含 GIO)并修改 Meson 构建以使用-Dlibmount=false-Dlibmount=disabled。这将禁用系统范围内使用 libmount 的所有内容,包括 GTK 文件对话框中使用 GIO 的所有内容。

相关内容