Como posso adicionar um programa ao menu “Abrir com” em um Mac

Como posso adicionar um programa ao menu “Abrir com” em um Mac

Como posso adicionar um programa ao menu “Abrir com” em um Mac?

Responder1

Você quer dizer o submenu que você obtém ao clicar com o botão direito em um documento? Nesse caso, ele é gerado automaticamente pelo Launch Services com base nos tipos de documentos que seus aplicativos afirmam ser capazes de manipular. Se você olhar dentro de um pacote de aplicativo (clique com o botão direito no aplicativo e selecione Mostrar conteúdo do pacote), dentro da pasta Conteúdo haverá um arquivo Info.plist com várias informações sobre o aplicativo, incluindo uma variedade de tipos de documentos que ele pode abrir (veja a documentação de desenvolvimento da Appleaqui).

TLDR; se o aplicativo tratar esse tipo de documento, ele já deverá estar listado; caso contrário, não sei como adicioná-lo manualmente.

Responder2

Se você abrir a janela "Obter informações" para um tipo de arquivo que deseja modificar (clique com o controle + "Obter informações" ou ⌘ command+ Ienquanto o arquivo estiver selecionado), poderá alterar o programa para o que deseja e clicar em "Alterar Todos". Descobri que isso modifica o menu "Abrir com" para que, se você clicar e clicar em "Abrir com", agora ele mostrará esse aplicativo porque é o novo padrão. A única desvantagem é que você precisa torná-lo o padrão (tentei alterá-lo novamente depois disso e não funcionou).

Não é exatamente a solução perfeita, mas funciona bem no meu caso particular e pode ser útil para outros, e deve ser mais fácil/mais estável que a solução plist.

Captura de tela Obter informações

macOS High Sierra 10.13.5 (17F77)

Responder3

Se você usou o Editor de Scripts ou o Automator para criar um droplet para um aplicativo, quando quiser que o droplet seja adicionado à lista "Abrir com", você pode fazer o seguinte:

  1. Como sempre,salve uma cópia de backup de todos os arquivos de aplicativo/sistema que você planeja modificar! -- just in case anything goes wrong

  2. Copie a matriz de extensão de arquivo de destino de um aplicativo queélistado na lista "Abrir com" do arquivo info.plist do aplicativo e cole-o na matriz CFBundleDocumentTypes no info.plist do aplicativo de destino (clique com o botão direito no aplicativo, escolha "Mostrar conteúdo do pacote"). Neste exemplo, estou mostrando o antes/depois do VLC droplet.apparquivo de informações após substituir os *dados da extensão curinga (" ") por alguns tipos de arquivo do VLC.apparquivo de informações:

"/Applications/VLC droplet.app/Contents/Info.plist":

Antes:

<key>CFBundleDocumentTypes</key>
<array>
    <dict>
        <key>CFBundleTypeExtensions</key>
        <array>
            <string>*</string>
        </array>
        <key>CFBundleTypeOSTypes</key>
        <array>
            <string>****</string>
        </array>
        <key>CFBundleTypeRole</key>
        <string>Viewer</string>
    </dict>
</array>

DEPOIS:

<key>CFBundleDocumentTypes</key>
<array>
    <dict>
        <key>CFBundleTypeIconFile</key>
        <string>aiff.icns</string>
        <key>CFBundleTypeName</key>
        <string>AIFF file</string>
        <key>CFBundleTypeRole</key>
        <string>Viewer</string>
        <key>LSItemContentTypes</key>
        <array>
            <string>public.aiff-audio</string>
            <string>public.aifc-audio</string>
        </array>
    </dict>
    <dict>
        <key>CFBundleTypeExtensions</key>
        <array>
            <string>divx</string>
        </array>
        <key>CFBundleTypeIconFile</key>
        <string>movie.icns</string>
        <key>CFBundleTypeName</key>
        <string>DivX file</string>
        <key>CFBundleTypeRole</key>
        <string>Viewer</string>
    </dict>
    <dict>
        <key>CFBundleTypeIconFile</key>
        <string>m4v.icns</string>
        <key>CFBundleTypeName</key>
        <string>MPEG-4 File</string>
        <key>CFBundleTypeRole</key>
        <string>Viewer</string>
        <key>LSItemContentTypes</key>
        <array>
            <string>public.mpeg-4-audio</string>
            <string>com.apple.m4v-video</string>
            <string>public.mpeg-4</string>
        </array>
    </dict>
</array>
  1. Abra o terminal e digite o seguinte comando, alterando <TARGET_APP>o nome do aplicativo para o qual você está editando o info.plist para adicioná-lo à lista "Abrir com":

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -f "/Applications/<TARGET_APP>.app/"

  1. Digite o comando killall Finderpara forçar a reinicialização do Finder.

Se o aplicativo estiver assinado, modificando um Info.plistinvalida a assinatura do código. Ele também faz com que alguns aplicativos como TextEdit e WriteRoom travem na inicialização em 10.8.

NOTA: peguei algumas informações para esta resposta e editei-as para atualizá-las com informações/explicações um pouco mais detalhadas. O tópico original está localizadoaqui.

informação relacionada