Come rendere una app particolare il visualizzatore / editor predefinito per TUTTI i suoi tipi di file supportati contemporaneamente?

3

Voglio fare un'applicazione, ad esempio VLC , il player predefinito per tutti il file tipi che supporta, senza passare attraverso tutti individualmente.

Potrei anche non sapere quali sono tutti i formati supportati (dato che VLC può leggere 100s di formati) e voglio comunque impostarlo come lettore predefinito per tutti loro.

Sono stato in grado di farlo utilizzando il terminale, con la procedura indicata di seguito.

C'è un modo più semplice per farlo che non richiede che l'utente sia uno sviluppatore?

    
posta Tobia 25.05.2013 - 13:15
fonte

3 risposte

4

Mentre RCDefaultApp è un po 'vecchio, funziona ancora

Questo ti offre un'interfaccia GUI decente per controllare le app predefinite

    
risposta data 25.05.2013 - 16:50
fonte
1
  1. Trova il file Info.plist dell'applicazione e convertilo in formato xml, se necessario.
    Il file plist di VLC è già in formato xml, altrimenti dovresti fare:
    plutil -convert xml1 /Applications/VLC.app/Contents/Info.plist
  2. Esegui la magia oscura necessaria per estrarre l'elenco delle estensioni di file supportate, con la tua bacchetta preferita (qui awk, ma sed, perl e altre funzionerebbero altrettanto bene):
    awk '/CFBundleTypeExtensions/{t=1} /<\/array>/{t=0} t&&/<string>/{gsub(/\t*<\/?string>/,"");print}' /Applications/VLC.app/Contents/Info.plist
  3. Controlla l'output per assicurarti di avere davvero l'elenco di estensioni e di associare tutti questi tipi all'app.
  4. Ricorda l'ultimo comando e modificalo per creare un file vuoto nella tua directory corrente per ogni estensione di file nella lista:
    for i in $( ≪awk command as before≫ ); do touch dummy.$i; done
  5. Apri la tua cartella Inizio nel Finder, seleziona tutti i file "fittizi" e apri un'ispettore collettivo per tutti: opzione + comando + i
  6. Imposta l'applicazione in Apri con e utilizza il pulsante Cambia tutto.
  7. Cestino dei file fittizi.
risposta data 25.05.2013 - 13:15
fonte
0

Non vorrei associare VLC con tutti i tipi supportati (come mp3, iso o utf), ma l'ho aggiunto a un duti file di configurazione:

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 converte automaticamente le estensioni elencate nelle dichiarazioni UTI agli UTI, quindi puoi specificare tipi come .jpg invece di public.jpeg . Vedi com.apple.LaunchServices.plist. Le UTI di alcune estensioni come .mkv dipendono da quali applicazioni sono state installate per prime.

Molte applicazioni elencano solo UTI (LSItemContentTypes) e non estensioni (CFBundleTypeExtensions) in Info.plist. Questo elencherebbe le UTI e le estensioni di stampa associate:

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

    
risposta data 25.05.2013 - 20:56
fonte

Leggi altre domande sui tag