Isso é feito facilmente para um único tipo de arquivo, conforme respondido em Como associar um tipo de arquivo no Wine a um aplicativo nativo? , criando um .reg
para o tipo de arquivo desejado. Mas isso é apenas para AVI. Eu uso alguns aplicativos de vinho (uTorrent, Soulseek, Eudora, para citar alguns) que podem iniciar uma ampla variedade de arquivos. Os anexos de email, por exemplo, podem ser JPG, DOC, PDF, PPS ... é impossível (e não desejável) rastrear todos os tipos de arquivos possíveis que se pode receber em um email ou baixar em um torrent.
Então, eu precisava de uma solução para ser mais genérica e ampla. Preciso da associação do arquivo para honrar qualquer aplicativo nativo atualmente configurado. E eu quero que isso seja feito para todos os tipos de arquivos configurados no meu sistema.
Eu já descobri como tornar a solução genérica. Simplesmente substituindo o aplicativo lançado .reg
por winebrowser
, desta forma:
[HKEY_CLASSES_ROOT\.pdf]
@="PDFfile"
"Content Type"="application/pdf"
[HKEY_CLASSES_ROOT\PDFfile\Shell\Open\command]
@="C:\\windows\\system32\\winebrowser.exe \"%1\""
Eu testei isso e funciona corretamente. Como o winebrowser usa xdg-open
como back-end e converte o caminho do meu Windows para o Unix, o aplicativo (Linux) correto é iniciado.
Portanto, preciso de um atualizador em "lote" para o registro do wine, um tipo de wine-update-associations
script que eu possa executar sempre que um novo aplicativo for instalado. Talvez uma ferramenta que possa:
- Listar todos os tipos de MIME no meu sistema que tenham um aplicativo instalado padrão associado
- Extraia todas as informações necessárias (glob, tipo MIME, etc)
- Gere o arquivo .REG no formato acima
A parte complicada é: eu procurei MUITO para encontrar informações sobre como a associação é feita no Ubuntu 10.10 em diante, e a documentação é escassa e confusa, para dizer o mínimo. O Freedesktop.org não possui especificações completas e até os documentos do Gnome são obsoletos. Até agora, reuni 4 arquivos que contêm informações de associação, mas não tenho noção de qual (ou por que) usar ou como usá-los para gerar o .reg
arquivo:
~/.local/share/applications/mimeapps.list
~/.local/share/applications/miminfo.cache
/usr/share/applications/miminfo.cache
/etc/gnome/defaults.list
Qualquer ajuda, script ou explicação seria muito apreciada!
Obrigado!
fonte
Everything
em si, mas eu só queria informá-loEDITAR:
Há um bug do vinho sobre isso - o que é mais uma melhoria do que um bug. O objetivo é
ShellExecute
chamarxdg-open
, e se não for encontrado, procure os padrões do gnome e do kde. Você deve poder aplicar o patch e finalmente ter a mágica :-). Esta solução é mais limpa , pois não precisa mexer com o registro.Para ser mais completo aqui, é preciso corrigir e compilar o vinho da fonte .
EDIT FIM
Eu atualizo o registro do vinho com o script abaixo para adicionar uma lista de tipos de arquivos comuns.
Você pode estender a lista para adicionar mais tipos.
Ele é usado
/usr/bin/gnome-open
nogstart.exe
arquivo para não funcionar em áreas de trabalho não-gnome como está .Coloque isso em
conf_wine.sh
:O
gstart.exe
é um script bash .. e é a ponte para os dois mundos:Notas:
gstart.exe
em seu diretório de trabalho atual antes de executar,conf_wine.sh
pois ele será copiado para a.wine
pastagstart.exe
não é necessário sentar-sec:\
.Wine FAQ: Como associo um programa nativo a um tipo de arquivo no Wine?
fonte
gnome-open
overxdg-open
, que eu já mencionei na pergunta, e é muito mais portátil. Segundo, codificar algumas extensões de arquivo é insuficiente para mim: como eu disse, "eu preciso da associação de arquivos para honrar qualquer aplicativo nativo atualmente configurado. E quero que isso seja feito para todos os tipos de arquivos configurados no meu sistema". E eu sei que isso é complicado. É a "mágica" que você mencionou na sua nota # 3 que me interessa;)mimeapps.lst
que eu não estão instalados aqui, e algum ponto de volta para um aplicativo Wine (o que causaria loops infinitos)Reuni informações em todo o lugar e descobri o seguinte:
Eu criei um arquivo chamado ~ / .wine / drive_c / gstart.exe
com o seguinte :
Então: criei um arquivo chamado linuxnative.reg no meu ~ / bin
com o seguinte :
então você faz um
regedit linuxnative.reg
Espero que isto ajude.
fonte
gstart.exe
script.