Это легко сделать для одного типа файла, как описано в разделе Как связать тип файла в Wine с собственным приложением? , создав .reg
для нужного типа файла. Но это только для AVI. Я использую некоторые винные приложения (uTorrent, Soulseek, Eudora, чтобы назвать несколько), которые могут запускать широкий спектр файлов. Например, вложения электронной почты могут быть в формате JPG, DOC, PDF, PPS ... невозможно (и не желательно) отследить все возможные типы файлов, которые можно получить по электронной почте или загрузить через торрент.
Поэтому мне нужно, чтобы решение было более общим и широким. Мне нужно, чтобы файловая ассоциация учитывала любое настроенное приложение. И я хочу, чтобы это было сделано для всех типов файлов, настроенных в моей системе.
Я уже понял, как сделать решение универсальным. Просто заменив запущенное приложение на .reg
for winebrowser
, вот так:
[HKEY_CLASSES_ROOT\.pdf]
@="PDFfile"
"Content Type"="application/pdf"
[HKEY_CLASSES_ROOT\PDFfile\Shell\Open\command]
@="C:\\windows\\system32\\winebrowser.exe \"%1\""
Я проверил это, и он работает правильно. Поскольку winebrowser использует xdg-open
в качестве бэкэнда и преобразует мой путь к Windows в Unix, запускается правильное (Linux) приложение.
Поэтому мне нужен «пакетный» апдейт для реестра Wine, своего рода wine-update-associations
сценарий, который я могу запускать при установке нового приложения. Может быть, инструмент, который может:
- Перечислите все типы Mime Types в моей системе, с которыми связано установленное приложение по умолчанию
- Извлеките всю необходимую информацию (glob, mime type и т. Д.)
- Создайте файл .REG в вышеуказанном формате
Сложность заключается в следующем: я искал ЛОТ, чтобы найти информацию о том, как осуществляется ассоциация в Ubuntu 10.10 и далее, и документация скудна и запутана, если не сказать больше. У Freedesktop.org нет полной спецификации, и даже документы по Gnome устарели. На данный момент я собрал 4 файла, которые содержат информацию об ассоциации, но я не знаю, какой (или почему) использовать, или как использовать их для создания .reg
файла:
~/.local/share/applications/mimeapps.list
~/.local/share/applications/miminfo.cache
/usr/share/applications/miminfo.cache
/etc/gnome/defaults.list
Любая помощь, сценарий или объяснение будет принята с благодарностью!
Спасибо!
источник
Everything
, но я просто хотел сообщить вамРЕДАКТИРОВАТЬ:
В этом есть винная ошибка, которая является скорее улучшением, чем ошибкой. Смысл в том, чтобы
ShellExecute
вызыватьxdg-open
, и, если не найден, искать gnome и kde по умолчанию. Вы должны быть в состоянии применить патч и, наконец, иметь магию :-). Это решение является более чистым, так как не требует возни с реестром.Чтобы быть более полным здесь, как патчить и компилировать вино из исходного кода .
КОНЕЦ РЕДАКТИРОВАНИЯ
Я обновляю винный реестр с помощью сценария ниже, чтобы добавить список распространенных типов файлов.
Вы можете расширить список, чтобы добавить больше типов.
Он использует
/usr/bin/gnome-open
вgstart.exe
файле, поэтому он не будет работать для рабочих столов не-gnome, как есть .Поместите это в
conf_wine.sh
:Это
gstart.exe
скрипт bash .. и мост к обоим мирам:Ноты:
gstart.exe
перед запуском скопируйте в текущий рабочий каталог, такconf_wine.sh
как он скопирует его в.wine
папку.gstart.exe
, не нужно сидетьc:\
.Wine FAQ: Как связать нативную программу с типом файла в Wine?
источник
gnome-open
overxdg-open
, о котором я уже упоминал в этом вопросе, и он гораздо более переносим. Во-вторых, жесткое кодирование нескольких расширений файлов для меня недостаточно: как я сказал: «Мне нужно, чтобы сопоставление файлов соответствовало любому настроенному в данный момент приложению. И я хочу, чтобы это было сделано для всех типов файлов, настроенных в моей системе». И я знаю, что это сложно. Меня интересует "магия", о которой вы упомянули в заметке №3;)mimeapps.lst
которые я не установил здесь, и некоторые указывают на приложение Wine (которое может вызвать бесконечные циклы)Я собрал информацию повсюду и нашел следующее для работы:
Я создал файл с именем ~ / .wine / drive_c / gstart.exe
со следующим:
Затем: создал файл с именем linuxnative.reg в моем ~ / bin
со следующим:
тогда вы делаете
regedit linuxnative.reg
Надеюсь это поможет.
источник
gstart.exe
сценария.