2 Punkte von GN⁺ 4 시간 전 | 1 Kommentare | Auf WhatsApp teilen
  • Music Decoy ist eine App, die als laufender Prozess existiert und verhindert, dass sich die systemeigene Music-App öffnet, wenn man versehentlich ▶ Play drückt
  • Sie arbeitet überhaupt nicht im Hintergrund, sondern nutzt dieselbe Bundle-ID wie die Music-App, damit das System annimmt, die Music-App laufe bereits
  • Ab v1.1 kann über die Einstellung mediaAppPath konfiguriert werden, dass beim Drücken von ▶ Play stattdessen eine andere App wie Spotify gestartet wird
  • Das automatische Starten der Music-App tritt auf bei Eingaben über die Tastatur mit ▶ Play, bei einem Wiedergabebefehl nach dem Verbinden eines Bluetooth-Headsets und wenn ein Headset nach Gesprächsende vom Anrufmodus in den Musikmodus wechselt
  • rcd sendet bei einem Wiedergabeereignis den Befehl an die aktuell Audio wiedergebende App, falls es eine gibt; andernfalls startet es die systemeigene Music-App. Das Deaktivieren des Daemons deaktiviert auch die Mediensteuerung per Tastatur

Music Decoy

  • Download, Quellcode ansehen, Installationsbefehl $brew install music-decoy verfügbar

  • Starten der Music-App verhindern

    • Solange Music Decoy läuft, wird die systemeigene Music-App nicht gestartet, selbst wenn man versehentlich ▶ Play drückt
    • Die App arbeitet überhaupt nicht im Hintergrund, sondern existiert lediglich als laufender Prozess mit derselben Bundle-ID wie die Music-App
  • Funktionsweise

    • Verwendet die Bundle-ID com.apple.Music, damit das System annimmt, die Music-App laufe bereits
  • Konfiguration

    • Seit v1.1 kann Music Decoy so konfiguriert werden, dass beim Drücken der ▶-Play-Taste eine andere App gestartet wird
    • Beispielbefehl für Spotify:
      defaults write com.lowtechguys.MusicDecoy mediaAppPath /Applications/Spotify.app
      
      Anzeige
    • Befehl zum Zurücksetzen der Konfiguration:
      defaults delete com.lowtechguys.MusicDecoy mediaAppPath
      
  • Beenden

    • Da es weder ein Dock-Symbol noch ein Symbol in der Menüleiste gibt, muss die App auf eine der folgenden Arten beendet werden
      • Activity Monitor öffnen, Music Decoy suchen und oben auf die ❌-Schaltfläche klicken
      • Im Terminal killall 'Music Decoy' ausführen

Bedingungen für den automatischen Start, Ursache und Alternativen

  • Wann startet Music von selbst?

    • Wenn die ▶-Play-Taste auf der Tastatur gedrückt wird und keine andere App Audio wiedergibt
    • Wenn ein Bluetooth-Headset verbunden wird und einen Wiedergabebefehl sendet
    • Wenn ein Bluetooth-Headset nach Ende eines Gesprächs vom Anrufmodus in den Musikmodus wechselt
    Anzeige
  • Warum passiert das?

    • rcd ist die Abkürzung für Remote Control Daemon und verarbeitet Medientasten
    • Wenn ein Wiedergabeereignis auftritt, prüft rcd, ob es aktuell eine App gibt, die Audio wiedergibt
    • Wenn es eine Audio-App gibt, sendet es den Wiedergabebefehl an diese App; andernfalls startet es die systemeigene Music-App
    • Es gibt zwar eine Möglichkeit, diesen Daemon zu deaktivieren, aber dadurch wird auch die Mediensteuerung über die Tastatur deaktiviert
  • Alternativen

    • Laut dieser StackExchange-Antwort gibt es mehrere Methoden mit demselben Effekt
    • launchctl unload -w /System/Library/LaunchAgents/com.apple.rcd.plist
      • Nachteil: Die Play-Taste wird vollständig deaktiviert
    • noTunes erkennt gestartete Apps und beendet Music sofort nach dem Start
      • Nachteil: Es verbraucht im Hintergrund eine sehr geringe CPU-Leistung, auch wenn die Erkennung laufender Apps nur sehr wenig Arbeit verursacht

1 Kommentare

 
GN⁺ 4 시간 전
Hacker-News-Kommentare
  • Es ist wirklich clever, dass das nur dadurch funktioniert, dass die App im Hintergrund nichts tut und lediglich als laufender Prozess mit derselben Bundle-ID wie die Music-App existiert.
    Solche Low-Code-/No-Code-artigen Lösungen haben eine Eleganz, die nur aus einem sehr tiefen Systemverständnis entsteht. Man muss genau wissen, was auf macOS passiert, wenn man die Play-Taste drückt, wie Bundle-IDs funktionieren, und am Ende ist das Ergebnis fast nur ein einziger „Konflikt“ ohne nennenswerten Code.
    Nebenbei: Für solche Probleme sind Coding-Agenten eher schwach. Das heutige Codex würde wahrscheinlich eine übertriebene App bauen, die in einer Schleife überwacht, ob die Music-App startet, und sie dann beendet.

    • Eher wirkt das wie ein gutes hypothetisches Beispiel dafür, wie man Coding-Agenten effektiv einsetzt.
      Wenn man sagt: „Verhindere, dass die Apple-Music-App startet“, geht das System wahrscheinlich wie die meisten Menschen vor und überwacht sie, um sie dann zu beenden. Wenn man aber sagt: „Untersuche, warum Apple Music startet“, kann der Nutzer auf Basis der Untersuchungsergebnisse schnell erkennen, dass die beste Lösung darin besteht, eine No-Code-App zu bauen, die mit Music kollidiert.
    • Als ich in der Oberstufe war, hat mein Vater meine Spielzeit mit Apple ScreenTime begrenzt, und ich habe das umgangen, indem ich in der info.plist des Spiels den BundleIdentifier auf com.apple.systempreferences geändert und die .app mit meinem Entwicklerzertifikat signiert habe.
      Bis ich erwischt wurde, war das ziemlich lustig.
  • Ich kann immer noch nicht glauben, dass Apple iTunes abgeschafft hat.
    Früher hatte ich meine komplette digitale Musikbibliothek in iTunes, größtenteils Musik, die ich direkt von CDs gerippt hatte, aber auch Alben und TV-Sendungen, die ich in iTunes gekauft hatte. Als Apple iTunes komplett fallen ließ, es aus Mac OS entfernte und durch etwas wie Apple Music ersetzte, dachte ich, dass ich ihnen nie wieder vertrauen würde.
    Eine Zeit lang habe ich nach einem guten MP3-Player gesucht und auch AIMP ausprobiert, aber inzwischen denke ich darüber nach, mit AI selbst einen lokalen dateibasierten Player mit meiner eigenen Oberfläche zu bauen. Streaming brauche ich nicht und will ich nicht. Vielleicht hätte ich weiter Alben in iTunes gekauft, aber inzwischen ist es besser, einfach CDs zu kaufen.

    • In Apple Music kann man die Cloud-Dienste deaktivieren und trotzdem lokale Tracks und Musik aus dem iTunes Music Store weiterverwenden.
      Letztes Jahr habe ich es größtenteils so genutzt, alle meine lokale Musik bei deaktivierten Cloud-Funktionen in Apple Music gelegt und sie wie früher bei einem iPod per Kabel mit dem iPhone synchronisiert, und das hat weiterhin gut funktioniert.
    • Die Music-App liest dieselbe Bibliothek wie iTunes, und auch die Kernfunktionen für Musik sind fast identisch. Geht es eher um die Benutzeroberfläche?
    • Es gibt auch sehr gut gemachte, handgepflegte Bibliotheksmanager/Player wie https://www.strawberrymusicplayer.org.
    • foobar ist das Beste: https://www.foobar2000.org/mac
    • Ich verstehe den Unterschied nicht so recht. Ich nutze die Music-App noch immer, und sie funktioniert genauso wie vor der Umbenennung.
      Auch ohne Apple-Music-Abo halte ich meine komplette digitale Musikbibliothek in iTunes/Music und nutze sie wie früher.
  • Ich nutze das eingebaute Utility hidutil, um die F3-bis-F9-Tasten auf gewünschte Tasten umzubelegen.
    F3/F4 habe ich auf die Helligkeit der Tastaturbeleuchtung gelegt, F5 bis F9 zu normalen Funktionstasten gemacht. In diesem Beitrag gibt es viele nützliche Informationen: https://news.ycombinator.com/item?id=35555475
    Auf einem M1 MacBook setzt man das mit hidutil property --set und UserKeyMapping um, indem man Werte für HIDKeyboardModifierMappingSrc/HIDKeyboardModifierMappingDst angibt.

  • Ich hätte so etwas vor ein paar Monaten gebraucht. Bei Live-Auftritten betreibe ich auf einem MacBook ein Keyboard-Rig und nutze zur Kontrolle latency-arme kabellose Kopfhörer.
    Den Sende-Dongle der Kopfhörer stecke ich in den Laptop, und wenn ich die Taste am Kopfhörer drücke, sendet der Dongle den Befehl „Wiedergabe/Pause“, woraufhin Music startet und Audio über das Standardausgabegerät abzuspielen beginnt. Es kümmert sich nicht einmal darum, ob der Kopfhörer-Sender überhaupt als Standardausgabe ausgewählt ist, sodass der Ton in komplexen Multi-Device-Setups auf einem ganz anderen Gerät landen kann.
    Wenn man während eines Auftritts versehentlich die Taste drückt und der Standardwert gerade das mit dem P.A.-System verbundene Interface ist, kann plötzlich ein zufälliger Song mit maximaler Lautstärke durch den ganzen Veranstaltungsort schallen.
    Inzwischen habe ich mein Hardware-Setup so geändert, dass der Dongle nicht mehr am Laptop, sondern am Audio-Interface hängt, sodass es aktuell kein Problem mehr ist, aber die Vermeidung solcher Fehlfunktionen war einer der Gründe für die Umkonfiguration. Für ein Premium-Gerät für kreative Profis ist so ein nicht konfigurierbares Verhalten in einer Live-Umgebung völlig ungeeignet.

  • Es ist unerquicklich zu sehen, dass Apple solche billigen Microsoft-artigen Taktiken anwendet. Nutzer zwangsweise zu einem anderen Produkt zu treiben, ist Selbstkannibalisierung der Marke.

    • Warum wäre es seltsam, wenn sich bei Druck auf die Play-Taste ohne aktive Mediensitzung der im Betriebssystem enthaltene Musikplayer öffnet?
    • Die Formulierung „billige Microsoft-artige Taktiken“ ist lustig, denn mein erster Gedanke beim Lesen der Lösung war eher: „Das ist wirklich eine sehr Apple-typische Methode.“
    • Apple ist davon besessen, Spotify zu verdrängen. Deshalb tut das Unternehmen Dinge, die für Apple untypisch kundenfeindlich wirken.
      Es erinnert an Microsoft gegen Netscape früher.
    • Dieses Verhalten hat bei mir eine starke Gegenreaktion ausgelöst. Ich möchte niemals ein Produkt rund um Apple Music verwenden.
      Ich kann nicht verstehen, warum es keine einfache Möglichkeit gibt, dieses aggressive Verhalten abzuschalten. Es wirkt absichtlich aufdringlich und unerquicklich, und wenn man es nicht früh unterbindet, breitet es sich später weiter aus und schnürt die Nutzer ein.
      Das ist nicht nur ein Apple-Problem; viele Produktdesigner übernehmen heute eine solche arrogante Haltung.
    • Wenn man Musik abspielen will und sich dann der im Betriebssystem enthaltene Musikplayer öffnet, würde ich kaum sagen, dass man „zwangsweise hingeführt“ wird.
  • Ich hasse es, dass beim Öffnen einer Audiodatei nicht nur Music automatisch startet, sondern sie auch noch zur Musikbibliothek hinzugefügt wird.
    Danach muss man sie wieder manuell löschen und dabei „Datei behalten“ auswählen.

    • Vor langer Zeit, als die Music-App noch iTunes war, habe ich eingestellt, dass alle Musikdateien mit QuickTime Player geöffnet werden.
      Das ist so lange her, dass ich sogar vergessen hatte, dass die Music-App überhaupt der Standard ist. Nur weil man eine Datei abspielen will, heißt das nicht, dass man sie zur Bibliothek hinzufügen möchte.
    • Deshalb wurde ich schon mehrfach erschreckt, weil arbeitsbezogene Audiodateien plötzlich in Playlists auftauchten.
    • Nervig ist es, aber recht einfach zu beheben. Man klickt etwa auf eine .mp3-Datei mit der rechten Maustaste, öffnet „Informationen“, ändert die Standard-App auf die gewünschte Anwendung und klickt dann auf „Alle ändern ...“.
      Das muss man zwar einmal pro Dateityp machen, aber dann ist es erledigt.
  • Es nervt mich wirklich, dass sich plötzlich eine App startet, die ich weder benutze noch haben will, nur weil ich versehentlich auf meine AirPods geklickt habe.

    • Ich bin kein Apple-Fan, aber wenn es eine unnötige App ist, warum entfernt man sie dann nicht?
    • Ich habe dasselbe Problem. Sogar der blockierende modale Dialog, der oben erscheint, hat keinen auffälligen Schließen-Button, sodass es sich wie ein Dark Pattern anfühlt.
  • Ich nutze https://github.com/tombonez/noTunes.

    • Auf meinem alten Mac habe ich noTunes verwendet. Auf der Seite wird ausdrücklich als Vorteil erwähnt, dass diese Methode nicht erkennt, wenn die App startet, um sie dann zu beenden, sondern den Start von vornherein verhindert.
      Schön ist auch, dass sie kein Menüleisten-Symbol verwendet und dadurch den knappen Platz spart.
  • Ich mag den Ansatz wirklich sehr. Clever. Persönlich gefällt es mir allerdings, dass sich Apple Music öffnet, wenn ich die PLAY-Taste auf der Tastatur drücke.

  • Früher habe ich danach gesucht, wie man das verhindern kann, aber nichts Gutes gefunden, also habe ich einen Shortcut gebaut, der die Music-App wieder schließt, wenn sie sich öffnet.
    Tatsächlich hat das ziemlich gut funktioniert, wurde aber zum Problem, wenn ich die Music-App wirklich benutzen wollte. Als Apple-User-Experience ist das ziemlich schlecht und nervig.