¿Cómo hacer que una aplicación particular sea el visor / editor predeterminado para TODOS sus tipos de archivos admitidos a la vez?

3

Quiero crear una aplicación, por ejemplo VLC , el reproductor predeterminado para todos el archivo tipos que admite, sin pasar por todos ellos individualmente.

Es posible que ni siquiera sepa qué son todos los formatos compatibles (ya que VLC puede leer cientos de formatos) y todavía quiero configurarlo como el reproductor predeterminado para todos ellos.

Pude hacerlo usando el terminal, con el procedimiento publicado a continuación.

¿Hay una forma más fácil de hacerlo que no requiera que el usuario sea un desarrollador?

    
pregunta Tobia 25.05.2013 - 13:15

3 respuestas

4

Aunque RCDefaultApp es un poco antiguo, todavía funciona

Esto te proporciona una interfaz gráfica de usuario decente para controlar las aplicaciones predeterminadas

    
respondido por el demure 25.05.2013 - 16:50
1
  1. Busque el archivo Info.plist de la aplicación y conviértalo a formato xml si es necesario.
    El archivo plist de VLC ya está en formato xml, de lo contrario tendría que hacer:
    plutil -convert xml1 /Applications/VLC.app/Contents/Info.plist
  2. Realice la magia oscura necesaria para extraer la lista de extensiones de archivo admitidas, con su varita favorita (aquí está awk, pero sed, perl, y otras funcionarían igual de bien):
    awk '/CFBundleTypeExtensions/{t=1} /<\/array>/{t=0} t&&/<string>/{gsub(/\t*<\/?string>/,"");print}' /Applications/VLC.app/Contents/Info.plist
  3. Comprueba la salida para asegurarte de que realmente obtuviste la lista de extensiones y que realmente deseas asociar todos esos tipos con la aplicación.
  4. Recupere el último comando y edítelo para crear un archivo vacío en su directorio actual para cada extensión de archivo en la lista:
    for i in $( ≪awk command as before≫ ); do touch dummy.$i; done
  5. Abra su carpeta de inicio en el Finder, seleccione todos los archivos "ficticios" y abra un inspector colectivo para todos ellos: opción + comando + i
  6. Configure la aplicación en Abrir con y use el botón Cambiar todo.
  7. Deshazte de los archivos ficticios.
respondido por el Tobia 25.05.2013 - 13:15
0

No me gustaría asociar VLC con todos los tipos que admite (como mp3, iso o utf), pero he agregado esto a un duti archivo de configuración:

org.videolan.vlc .avi all
org.videolan.vlc .flac all
org.videolan.vlc .flv all
org.videolan.vlc .mkv all
org.videolan.vlc .mov all
org.videolan.vlc .mp4 all
org.videolan.vlc .mpg all
org.videolan.vlc .wmv all

duti convierte las extensiones que se enumeran en las declaraciones de UTI a UTI automáticamente, por lo que puede especificar los tipos como .jpg en lugar de public.jpeg . Ver com.apple.LaunchServices.plist. Las IU de algunas extensiones como .mkv dependen de las aplicaciones que se instalaron primero.

Muchas aplicaciones solo enumeran UTI (LSItemContentTypes) y no extensiones (CFBundleTypeExtensions) en el Info.plist. Esto listaría las UTI y las extensiones de impresión asociadas con ellas:

dump=$(/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -dump); plutil -convert xml1 /Applications/TextEdit.app/Contents/Info.plist -o - | sed -n '/LSItemContentTypes/,/\/array/p' | sed -En 's|.*string>(.*)</string.*||p' | while read u; do awk "/uti: *$u/,/tags:/" <<< "$dump"; done | sed -En 's/[[:space:]]*tags: *(.+)//p' | sed $'s/, /\\n/g' | grep '^\.' | sort -u

    
respondido por el user495470 25.05.2013 - 20:56

Lea otras preguntas en las etiquetas