Сегодня мне вдруг надоело мозолить глаза о неинформативные названия томов файловой системы, которые отображаются в боковой панели файловых менеджеров и в диалогах «Открыть/Сохранить». И я решил докопаться до кода, который эти имена выводит:
- Прикладным интерфейсом, через который приложения получают эти имена, является библиотека
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
.
Ссылки:
- Сам патч: https://github.com/sde-gui/PKGBUILDs-gnome-platform-patches/blob/main/gvfs/0001-gvfs-improve-volume-names-and-sorting.diff
- Рецепт сборки gvfs для Arch/Artix/etc: https://github.com/sde-gui/PKGBUILDs-gnome-platform-patches/tree/main/gvfs
- https://github.com/sde-gui/PKGBUILDs-gnome-platform-patches/tree/main/_docs
Копия данного сообщения на форуме: