Precisei desta solução para fazer mapping no osu!. Ao abrir a pasta de um beatmap, o aplicativo rodando pelo Wine deveria entregá-la ao Linux, mas o explorer.exe costuma ficar no caminho.
O que esta mudança faz
A alteração no registro redireciona a ação Abrir pasta para o gerenciador de arquivos nativo do Linux. Ela ajuda em qualquer fluxo que mova, edite ou compartilhe muitos arquivos entre o Wine e o Linux.
No meu caso, são pastas de beatmaps. A mesma configuração funciona em outros aplicativos Wine que usam o comando padrão para abrir diretórios.
Configuração
1. Encontre o prefixo do Wine
Comece localizando o prefixo do Wine usado pelo osu!:
- O script
osu-wineusa~/.local/share/osu-wine/WINE.win32por padrão; - O Lutris pede o caminho da instalação durante a configuração;
- Uma instalação personalizada usa o prefixo que você escolheu.
Builds personalizadas do Wine
Se você usa uma build personalizada do Wine para reduzir a latência de áudio, encontre o caminho dela também. Ele será necessário para abrir o registro.
2. Crie o wrapper de caminhos do Linux
Confira se ~/.local/bin/ está no seu PATH
Crie o script shell ~/.local/bin/run_as_linux:
#!/bin/sh
# This will remove a single quote (') that comes with the argument for some reason
truepath=${2::-1}
# This will execute the first argument with the Unix path provided by the second argument
echo "$truepath" | sed -e 's/\\/\//g' -e 's/://' | sed -r 's/^.{1}//' | xargs -d \\
$1
Depois:
- Substitua
/path/para/o/wine/customizadopelo caminho da sua build personalizada. Use apenaswinese estiver rodando o pacote do sistema; - Torne o wrapper executável com
chmod +x ~/.local/bin/run_as_linux.
3. Edite o registro do Wine
Agora o prefixo precisa de uma entrada no registro que envie as chamadas de Open folder ao wrapper.
Abra o registro com WINEPREFIX=/path/para/o/prefixo/do/osu/ wine regedit e siga estes passos:
- Crie uma chave
commanddentro deHKEY_CLASSES_ROOT\folder\shell\open; - Apague a chave
ddeexecemHKEY_CLASSES_ROOT\folder\shell\open; - Defina o valor
(Padrão)como/bin/sh run_as_linux NATIVE_FILE_MANAGER "%1".
Substitua NATIVE_FILE_MANAGER pelo binário do Nautilus, Dolphin, Thunar ou do gerenciador que você usa. xdg-open também é uma opção.
Teste
Use a ação Abrir pasta do aplicativo. O diretório deve aparecer no gerenciador do Linux em vez do Wine Explorer.
Referências
- FAQ do Wine
- Esta resposta no Unix & Linux
- openglfreak