# Von macOS zu Linux

# Einleitung

Wieso, Weshalb, Warum, Wer, Wie, Was.

# Vorgeschichte

Ich bin seit [System 7](https://de.wikipedia.org/wiki/System_7) Mac User, und besonders Fan der zweiten Steve Jobs Ära.

Ich habe Mac OS X, das Design (Aqua, Skeuomorphismus), und die Bedienphilosophie geliebt. Steve Jobs hat es praktisch für sich selbst entwickeln lassen, und anscheinend tickten er und ich dahingehend sehr ähnlich, so dass sich alles anfühlte als wäre es speziell für mich gemacht. Die erste iTunes Version war exakt so wie ich mir eine Musik Player Software immer vorgestellt hatte.

Seit Tim Cook das Ruder übernommen hat, hat sich vieles geändert. Das Design ist für mich unerträglich hässlich und unübersichtlich, die Bedienung der neuen (oder stark überarbeiteten) Programme wird immer furchtbarer (Fotos, Kalender, Freeform). Die Programme die kaum angefasst wurden bekommen praktisch nur neue Bugs und andere Nevereien (iTunes/Musik.app). Die Notizen App scheint aktuell das beste zu sein, es ist zwar genauso hässlich wie alles andere geworden, aber ansonsten habe ich da nichts dran auszusetzen.  
Ich habe es viel zu lange hinausgezögert, aber ich bin aktuell endlich dabei mich langsam aus dem Apple Universum zu verabschieden. Wie konsequent das am Ende wird, wird sich dann zeigen. (Ich schätze ich werde bei iOS bleiben und mich nur von macOS trennen, siehe unten)

Musik habe ich umgestellt auf Navidrome, Fotos bin ich gerade dabei auf Immich zu migrieren. Danach folgen noch Notizen und Kalender. Falls ich nichts vergessen habe, kann ich mich dann darum kümmern mir verschiedene Linux Distros anzugucken.  
Das größte Problem beim Wechsel sehe ich aktuell auch in der Hardware, da ist Apple ironischerweise mit Abstand das beste was man kriegen kann. ("Ironischerweise" weil es früher die Software war die ich an Apple geliebt habe, und die Hardware zumindest zu G4/G5 und Intel Zeiten eher schlecht war, mit Ausnahmen). Ob Ashashi Linux stabil und gut genug läuft, wird sich dann wohl bei meinen Tests zeigen müssen.

Anderes Problem wird das Smartphone sein, neben iOS und Android gibt es praktisch nichts. Sailfish OS scheint das interessanteste zu sein, aber für die wichtigen Dinge des modernen Alltags fehlt da vermutlich die Unterstützung. So, dass ich wahrscheinlich beim iPhone bleiben werde. Der Desktop Rechner ist mir wichtiger, von daher nicht so tragisch.

# Plan und Status

### Plan

Mein Plan ist es Schritt für Schritt in der ersten Phase die Apple Software zu ersetzen, und erst im zweiten Schritt mich mit Linux selbst zu beschäftigen.

Wichtig sind dabei erstmal die Programme die Daten Verwalten und über Server/iCloud synchronisieren. Beispielsweise Musik Verwaltung oder Notizen. Hier sollte es eine Mac Version geben die ich später auf Linux einfach weiter verwenden kann. Da das iPhone erstmal nicht ersetzt werden kann, muss eine entsprechende App auch dafür verfügbar sein.

Ein einfacher Movieplayer wie [IINA](https://iina.io/) kann vergleichsweise einfach in Phase 2 gesucht werden.

### Status

##### Phase 1 - Die Programme

<table border="1" id="bkmrk-programm-status-musi" style="border-collapse: collapse; width: 100%; border-width: 1px;"><colgroup><col style="width: 24.6925%;"></col><col style="width: 75.4068%;"></col></colgroup><tbody><tr><td class="">Programm(-kategorie)</td><td>Status</td></tr><tr><td class="">[Musik.app (iTunes)](https://metalsnake.space/linuxswitch/books/von-macos-zu-linux/chapter/musik)</td><td>Erledigt. Als Server wird Navidrome eingesetzt.

Als Clients werden aktuell Supersonic (Mac) und Stream Music (iOS) verwendet.

</td></tr><tr><td>[Notizen](https://metalsnake.space/linuxswitch/books/von-macos-zu-linux/chapter/notizen-app)</td><td>  
</td></tr><tr><td>[Kalender](https://metalsnake.space/linuxswitch/books/von-macos-zu-linux/page/kalender "Kalender")

</td><td>  
</td></tr><tr><td>[Fotos](https://metalsnake.space/linuxswitch/books/von-macos-zu-linux/page/fotos "Fotos")

</td><td class="">Probiere jetzt Immich aus. Ente scheint nicht so einfach aufzusetzen zu sein.</td></tr><tr><td></td><td>  
</td></tr></tbody></table>

##### Phase 2 - Das System

# Links

#### Deutsch:

[https://linuxnews.de/](https://linuxnews.de/)

[https://linuxundich.de/](https://linuxundich.de/)

[https://www.linux-magazin.de/news/](https://www.linux-magazin.de/news/)

#### Englisch:

[https://9to5linux.com/](https://9to5linux.com/)

[https://wiki.linuxquestions.org/wiki/Linux\_software\_equivalent\_to\_Windows\_software](https://wiki.linuxquestions.org/wiki/Linux_software_equivalent_to_Windows_software)

# Musik

Der Schritt weg von iTunes/Apple Music hin zu einer offenen Lösung (Navidrome)

# Musik Server

Am Mac war es bisher iTunes Match oder AppleMusic (Abo Dienst) der dafür sorgte, dass die Musik auf allen Geräten verfügbar ist. Das muss durch eine Server Software ersetzt werden.

Mögliche Optionen:

<div class="bs5docs-page-content mt-3 mb-5" id="bkmrk-jellyfin-jellyfin-is">- Jellyfin 
    - Jellyfin ist eigentlich auf Filme und Serien ausgelegt, Musik ist da eher nebensächlich. Nach kurzem ausprobieren habe ich mich dagegen entschieden.
- Navidrome 
    - Navidrome ist voll auf Musik ausgelegt, wird fleißig weiter entwickelt, hat mit Version 0.55 einen größeren Umbau mit neuen Funktionen bekommen. Es unterstützt auch ALAC - es liegt aber am Client ob der das auch unterstützt, zur Not kann aber transkodiert werden.
    - Es werden alle möglichen Tags unterstützt, mehr als bei iTunes
    - Demnächst kommt auch support für .lrc Files (Synchronisierte Lyrics)

</div>Die Entscheidung ist schnell gefallen, Navidrome wird als Server eingesetzt.

# Navidrome Skripte

Python3 Skript um Bewertung, Wiedergabezähler und Zuletzt Gespielt Datum aus iTunes (Musik.app) nach Navidrome zu importieren.

[https://github.com/Metal-Snake/mac2linux-switch](https://github.com/Metal-Snake/mac2linux-switch) - itunes2Navidrome.py

# Navidrome Clients

## Mac:

Aktuell schwanke ich zwischen Supersonic und Feishin.

- Feishin - [https://github.com/jeffvli/feishin](https://github.com/jeffvli/feishin) - kann Smart Playlists erstellen
- Submariner - [https://github.com/SubmarinerApp/Submariner](https://github.com/SubmarinerApp/Submariner) - sehr langsam, buggy

### Feishin

**Positiv:**

- kann Smart Playlists erstellen
- konfigurierbare Listen anzeige
- spielt auch ALAC ab, wenn man "Audio Player" in den Playback Einstellungen von Web auf MPV umstellt
- lädt Lyrics von lrclib.net
- 

**Negativ:**

### Amperfy   


Amperfy - [https://github.com/BLeeEZ/amperfy](https://github.com/BLeeEZ/amperfy)

**Positiv:**

- zufälliges Album abspielen
- Album Anzeige zeigt Liedlänge (aber sonst nichts)
- Fühlt sich nativ an

**Negativ:**

- Album Anzeige zeigt außer Titel, Artist und Länge nichts weiter an
- Wiedergabe Anzeige zeigt nicht die Länge an, stattdessen steht da "--:--" (evtl. ein Problem mit ALAC?), und auch nur beim Mouse Over (das war schon bei iTunes/Musik.app nervig!).
- Scheint die schlechteren Dinge von iTunes/Musik.app zu übernehmen und die guten wegzulassen

##### Screenshots

Album Übersicht

[![Bildschirmfoto 2025-05-11 um 10.11.54.png](https://metalsnake.space/linuxswitch/uploads/images/gallery/2025-05/scaled-1680-/bildschirmfoto-2025-05-11-um-10-11-54.png)](https://metalsnake.space/linuxswitch/uploads/images/gallery/2025-05/bildschirmfoto-2025-05-11-um-10-11-54.png)

### Stream Music

Stream Music - [https://github.com/gitbobobo/StreamMusic/](https://github.com/gitbobobo/StreamMusic/)

**Positiv:**

- Sieht gut aus
- Gute Startseite ("Suggestion")

**Negativ:**

- Album Übersicht zeigt nur eine begrenzte Anzahl an Alben wenn das Fenster zu groß ist (bug)
- kein zufälliges Album abspielen (Startseite zeigt aber zufällige Alben an, wäre also darüber lösbar)
- Album Anzeige zeigt die Lieder, aber keinerlei Details (Länge, Wertung, etc.)

##### Screenshots

Startseite

[![Startseite (Stream Music)](https://metalsnake.space/linuxswitch/uploads/images/gallery/2025-03/scaled-1680-/xc0grafik.png)](https://metalsnake.space/linuxswitch/uploads/images/gallery/2025-03/xc0grafik.png)

Album Übersicht:

[![Album Übersicht (Stream Music)](https://metalsnake.space/linuxswitch/uploads/images/gallery/2025-03/scaled-1680-/6Ajgrafik.png)](https://metalsnake.space/linuxswitch/uploads/images/gallery/2025-03/6Ajgrafik.png)

Album Ansicht:

[![Albumansicht (Stream Music)](https://metalsnake.space/linuxswitch/uploads/images/gallery/2025-03/scaled-1680-/Ee4grafik.png)](https://metalsnake.space/linuxswitch/uploads/images/gallery/2025-03/Ee4grafik.png)

Wiedergabeansicht:

[![Wiedergabeansicht (Stream Music)](https://metalsnake.space/linuxswitch/uploads/images/gallery/2025-03/scaled-1680-/BiSgrafik.png)](https://metalsnake.space/linuxswitch/uploads/images/gallery/2025-03/BiSgrafik.png)

### Supersonic

Supersonic - [https://github.com/dweymouth/supersonic/](https://github.com/dweymouth/supersonic/)

**Positiv:**

- Zufälliges Album abspielen
- Automatische Suche von Lyrics von [https://lrclib.net](https://lrclib.net)
- Album Ansicht zeigt konfigurierbar verschiedene Spalten an Dauer, Rating und Playcount an (aber Zuletzt gespielt fehlt!)
- Wiedergabe Ansicht mit Lyrics

**Negativ:**

- Album Ansicht zeigt nicht den "Zuletzt gespielt" Wert der Lieder an
- Nicht besonders schön

##### Screenshots

Album Übersicht:

[![grafik.png](https://metalsnake.space/linuxswitch/uploads/images/gallery/2025-03/scaled-1680-/grafik.png)](https://metalsnake.space/linuxswitch/uploads/images/gallery/2025-03/grafik.png)

Album Ansicht:

[![grafik.png](https://metalsnake.space/linuxswitch/uploads/images/gallery/2025-03/scaled-1680-/Csfgrafik.png)](https://metalsnake.space/linuxswitch/uploads/images/gallery/2025-03/Csfgrafik.png)

Wiedergabeansicht:

[![grafik.png](https://metalsnake.space/linuxswitch/uploads/images/gallery/2025-03/scaled-1680-/QDRgrafik.png)](https://metalsnake.space/linuxswitch/uploads/images/gallery/2025-03/QDRgrafik.png)


## iPhone:

- flo - [https://github.com/kepelet/flo](https://github.com/kepelet/flo) - Benötigt https
- substreamer - [https://substreamerapp.com/](https://substreamerapp.com/) -
- Amperfy - [https://github.com/BLeeEZ/amperfy](https://github.com/BLeeEZ/amperfy) -
- Arpeggi - [https://www.reddit.com/r/arpeggiApp/](https://www.reddit.com/r/arpeggiApp/) - Bislang nur als Testflight Version
- Stream Music - [https://github.com/gitbobobo/StreamMusic/](https://github.com/gitbobobo/StreamMusic/) - bisher mein Favorit - diverse Funktionen wie CarPlay kosten einmalig 8,99€
- Dromio - [https://github.com/mattneub/dromio/](https://github.com/mattneub/dromio/) -
- play:Sub - [https://michaelsapps.dk/playsubapp/index.html](https://michaelsapps.dk/playsubapp/index.html) - kostet 5,99€
- Agin Music - [https://github.com/TymekV/AginMusicMobile](https://github.com/TymekV/AginMusicMobile) - braucht https?

Nach einigen Tagen bin ich bei Stream Music geblieben, auch CarPlay funktioniert super.

## Linux:

- Strawberry - [https://www.strawberrymusicplayer.org/](https://www.strawberrymusicplayer.org/)

# Tagging

Am Mac verwende ich Yate [https://2manyrobots.com/yate/](https://2manyrobots.com/yate/) zum Taggen.

Wichtig ist, dass die Daten von Discogs und MusicBrainz importiert werden können.

Mögliche Optionen:

MusicBrainz Picard [https://picard.musicbrainz.org/](https://picard.musicbrainz.org/) - Lädt keine Daten von Discogs, evtl. mit Plugin möglich?

# Fotos

Weg von iPhoto/Fotos.app und iCloud zu einer offenen Lösung (Immich)

# Fotos

An Fotos habe ich keine großen Anforderungen.

Ich möchte auf mehreren Geräten die Fotos sehen können.

Suchfunktion mit automatischer Erkennung des Fotoinhalts wäre schön

Vergleich von Optionen: [https://meichthys.github.io/foss\_photo\_libraries/](https://meichthys.github.io/foss_photo_libraries/)

Ente und Immich scheinen gute Kandidaten zu sein.

Ente bietet eine Kostenpflichtige Cloud Lösung, aber self hosting ist möglich: [https://help.ente.io/self-hosting/](https://help.ente.io/self-hosting/)

#### Immich:

Skript zum exportieren aus Apple Fotos: [https://github.com/RhetTbull/osxphotos](https://github.com/RhetTbull/osxphotos)

Skript zum importieren in Immich: [https://github.com/simulot/immich-go](https://github.com/simulot/immich-go)

# Immich

Obwohl ich an die Fotos weniger Ansprüche habe als bei der Musik, war die Übernahme deutlich langwieriger und brauchte mehrere Versuche.

### Fehlschlag 1

Zu Immich habe ich keine offizielle Erklärung zum Import aus iPhoto/Fotos.app gefunden. Daher habe ich mich im ersten Versuch an die [Anleitung von Ente](https://help.ente.io/photos/migration/from-apple-photos/) gehalten. Dort heißt es einfach alles in Fotos.app zu markieren, im Menü Exportieren wählen, und danach den Ordner in Ente zu ziehen, bzw. in meinem Fall also in Immich.

Die Bilder sind alle da, aber es fehlt alles an zusatz Informationen, wie Tags, Gesichter, Alben.

Das habe ich ganz schnell zur Seite gelegt und die nächste Methode probiert.

### Fehlschlag 2

Für iOS gibt es eine offizielle Immich App, dort gibt es eine Import funktion. Dort habe ich alle Alben selektiert und importiert.

Es ist sehr langsam, die App muss dabei im Vordergrund sein, und der Bildschirm eingeschaltet. Wechselt man die App oder sperrt das iPhone wird der Import pausiert. Will man den Import fortsetzen dauerte es bei mir etwa eine Minute bis es weiter ging. Über mehrere Tage habe ich also den Import immer wieder weiter laufen lassen.

Das Ergebnis war schon besser. Es wurden Alben angelegt, Favorisierte Fotos waren auch als Favoriten markiert und auf den ersten Blick sah es gut aus. Aber Datumsangaben waren falsch. Ein Foto von März welches ich im April als Favorit markiert habe, hatte in Immich dann das Datum vom April.

Je nach Präferenz könnte das aber ein guter Weg sein. Für mich waren aber die Datumsangaben wichtiger. Deshalb habe ich einen weiteren Weg gesucht.

### Erfolg

Der dritte Versuch ist auch nicht perfekt, aber es scheint mir gut genug zu sein.

Kleiner Nachteil der folgenden Methode ist, dass in Immich keine Alben angelegt werden. Die Alben aus Fotos.app werden den Bildern als Tags hinzugefügt. Diese Alben Tags sind zwischen den tausenden anderen Tags nicht praktikabel navigierbar, aber darüber kann man sich im Nachgang die Alben manuell erstellen.

Erste Voraussetzung ist, in den Fotos.app Einstellungen "Originale auf diesen Mac laden" zu aktivieren. Falls das nicht aktiv war, wird es einige Zeit dauern bis alle Bilder geladen sind.

[![Bildschirmfoto 2025-04-26 um 07.47.24.png](https://metalsnake.space/linuxswitch/uploads/images/gallery/2025-04/scaled-1680-/bildschirmfoto-2025-04-26-um-07-47-24.png)](https://metalsnake.space/linuxswitch/uploads/images/gallery/2025-04/bildschirmfoto-2025-04-26-um-07-47-24.png)

Nachdem alle Bilder geladen waren habe ich mit dem Programm [osxphotos](https://github.com/RhetTbull/osxphotos) die Bilder exportiert. Den genauen Befehl habe ich von einem User aus dem Immich Discord übernommen:

`osxphotos export /Users/snake/FotosExport --export-by-date --library /Users/snake/Pictures/Photos\ Library.photoslibrary --exiftool --keyword-template "{label}" --album-keyword --jpeg-ext jpeg --sidecar XMP --add-skipped-to-album Skipped --add-missing-to-album Missing --strip --retry 3 --report export.csv --theme dark --verbose`

Als nächstes ist es wichtig in Immich in den Einstellungen den Import von Metadaten/Gesichtern zu aktivieren:

[![Bildschirmfoto 2025-04-26 um 07.50.29.png](https://metalsnake.space/linuxswitch/uploads/images/gallery/2025-04/scaled-1680-/bildschirmfoto-2025-04-26-um-07-50-29.png)](https://metalsnake.space/linuxswitch/uploads/images/gallery/2025-04/bildschirmfoto-2025-04-26-um-07-50-29.png)

Diese ist standardmäßig deaktiviert, was dazu führte, dass ich auch für diesen Weg einen zweiten Durchlauf brauchte.

Ist die Option aktiviert werden die Personennamen aus Fotos.app übernommen. Diese Infos wurden beim Export in sidecar Dateien (im deutschen auch Filialdateien genannt, die deutsche Immich Übersetzung ist da nicht konsequent) gespeichert.

Zum Import habe ich dann das Programm [immich-go](https://github.com/simulot/immich-go) verwendet. Auch hier habe ich den Befehl vom selben Discord User verwendet:

`immich-go upload from-folder --server=http://dieImmichURL --api-key=derApPIkeyAusImmich /Users/snake/FotosExport --client-timeout 30m0s --on-server-errors continue`

Das ganze dauert eine Weile, und nach dem Import ist der Server noch beschäftigt bis alle Thumbnails erstellt sind, alle Bilder nach Gesichtern gescannt sind, usw. Während der Zeit werden viele Bilder noch so aussehen:

[![Bildschirmfoto 2025-04-26 um 08.14.23.png](https://metalsnake.space/linuxswitch/uploads/images/gallery/2025-04/scaled-1680-/bildschirmfoto-2025-04-26-um-08-14-23.png)](https://metalsnake.space/linuxswitch/uploads/images/gallery/2025-04/bildschirmfoto-2025-04-26-um-08-14-23.png)

Nachdem die Aufgaben am Server abgeschlossen sind, sind die Bilder Fehlerfrei zu sehen.

# Notizen App

# Notizen App

Apples Notizen App ist eine der wenigen Apps die tatsächlich noch gut funktionieren, und an denen ich nichts auszusetzen habe. Mal abgesehen davon, dass das Design wie überall sonst auch, verschwunden ist und es nur noch hässlich aussieht.

Anforderungen

Schnelle, einfache Bedienung

Synchronisation über mehrere Geräte

Versionen für macOS, Linux und iOS

Mögliche Optionen:

[https://github.com/meichthys/foss\_note\_apps](https://github.com/meichthys/foss_note_apps)

[https://github.com/awesome-selfhosted/awesome-selfhosted?tab=readme-ov-file#note-taking--editors](https://github.com/awesome-selfhosted/awesome-selfhosted?tab=readme-ov-file#note-taking--editors)

# Getestete Tools

### Export aus Notes.app

Zum Export habe ich bisher nur die [Exporter App](https://apps.apple.com/de/app/exporter/id1099120373?mt=12) gefunden. Die exportiert die Notizen als Markdown Dateien. Allerdings erwartet Markdown für Zeilenumbrüche zwei Leerzeichen am Ende einer Zeile. Diese müsste die Exporter app hinzufügen, macht sie aber nicht. Das führt dazu, dass diese dann beim Import in einer Zeile angezeigt werden.

Ich werde dazu noch ein Skript schreiben müssen.

###  

### Standard Notes

Als erstes habe ich [Standard Notes](https://standardnotes.com/help/self-hosting/getting-started) ausprobiert.

Sieht ganz brauchbar aus, aber zumindest die Mac Version will alle paar Sekunden neu eingeloggt werden. Irgendwas funktioniert da offenbar nicht richtig. Konnte nichts weiter dazu finden. Damit hat sich das erstmal erledigt.

### TriliumNext

Als zweites teste ich aktuell [TriliumNext](https://github.com/TriliumNext/Notes).

Die App funktioniert, und hat auf den ersten Blick nichts was mich sofort abschreckt.

# Kalender

# Kalender

Ich habe keine großen Anforderungen an einen Kalender.

Es soll synchronisiert werden über mehrere Geräte.

Erinnerungen an Termine sollen auf allen Geräten angezeigt werden.