LINUX.ORG.RU

Пропатченный GVFS

 , , , ,


0

2

Сегодня мне вдруг надоело мозолить глаза о неинформативные названия томов файловой системы, которые отображаются в боковой панели файловых менеджеров и в диалогах «Открыть/Сохранить». И я решил докопаться до кода, который эти имена выводит:

  • Прикладным интерфейсом, через который приложения получают эти имена, является библиотека GIO.
  • Непосредственно перечислением устройств, монтированием, размонтированием и т.п. занимается демон udisksd из пакета udisks2. Прикладной код с ним может общаться через dbus.
  • Промежуточным звеном, которое от учётной записи пользователя общается с udisks2 и предоставляет информацию для интерфейса gio, является gvfs. Точнее, один из нескольких специализированных демонов в составе этого пакета.

Посмотрев в исходники, я обнаружил, что никакой кастомизации, как отображать имена томов, в gvfs не предусмотрено. Поэтому я запатчил код и пересобрал пакет.

Результат вы видите на изображении - Было/Стало:

  • Больше не отображается бесполезных надписей «Том XXX ГБ» («XXX GB Volume» в английской локализации).
  • Для всех томов отображается название устройства в каталоге /dev, метка и размер.
  • У всех LVM-томов будут вменяемые имена, а не просто dm-1, dm-2…
  • Список томов сортируется по названию устройства. Так что все sda* будут раньше всех sdb* и так далее.

Так как патч действует на уровне демона платформы, он действует на любые приложения, использующие API gio. Как минимум, это:

  • большинство файловых менеджеров на GTK, таких как thunar, caja, pcmanfm и т.п.;
  • диалоги «Открыть/Сохранить» в приложениях на gtk.
  • диалоги «Открыть/Сохранить» в приложениях на qt, когда включена интеграция с платформой gtk.

Ссылки:

>>> Просмотр (1045x1768, 194 Kb)

★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 3)

Ответ на: комментарий от mittorn

Проверил у себя.

gio без gvfs:

  • Не умеет получать информацию о несмонтированных томах.
    • Как следствие, не умеет получать информацию о вставленных флешках и прочих переносных устройствах.
  • Отображает только уже имеющиеся точки монтирования.

Что за ОС и какой смысл не иметь установленную gvfs вообще?

wandrien ★★
() автор топика
Ответ на: комментарий от wandrien

gentoo с TDE
Сам TDE интегрируется с udisks2, так что он информацию о несмонтированных томах оттуда получает
gvfs вряд ли хорошее решение когда у тебя основной DE не на gtk, всё равно монтирование флешек делается не в gtkшном диалоге, а средствами DE, а остальные фишки gfvs в DE работать не будут, и держать их тогда в системе бесполезным балластом
Но я вообще задумываюсь о написании fuse драйвера для tdeioslaves, чтобы виртуальные фс TDE были доступны вне TDE - тогда по идее они и в gio могут отображаться и будут доступны всем приложениям напрямую

mittorn ★★★★★
()
Ответ на: комментарий от mittorn

Наверное в теории можно сделать минимальный билд gvfs, где будет только gvfs-udisks2-volume-monitor и ничего больше.

Это позволит в gio-приложениях отображать список томов из udisks2 и монтировать/размонтировать из там же из меню.

wandrien ★★
() автор топика

Хренасе, ты, Стёпа Плюшкин)) Нафига столько одновременно подключенных дисков? Или это один диск, разбитый на несколько томов?

basilic
()
Ответ на: комментарий от basilic

LVM на двух накопителях с разными линуксами и томами данных + FreeBSD + раздел с NTFS на всякий случай + мелочёвка. И флешку еще вставил, когда тестировал имена.

wandrien ★★
() автор топика
Ответ на: комментарий от wandrien

а не лучше ли добавить udisks2 в gio сразу?
ИМХО, не стоит оно того - тащить gvfs в систему, когда из gtk-приложений у меня только palemoon с gtk2

mittorn ★★★★★
()
Последнее исправление: mittorn (всего исправлений: 1)
Ответ на: комментарий от mittorn

а не лучше ли добавить udisks2 в gio сразу?

gio - это модульный фреймфорк, который даёт идентичный API для приложений, вне зависимости от того, что под капотом.

gvfs - это набор бэкэнд-сервисов для этого фреймфорка, реализующих самые ходовые задачи, такие как перечисление томов нижележащей операционной системы или доступ к сетевым файловым системам.

Задача «добавить udisks2 в gio» эквивалентна написанию клона программы gvfs-udisks2-volume-monitor. Но зачем?

wandrien ★★
() автор топика

Вот когда в апстрим примут, тогда и начнём смотреть.

Shushundr ★★★
()

В апстрим отправил чтобы не пересобирать самому при каждом апдейте?

Kolins ★★★
()

А томах меток нет? Неплохо бы ее выводить. Всякий там Nautilus/Nemo идентифицирует том по метке, если она есть. Весьма полезная фича для USB-шных дисков или флешек. А вот указание устройства — дело полезное. Ждем, когда патч придет в upstream.

gns ★★★★★
()
Последнее исправление: gns (всего исправлений: 1)

на gentoo норм напялилось:

--- /usr/portage/gnome-base/gvfs/gvfs-1.50.6.ebuild	2023-09-01 20:40:37.000000000 +0400
+++ gvfs-1.50.6-r9000.ebuild	2023-11-09 14:41:07.145427057 +0400
@@ -82,6 +82,10 @@
 	test? ( dev-libs/libgdata )
 "
 
+PATCHES=(
+	"${FILESDIR}"/0001-gvfs-improve-volume-names-and-sorting.diff
+)
+
 src_configure() {
 	local enable_logind="false"
 	if use systemd || use elogind; then

dab18
()
Ответ на: комментарий от gns

В 1-м случае будет хаос, так как метка есть не у всех томов.

Во втором случае это выглядит как путь со слешем, как у LVM-томов.

wandrien ★★
() автор топика
Ответ на: комментарий от wandrien

Значит просто привыкнуть надо. Вы это дело в апстрим отправлять собираетесь?

gns ★★★★★
()

Респект ТС-у, сделал полезное и хорошее дело, это действительно для кого то может быть полезно

I-Love-Microsoft ★★★★★
()

Если честно, я не совсем проникся глубиной драмы, так как далек от погромирования. Но неужели нельзя было просто задать метки?

utanho ★★★★★
()

) а чем к примеру /dev/sde10 хуже\лучше том10? как мне кажется сложность возникает не в отличить тома друг от друга а сопоставить том и физический диск. я какую то штуку нашел для трея типа гуй для udiskie вот он там показывает модель диска букву разделы на нем и кнопки есть монтировать\размонтировать\отключить\обзор.

antech
()
Ответ на: комментарий от antech

А если учесть, что они могут меняться местами, то картина вообще веселая.

utanho ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.