20

как пользователь Linux, я вижу, что некоторые приложения могут запрашивать открытие пути, и это вызывает запуск файлового менеджера. Я хотел бы сделать это программно, но как я могу узнать, какой файловый менеджер по умолчанию? Есть ли способ найти эту информацию? Любая переменная среды? Под "файловым менеджером" я подразумеваю приложения, которые позволяют вам администрировать ваши файлы: создавать, переименовывать, создавать папки и т.д., Например, Nautilus (в GNOME) или Dolphin (в KDE).

Заранее спасибо!

6 ответов6

14

Вы можете использовать xdg-open <DIR> для запуска файлового менеджера в каталоге. Вы можете запросить приложение xdg чтобы узнать, какой файловый менеджер используется.

11

Используйте для этого команду xdg-mime . xdg должен быть независимым от среды рабочего стола (например, xdg-open передаст аргументы правильному средству открытия файлов). Чтобы получить файловый менеджер по умолчанию, используйте:

xdg-mime query default inode/directory

Источник

7

Не существует такого понятия, как "Диспетчер файлов по умолчанию для Linux". Все зависит от того, как вы пытаетесь его открыть. Если вы спросите XDG, вам придется проверить, что XDG думает, что этот файловый менеджер должен быть. То же самое касается любой другой "среды", такой как Gnome или KDE. Если у вас установлены все из них, вполне возможно (и хорошо) для каждого из них иметь свой собственный "файловый менеджер по умолчанию".

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

То, что вы можете воспринимать как приложения по умолчанию в Linux, например, то, что хранится в переменной среды $ EDITOR, - это не столько "настоящее" приложение по умолчанию, сколько просто соглашение, используемое многими людьми, которые пишут системные инструменты и сценарии. Не стесняйтесь определять $ FILEMANAGER, если это подходит для вашего случая использования.

1

Вау, невероятно, что никто не постет правильный ответ здесь.

Стандартные приложения в Linux обрабатываются стандартом Mimeapps Freedesktop (ранее XDG) и рядом других спецификаций, на которых основана эта.

Arch Linux Wiki также содержит понятную статью . То, что вы ищете, является ассоциацией каталога mimetype inode/directory .

1

я просто столкнулся с той же проблемой. (Я бы хотел прокомментировать, но моя репутация недостаточно высока)

я попробовал xdg-open и он запустил EasyTag, который является id3-tag-editor (как-то забавно) :-)

я попробовал ответить Герхарда Бюргерса

xdg-mime query default inode/directory

и это вернуло dolphin.desktop в моем случае.

так что в моем случае правильное решение было (замена ".dektop" на ""):

xdg-mime query default inode/directory | sed 's/.desktop//g'

но я только проверяю это на этой системе, я бегу

0

Кажется, все упоминали MIME-тип inode/directory и xdg-open должен работать в большинстве случаев для ваших нужд (программно открывать каталог с помощью файлового менеджера), но иногда это неправильное приложение (которое не является файловым менеджером, например Visual Studio Code) также может связать его с inode/directory в качестве приложения по умолчанию.

Кроме того, есть также файловый менеджер-интерфейс для D-Bus (org.freedesktop.FileManager1 в Session Bus), который можно использовать по вашему требованию, поэтому вы также можете использовать его, если ваш файловый менеджер поддерживает этот интерфейс D-Bus. Пожалуйста, убедитесь, что вы можете использовать его, поскольку не все файловые менеджеры реализовали это, в настоящее время кажется, что Dolphin (KDE), Nautilus (GNOME) и Deepin File Manager (DDE) реализовали этот интерфейс D-Bus. И чтобы узнать, какой владелец процесса этот интерфейс D-Bus (вам не нужно делать это, если вы просто хотите запросить путь, который будет открыт через файловый менеджер программно), посмотрите этот ответ

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .