2 pontos por GN⁺ 4 일 전 | 1 comentários | Compartilhar no WhatsApp
  • Music Decoy é um app que existe como um processo em execução para evitar que o app Music do sistema seja aberto quando você pressiona ▶ Play por engano
  • Não faz absolutamente nada em segundo plano e usa o mesmo identificador de bundle do app Music para fazer o sistema reconhecer que o Music já está em execução
  • A partir da v1.1, é possível configurar com a opção mediaAppPath para que, ao pressionar ▶ Play, outro app como o Spotify seja iniciado
  • A abertura automática do app Music pode ocorrer ao pressionar ▶ Play no teclado, ao conectar um headset Bluetooth e enviar um comando de reprodução, ou quando o headset sai do modo de chamada e volta ao modo de música após o fim de uma ligação
  • O rcd envia o comando ao app que já estiver reproduzindo áudio quando ocorre um evento de reprodução; se não houver nenhum, ele inicia o app Music do sistema, e desativar o daemon também desativa os controles de reprodução por mídia do teclado

Music Decoy

  • Baixar, ver código-fonte, comando de instalação $brew install music-decoy disponível

  • Impedir a execução do app Music

    • Enquanto o Music Decoy estiver em execução, pressionar ▶ Play por engano não iniciará o app Music do sistema
    • O app não faz absolutamente nada em segundo plano; ele apenas existe como um processo em execução com o mesmo identificador de bundle do app Music
  • Como funciona

    • Usa o identificador de bundle com.apple.Music para fazer o sistema considerar que o app Music já está em execução
  • Configuração

    • Desde a v1.1, é possível configurar o Music Decoy para iniciar outro app ao pressionar o botão ▶ Play
    • Comando de configuração de exemplo para o Spotify:
      defaults write com.lowtechguys.MusicDecoy mediaAppPath /Applications/Spotify.app
      
    • Comando para redefinir a configuração:
      defaults delete com.lowtechguys.MusicDecoy mediaAppPath
      
  • Como encerrar

    • Como não há ícone no Dock nem ícone na barra de menus, é preciso encerrar de uma destas formas
      • Abrir o Activity Monitor, localizar o Music Decoy e clicar no botão ❌ no topo
      • Executar killall 'Music Decoy' no Terminal

Condições de execução automática, causa e alternativas

  • Quando o Music é iniciado sozinho?

    • Acontece ao pressionar a tecla ▶ Play do teclado quando nenhum outro app está reproduzindo áudio
    • Acontece quando um headset Bluetooth é conectado e envia um comando de reprodução
    • Acontece quando, ao fim de uma chamada, o headset Bluetooth muda do modo de chamada para o modo de música
  • Por que isso acontece?

    • rcd é a sigla de Remote Control Daemon, o daemon responsável por processar as teclas de mídia
    • Quando ocorre um evento de reprodução, o rcd verifica se há algum app reproduzindo áudio no momento
    • Se houver um app reproduzindo áudio, ele envia o comando de reprodução para esse app; se não houver, inicia o app Music do sistema
    • Existe uma forma de desativar esse daemon, mas isso também desativa o controle de reprodução de mídia pelo teclado
  • Alternativas

    • Segundo esta resposta no StackExchange, existem alguns métodos para obter o mesmo efeito
    • launchctl unload -w /System/Library/LaunchAgents/com.apple.rcd.plist
      • Problema: desativa completamente o botão Play
    • noTunes detecta quando o app é iniciado e encerra o Music imediatamente
      • Problema: usa uma quantidade muito pequena de CPU em segundo plano, embora a detecção de apps em execução exija pouquíssimo trabalho

1 comentários

 
GN⁺ 4 일 전
Opiniões no Hacker News
  • É realmente engenhoso que o app funcione apenas existindo como um processo em execução em segundo plano, sem fazer nada, mas com o mesmo identificador de bundle do app Music
    Esse tipo de solução low-code/no-code tem uma elegância que só aparece quando se entende o sistema muito a fundo. Você precisa saber exatamente o que acontece no macOS quando aperta o botão de reproduzir, como funciona um identificador de bundle, e o resultado é lindo justamente por ser quase só uma “colisão” sem código algum
    Como observação lateral, agentes de código são fracos para esse tipo de problema. O Codex atual provavelmente acabaria criando um app exagerado que fica monitorando em loop a abertura do Music e o encerrando

    • Na verdade, isso parece um ótimo exemplo hipotético de como usar bem um agente de código
      Se você pedir “impede o app Apple Music de abrir”, é bem provável que ele siga o caminho mais óbvio, como a maioria das pessoas, de monitorar e encerrar. Mas se pedir “investigue por que o Apple Music está abrindo”, o usuário pode chegar rapidamente à conclusão, com base na investigação, de que a melhor solução é criar um app sem código que entre em conflito com o Music
    • Quando eu estava no ensino médio, meu pai limitava meu tempo de jogo com o Apple ScreenTime, e eu burlava isso mudando o BundleIdentifier no info.plist do jogo para com.apple.systempreferences e assinando o .app com meu certificado de desenvolvedor
      Foi bem divertido até eu ser pego
  • Ainda não consigo acreditar que a Apple acabou com o iTunes
    Eu costumava manter toda a minha biblioteca de música digital no iTunes, e a maior parte era música que eu mesmo ripava de CDs, mas também havia álbuns e programas de TV comprados no iTunes. Quando a Apple simplesmente abandonou o iTunes por completo, apagou do Mac OS e substituiu por algo como o Apple Music, pensei que nunca mais confiaria neles
    Passei um tempo procurando um bom tocador de MP3 e até usei o AIMP, mas agora estou pensando em usar IA para criar eu mesmo um player baseado em arquivos locais com a minha própria interface. Não preciso nem quero streaming. Eu poderia ter continuado comprando álbuns no iTunes, mas hoje é melhor comprar em CD

    • Você pode desativar os serviços em nuvem no Apple Music e ainda usar normalmente suas faixas locais e as músicas baixadas da iTunes Music Store
      Usei assim durante boa parte do ano passado: desativei os recursos de nuvem, coloquei toda a minha música local no Apple Music e sincronizei com o iPhone por cabo, como no iPod antigo, e ainda funciona bem
    • O app Music lê a mesma biblioteca do iTunes e os recursos centrais de música são quase os mesmos. O problema seria mais a interface?
    • Também existem bons gerenciadores de biblioteca/players feitos com cuidado, como https://www.strawberrymusicplayer.org
    • foobar é o melhor: https://www.foobar2000.org/mac
    • Não vejo muito a diferença. Ainda uso o app Music e ele funciona igualzinho a antes da mudança de nome
      Mesmo sem assinar o Apple Music, continuo mantendo toda a minha biblioteca de música digital no iTunes/Music e usando como sempre usei
  • Eu uso o utilitário embutido hidutil para remapear as teclas F3~F9 para o que eu quiser
    Transformei F3/F4 em controle de brilho da iluminação do teclado e F5~F9 em teclas de função normais. Há muita informação útil nesta postagem: https://news.ycombinator.com/item?id=35555475
    No MacBook M1, isso é aplicado com hidutil property --set e UserKeyMapping, especificando valores para HIDKeyboardModifierMappingSrc/HIDKeyboardModifierMappingDst

  • Eu precisava disso alguns meses atrás. Uso um MacBook para tocar um rig de teclado ao vivo e monitoro com fones de ouvido sem fio de baixa latência
    O dongle transmissor dos fones fica conectado ao notebook, e quando aperto um botão nos fones, o dongle envia o comando “play/pause”, o Music abre e começa a tocar áudio no dispositivo de saída padrão. Ele nem se importa se o transmissor dos fones está selecionado como saída padrão, então, em uma configuração complexa com vários dispositivos, o som pode sair por algo totalmente diferente
    Se eu apertasse esse botão por engano durante uma apresentação e o padrão estivesse definido para a interface conectada ao sistema de P.A., poderia acabar tocando uma música aleatória no volume máximo para o local inteiro
    Agora mudei a configuração de hardware para conectar o dongle à interface de áudio em vez de ao notebook, então no momento isso não é mais um problema, mas impedir esse tipo de mau funcionamento foi um dos motivos da reconfiguração. Esse tipo de comportamento não configurável é totalmente inadequado para apresentações ao vivo em um equipamento premium voltado a profissionais criativos

  • É triste ver a Apple usando esse tipo de tática barata estilo Microsoft. Empurrar o usuário à força para outro produto é autocanibalização da marca

    • Por que seria estranho que, ao apertar o botão de reproduzir sem haver uma sessão de mídia ativa, o player de música incluído no sistema operacional seja aberto?
    • Acho engraçado chamarem isso de “tática barata estilo Microsoft”, porque minha primeira reação ao ler a solução foi justamente “isso é muito a cara da Apple”
    • A Apple parece obcecada em matar o Spotify. Por isso, está fazendo coisas hostis ao cliente que não parecem muito com a Apple
      Lembra a dinâmica antiga de Microsoft contra Netscape
    • Esse tipo de comportamento tem um efeito bem contrário. Eu nunca vou querer usar nenhum produto ligado ao Apple Music
      Não entendo por que não existe uma forma simples de desligar esse comportamento agressivo. Parece algo deliberadamente coercitivo e desagradável, que, se não for cortado no início, acaba se espalhando mais e apertando o cerco sobre o usuário depois
      Não é um problema só da Apple; muitos designers de produto estão adotando essa atitude arrogante
    • É difícil dizer que alguém está sendo “arrastado à força” quando o player de música incluído no sistema operacional abre ao tentar tocar música
  • O que me incomoda não é só o Music abrir automaticamente quando eu abro um arquivo de áudio, mas também o fato de ele adicionar esse arquivo à biblioteca musical
    Depois tenho que apagar manualmente, escolhendo “manter arquivo”

    • Faz muito tempo que configurei todos os arquivos de música para abrirem no QuickTime Player, ainda quando o app Music era o iTunes
      Faz tanto tempo que eu já tinha até esquecido que o padrão era o app Music. Tocar um arquivo não significa que eu queira colocá-lo na biblioteca
    • Por causa disso, já me assustei várias vezes quando áudios de trabalho apareceram do nada em playlists
    • É irritante, mas bem fácil de corrigir. Basta clicar com o botão direito em um arquivo como .mp3, abrir Obter Informações, mudar o app padrão para o que você quiser e depois clicar em “Change all...”
      Você precisa fazer isso uma vez para cada tipo de arquivo, mas depois fica resolvido
  • É realmente irritante clicar nos AirPods sem querer e um app que eu não uso nem quero simplesmente abrir do nada

    • Não sou fã da Apple, mas se é um app desnecessário, por que não remover?
    • Tenho o mesmo problema. A caixa de diálogo modal bloqueante que aparece por cima também não tem um botão de fechar visível, então parece um dark pattern
  • Eu uso https://github.com/tombonez/noTunes

    • Eu usava o noTunes em um Mac antigo. E a página deixa claro como vantagem que esse método não detecta a abertura do app para então matá-lo; ele simplesmente impede a execução desde o início
      Também é bom que ele não use ícone na barra de menu, economizando esse espaço limitado
  • Gostei muito da abordagem. Inteligente. Mas, pessoalmente, eu gosto que o Apple Music abra quando aperto o botão PLAY do teclado

  • Eu tinha procurado antes uma forma de impedir isso, mas não encontrei bons resultados, então criei um Shortcut que fecha o app Music de novo sempre que ele abre
    Na prática funcionava bastante bem, mas virava um problema quando eu realmente queria usar o app Music. É irritante e nada bom do ponto de vista da experiência do usuário da Apple