LINUX.ORG.RU

Gnome Files и архивы

 gnome-files, ,


0

1

Как запретить безобразное поведение Gnome Files (это нынче nautilus так назвали) при работе с архивами? Я не хочу чтоб он мне автоматически распаковывал архивы, я хочу их открывать архиватором (у меня есть архивы и по пол терабайта из которых мне время от времени надо 1 файл извлечь и обновлённую версию файла назад воткнуть), пусть хоть peazip-ом и тем более не хочу, чтоб он распаковывал последний скачанный архив при заходе в директорию ~/Загрузки. Нет ничего что автоматически уберёт этот ужас? Или только ручками MIME типы редактировать?

★★★★★

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

Эм, извини, а ты как предполагал?

Могу предположить только как в винраре, там в настройки заходишь ставишь какие-то галки и он автоматом куда-то что-то в винде прописывает

Может в PeaZip такое есть, хз

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

Он предполагал что можно в гноме где-нить снять галку «автораспаковывать архивы». Конечно с его стороны это очень наивно, ведь в гноме общеизвестно нельзя ничего кастомизировать.

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

В том и дело что в гноме такой настройки нет. А могла бы быть. Не в виде просто запуска ассоциации, а в виде нормальной реализации открывания архивов самим файловым менеджером. Он может например у архиватора листинг файлов запрашивать вместо их распаковки, а распаковывать только когда юзер явно захочет. Хотя с .tar.gz это будет несколько оверхедно по процу (зато экономно по диску), но есть и другие форматы архивов где листинг вообще незатратный.

firkax ★★★★★
()

Вас таких с терабайтными архивами все равно пороть розгами надо.а нормальных людей с нормальными архивами большинство и им удобнее такое поведение

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

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

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

Распаковка и запаковка и так и так делаются. Только сейчас распаковываются сразу все файлы а не только нужный. Запаковывается же надеюсь только один изменившийся, а не все заново (хотя кто гномеров знает), и в этой части вообще ничего менять не потребуется.

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

В них уже есть GVFS, а к GVFS есть плагины для открытия архивов как виртуальной точки монтирования.

Так что нет никакой технической сложности сделать навигацию по архиву как по разделу файловой системы.

Просто Гном на уровне UX весь всрат.

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

Я наивно предполагал что разработчики Ubuntu, Gnome и Free Desktop не идиоты, но оказывается что идиоты. Потому что у нас есть xdg-mime, который умеет так:

xdg-mime query filetype data.csv.zip 
application/zip

xdg-mime query default application/zip
org.gnome.Nautilus.desktop

xdg-mime default peazip.desktop application/zip

xdg-mime query default application/zip
peazip.desktop

Т.е. есть база данных (ну или её подобие в файловой системе). Очевидно что application/zip это не просто от балды строчка извлечённая из /dev/random, а где-то прописаны/откуда-то берутся все варианты таких строчек для каждого файла, зарегистрированного в системе. Также можно устанавливать и менять умолчания, что я и сделал. Т.е. почти всё или даже всё есть уже для того, чтоб сделать простой и удобный интерфейс выбора MIME типов (включая просмотр того какое приложение с чем связано чтоб отвязать его и перепривязать на другое). Но увы и ах, у людей которые этим занимались голова для того чтоб в неё еду прятать и шапку носить, потому они даже не задумывались над тем, что и как можно и нужно улучшить, чтоб система была для людей, а не люди для системы (сейчас предполагается что я ручкой каждый файл неправильного типа должен прокликивать (при том что я даже не знаю где наутилус гадит, точнее знаю, но просто потому что я с линуксами вожусь не первый десяток лет и у меня есть подозрения как всё это работает) и устанавливать что вот этот тип файла надо открывать вот таким приложением, вместо того, чтоб посмотреть с какими типами файлов связан ублюдочный org.gnome.Nautilus.desktop и поменять их на peazip.desktop). Я не идиот и знаю, что peazip и Nautilus могут не пересекаться с форматами файлов полностью, но и тут есть подвох - авторы peazip (как и любого приложения для работы с файлами) вписали в свой desktop файл такую строку:

MimeType=application/bzip2;application/gzip;application/vnd.android.package-archive;application/vnd.ms-cab-compressed;application/vnd.debian.binary-package;application/x-7z-compressed;application/x-7z-compressed-tar;application/x-ace;application/x-alz;application/x-ar;application/x-archive;application/x-arj;application/x-brotli;application/x-bzip-brotli-tar;application/x-bzip;application/x-bzip-compressed-tar;application/x-bzip1;application/x-bzip1-compressed-tar;application/x-cabinet;application/x-cd-image;application/x-compress;application/x-compressed-tar;application/x-cpio;application/x-chrome-extension;application/x-deb;application/x-ear;application/x-ms-dos-executable;application/x-gtar;application/x-gzip;application/x-gzpostscript;application/x-java-archive;application/x-lha;application/x-lhz;application/x-lrzip;application/x-lrzip-compressed-tar;application/x-lz4;application/x-lzip;application/x-lzip-compressed-tar;application/x-lzma;application/x-lzma-compressed-tar;application/x-lzop;application/x-lz4-compressed-tar;application/x-ms-wim;application/x-rar;application/x-rar-compressed;application/x-rpm;application/x-source-rpm;application/x-rzip;application/x-rzip-compressed-tar;application/x-tar;application/x-tarz;application/x-tzo;application/x-stuffit;application/x-war;application/x-xar;application/x-xz;application/x-xz-compressed-tar;application/x-zip;application/x-zip-compressed;application/x-zstd-compressed-tar;application/x-zoo;application/zip;application/zstd;

Это вот все те форматы, с которыми приложение заявляет что оно умеет работать. Аналогично можно извлечь (что я подозреваю и делает xdg-mime для Nautilus-а)

locate org.gnome.Nautilus.desktop
/usr/share/applications/org.gnome.Nautilus.desktop
grep "^MimeType=" /usr/share/applications/org.gnome.Nautilus.desktop
MimeType=inode/directory;application/x-7z-compressed;application/x-7z-compressed-tar;application/x-bzip;application/x-bzip-compressed-tar;application/x-compress;application/x-compressed-tar;application/x-cpio;application/x-gzip;application/x-lha;application/x-lzip;application/x-lzip-compressed-tar;application/x-lzma;application/x-lzma-compressed-tar;application/x-tar;application/x-tarz;application/x-xar;application/x-xz;application/x-xz-compressed-tar;application/zip;application/gzip;application/bzip2;application/vnd.rar;application/zstd;application/x-zstd-compressed-tar

Думаю (я точно документацию не смотрел, стандарт MIME и то как с ним ОС работать должна, как и код xdg-mime, так что могут быть нюансы) что так оно и работает и именно оттуда Nautilus берёт информацию о том, какие файлы чем открывать можно (варианты предлагает того что ещё может открывать тот или иной тип файла). Почему, имея эту информацию не склепали GUI для глобального управления типами файлов я так и не понял, пожалуй стоит этим заняться, кто там хотел полезную программку для линукса написать? Вот вам и задачка, только стандарты почитайте сначала и разберитесь как тип файла (например расширение и информация из команды file связана с конкретной записью application/x-zstd-compressed-tar и т.д.), потому что это всё умозрительно и могут быть нюансы, а у меня руки не быстро дойдут, мне есть что писать кроме этого.

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

Насколько я помню,

Проблема тут в том, что нет способа задать дефолтные приоритеты на уровне пакета. Например, что бы «архиватор» был для архива приоритетнее чем что-либо еще по умолчанию, еще до того, как пользователь что-то задал явно.

Поэтому если в системе есть несколько кандидатов, то выбирается первый попавшийся.

Что касается назначения привязок, то управление этой настройкой есть в любом фм. Не очень понял, что именно не хватает. Того, чтобы одной командой все архивы разом перезначить? Ну это можно элементарным баш-скрипом сделать.

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

информация из команды file

Это две разные реализации.

У xdg-mime своя база данных по mime типам, у программы file - своя.

Большинство графических приложений и тулкитов используют xdg-mime.

file - это исторический артефакт.

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

Более того, для видео и музыки они штуку склепали (Settings -> App -> Default Apps), а для архивов нет. Наверно добавят когда-нибудь. Или они считают, что архивы должны открываться наутилусом безвариантно, хз.

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

Нет конечно. После того что я сделал выше xdg-mime вписал куда-то в конфиг то что надо и теперь xdg-open data.csv.zip (а это именно то как работает открытие файла в файловых менеджерах) открывает файл в peazip. Т.е. технически проблем никаких нет, просто ни у кого нет желания это исправить/доработать.

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

Нет, я же специально упомянул Free Desktop, их стандарты описывают детально как определяется тип файла и как он связан с той или иной меткой, скорее всего где-то у них на сайте есть большой-большой список для составителей .desktop файлов что туда писать для того или иного типа файла. file это один из методов определить тип файла, что то как определяется тип файла в линуксах, это вовсе не по расширению как в Windows, смотри,

cp data.csv.zip data.csv.strange

xdg-open data.csv.strange

и да, оно опять запустит peazip потому что тип файла не поменялся, не смотря на то, что я изменил расширение файла (а вот peazip писал паскалист виндузятник и он уже не понимает что это zip архив, но это проблемы peazip-а, а не файлового менеджера). Конечно у нас есть и кривой софт который работает по расширениям, но у него и MIME типов нет, там своё делают.

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

Это не в убунте леший. Это гном дропнул поддержу file-roller и объявил его deprecated, сказав что теперь файловый менеджер должен всем заниматься, он и занимается, в меру своей убогости.

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

Попробую еще раз:

У приложения, которое ставится как пакет в систему, нет возможности задать приоритет и роль, кто оно, по отношению к файлам, которые оно может обрабатывать.

Сказать, «я могу отрыть image/png» - приложение может.

А сказать «для меня image/png не приоритетный формат, не надо пытаться в него меня сувать, если есть другие программы» - не может.

Теперь понятно?

То, что ты в своём хомяке можешь настройки поменять, это понятно, но это не общесистемная настройка.

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

Конечно может. Кто убрал возможность ставить скрипты в deb/rpm пакеты (которые в данном случае просто сделают xdg-mime default peazip.desktop $mime_type_from_peazip.desktop в цикле), которые выполняются при установке/удалении. Просто мало кто из разработчиков знает об этой возможности. Вот ты не знаешь же, хоть вроде и опытный. В случае deb пакета надо гуглить в сторону postinst скриптов (есть ещё preinst). У rpm это %post секция в spec файле

peregrine ★★★★★
() автор топика
Ответ на: комментарий от peregrine
  1. Злоупотребление скриптами при установке пакетов — это антипаттерн, превращающий систему в Шиндовс.

xdg-mime default peazip.desktop $mime_type_from_peazip.desktop

Как мило. А под какой учетной записью они это делают? И спросили ли разрешение владельца учетной записи перед этим?

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

Ключевое слово - злоупотребление, а паттерны это не то чему надо бездумно следовать. Тут я его не вижу.

А под какой учетной записью они это делают?

А под той, под какой софт ставится, т.е. глобально. Но если очень хочется, то можно для юзера в UI приложения сделать кнопку которая для него всё сама сможет установить. Другое дело, что последовательность установки программ тогда важной делается (вдруг кто-то одной командой будет ставить и nautilus и peazip, тогда кто последний будет, того и тапки) и потому кнопка более правильное решение.

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

А под той, под какой софт ставится, т.е. глобально.

Если сделать xdg-mime default от рута, то только в графическом сеансе рута он и будет иметь эффект.

xdg-mime — это программа для управления пользовательскими настройками.

Ключевое слово - злоупотребление, а паттерны это не то чему надо бездумно следовать. Тут я его не вижу.

Это и есть злоупотребление. Приличные программы при установке в винду сначала хотя бы спрашивают, прежде чем привязки типов к приложениям менять. А ты решил херачить без вопросов.

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

Там 41 пакет всего зависит. Фигня. На самом деле file он не через воздух работает, он libmagic под капотом юзает (libmagic это его часть), а от libmagic-а много чего зависит, пусть и косвенно. Просто большинство софта вообще не парится с определением того с чем оно работает.

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

Для начала я хочу чтоб у нас вообще был инструмент для централизованной работы с привязками файлов, а не лихорадочная ручная беготня по /usr/share/applications/*.desktop или ручная беготня по рандомным файлам на жёстком диске (а это наш дефолт если что)

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

Просто большинство софта вообще не парится с определением того с чем оно работает.

Большинство софта использует для этого функции тулкита.

А тулкиты внезапно… находятся в числе тех самых 41 пакета, которые зависят от shared-mime-info напрямую.

Ладно, мне пока что надоело выступать просветителем для тех, кто сам просвящаться не желает. Пойду ужин приготовлю.

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

Для начала я хочу чтоб у нас вообще был инструмент для централизованной работы с привязками файлов

Открываешь ~/.config/mimeapps.list и вписываешь туда что хочешь. Хоть вручную, хоть bash-скриптом, хоть инновационной нейросеточкой, хоть приложением на электроне.

Linux это очень дружелюбная система, построенная на простых текстовых конфигах.

Но не все сами готовы с ней дружить.

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

Ну, как минимум, в православном Альте, на том же Гноме и Наутилусе поведение нормальное. Когда на Убунту ходил, там да - как у ТС: архивы на Наутилус забиндили.

SkyMaverick ★★★★★
()