我的电脑上有相当多的绑定挂载目录(运行 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 caja
Caja 源目录,,,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 的所有内容。