Сегодня мне вдруг надоело мозолить глаза о неинформативные названия томов файловой системы, которые отображаются в боковой панели файловых менеджеров и в диалогах «Открыть/Сохранить». И я решил докопаться до кода, который эти имена выводит:
- Прикладным интерфейсом, через который приложения получают эти имена, является библиотека 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
>>> Просмотр (1045x1768, 194 Kb)