Todos os textos

Textos

Abrindo pastas do Wine no gerenciador de arquivos do Linux

Faça aplicativos executados pelo Wine abrirem pastas no Nautilus, Dolphin, Thunar ou outro gerenciador nativo do Linux.

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-wine usa ~/.local/share/osu-wine/WINE.win32 por 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/customizado pelo caminho da sua build personalizada. Use apenas wine se 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:

  1. Crie uma chave command dentro de HKEY_CLASSES_ROOT\folder\shell\open;
  2. Apague a chave ddeexec em HKEY_CLASSES_ROOT\folder\shell\open;
  3. 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