Como eu faço o som automaticamente mudo depois de voltar da hibernação ou suspender?

1

Quero que meus alto-falantes e fones de ouvido sejam automaticamente desativados quando eu retornar da hibernação / suspensão ou, talvez, mudo imediatamente antes de eu hibernar / suspender. Agora eu poderia escrever um script para fazer isso, mas sei que há muitas maneiras de fazer isso, mas existe uma maneira correta de escrever esse script e qual seria o lugar certo para compará-lo a um trabalho básico que não obtém o nível do sistema profundo em que esse script deve residir.

    
por philipballew 26.03.2012 / 05:46

1 resposta

2

O diretório /etc/pm/sleep.d/ contém scripts que são executados quando o sistema é suspenso, hibernado, retomado (ou seja, retorna da suspensão) ou descongelado (retorna da hibernação).

Portanto, seu script deve ser colocado nesse diretório, para ser chamado nesses eventos. O primeiro argumento para o script (ou seja, em $1 ) será a ação que está sendo executada (ou seja, uma das suspend , hibernate , resume ou thaw ). Seu script pode ser executado no currículo e descongelar ações para silenciar os volumes de acordo. Dê uma olhada em alguns dos scripts existentes para exemplos. A documentação para esses scripts de gancho está na% man_de% manpage.

Quanto ao mudo em si: Eu sugiro usar pm-action para salvar o 'estado' da configuração silenciado em um arquivo (por exemplo, alsactl ). Quando o script é executado, ele pode invocar /var/lib/alsa/asound-muted.state para restaurar a partir desse estado salvo:

alsactl -f /var/lib/alsa/asound-muted.state restore <card-id>

Como alternativa, você pode usar alsactl para definir o valor de um controle de volume específico como zero:

amixer -c 0 sset PCM,0 0

- no entanto, os argumentos para o amixer dependerão da sua configuração específica de hardware de som.

    
por Jeremy Kerr 26.03.2012 / 07:23