När du dubbelklickar på ett Worddokument (.docx eller .doc) öppnas det vanligtvis automatiskt i Word om du har det installerat. Om du inte har det kanske det öppnas i Textredigering, eller i ett annat program. Men hur håller Macen koll på vilket program som ska öppna en viss filtyp och hur kan du ändra det?

Mac OS väljer vilket program som ska användas för att öppna en viss fil i den här ordningen:

1. Om du har valt ett visst program för just den filen i Finders Visa info öppnas filen i det programmet.
2. Om filen har en filändelse (.doc, .txt, .jpg, et cetera) öppnas den med det förvalda programmet för den filändelsen.
3. Om filen saknar filändelse men har filtypen registrerad som metadata (så kallade UTI:er, universal type identifiers) öppnas den med det förvalda programmet för den UTI:n. En Excel xlsx-fil har till exempel UTI:et ”org.openxmlformats.spreadsheetml.sheet”.
4. Om inget av ovanstående fungerar öppnas en dialogruta där du själv kan välja ett program att öppna filen i.

Du kan testa det här genom att markera en fil och visa info (cmd-i). Radera sedan själva filändelsen (inklusive punkten), tryck retur och välj Ta bort. Filen kommer nu kanske att förlora sin vanliga ikon och förhandsvisningen blir konstig, men om du dubbelklickar på den bör den öppnas i sitt vanliga program. Det är mindre troligt att det fungerar för filer du har laddat ner från nätet.

Finder

Ändra standardprogram med Finder

Det enklaste sättet att ändra vilka program som ska öppna filer är med Finder. För att ändra standardprogram för en enskild fil väljer du visa info, skrollar ner till Öppna med och väljer ett annat program.

Vill du ändra standardprogram för alla filer av den typen gör du samma sak men trycker sedan på Ändra alla strax under.

duti

Med Terminalen

Om Finder-metoden inte fungerar kan du testa att använda Terminal istället. Det finns ett förträffligt litet program kallat duti som visar vilket program en viss filtyp är associerat med och hjälper dig ställa in ett nytt program. Du installerar det lättast med Homebrew:

brew install duti

För att kolla vilket program som ska öppna en viss filtyp skriver du in duti -x [filtypen], till exempel duti -x html. För att ställa in ett nytt program måste du veta programmets så kallade bundle id, till exempel com.apple.Safari för Safari. Det hittar du på flera sätt, bland annat med kommandot osascript -e 'id of app "programnamn"' (raka citattecken). Du ändrar med kommandot duti -s bundle-id filtyp all, till exempel:

duti -s com.apple.Safari html all

Rcdefaultapp

Med Rcdefaultapp

Redan 2002 utvecklade Carl Lindberg Rcdefaultapp, en kontrollpanel för Systeminställningar som ger dig åtkomst till alla associationer mellan url-typer, fysiska medier som dvd:er, filändelser och UTI (universal type identifiers) och programmen som ska öppna dem.

Rcdefaultapp uppdaterades senast 2009 men fungerar fortfarande i Mojave, och kan vara lite enklare än att jobba med terminalen. Det finns en ruta för att ignorera filers skapare när du ändras standardprogram för filändelser och UTI:er, men sedan Snow Leopard gör den ingen skillnad.

Eftersom programmet är så gammalt är det inte kryptografiskt signerat och du måste tvinga systemet att godkänna installationen genom att högerklicka, välja Öppna och sedan klicka Öppna i varningsdialogen som dyker upp.

Problem med två versioner av samma program?

En läsare skrev till oss med ett problem. Han har två versioner av ett program installerade på datorn, och vill att filer av en viss typ ska öppnas i den äldre av dessa. Men det vägrar systemet.

Det här problemet borde inte dyka upp eftersom systemet ska kunna hålla skillnad på olika versioner av ett program, men det kan uppenbarligen ändå hända ibland.

I det här fallet har vi ingen universallösning. Om ingen av metoderna ovan hjälper kan du testa att nollställa Launch Services databas som håller koll på alla associationer mellan filtyper och program. Det gör du också enklast med Terminal och följande kommando (tack till Howard Oakley som har en grundlig genomgång av kommandot lsregister):

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -v -apps u

Det nollställer uppgifter om program för ditt användarkonto. Om det inte hjälper kan du nollställa alla uppgifter för hela systemet:

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -v -apps u,s,l

Och hjälper inte det heller kan du testa följande som nollställer inte bara programuppgifter utan även allt annat i Launch Services:

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -v -all u,s,l

De här kommandona gäller Mac OS Sierra och senare. På äldre system ska du istället använda:

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain u -domain s -domain l -v

När du har nollställt Launch Services så här kommer datorn vara lite långsammare än vanligt ett tag, speciellt om du har nollställt rubbet.