script para desligar o volume quando os fones de ouvido forem desconectados

pinguim-159784_640

Aconteceu comigo que enquanto as pessoas dormiam nas primeiras horas da manhã, eu ouvia música pesada no volume máximo e por engano desconectava os fones de ouvido, o que fazia com que tocassem por toda a casa (acho que eles me odiavam naquela hora haha). Portanto, programe um pequeno script que, quando desconectado, silencie o volume:

A primeira coisa foi instalar alsa-utils para ser capaz de gerenciar o volume dos comandos facilmente:

sudo pacman -S alsa-utils

O próximo passo foi descobrir através de uma busca no Google que também salva em arquivos de texto simples (pode ser lido com qualquer editor de texto, no Windows tudo isso seria muito mais complicado) o estado das placas de som e que só leva copie o arquivo e compare as alterações.

O arquivo é:
/proc/asound/card0/codec#0

Isso pode variar em alguns casos, por exemplo, se tivermos mais de uma placa de som. Para saber mais deixo o link da documentação alsa: http://alsa.opensrc.org/Proc_asound_documentation

Eu conecto os fones de ouvido e copio o arquivo:
mkdir $HOME/.audifonos && cp "/proc/asound/card0/codec#0" "$HOME/.audifonos/con.txt"

Em seguida, desligo os fones de ouvido e uso o comando diff, que mostra as diferentes linhas entre os dois arquivos:
diff "/proc/asound/card0/codec#0" ".audifonos/con.txt"

Existem alguns dados nos quais não estamos interessados, então temos que filtrar com grep para que ele mostre apenas as linhas que possuem a palavra "Pin-ctls".

diff "/proc/asound/card0/codec#0" ".audifonos/con" | grep Pin-ctls

Se o comando não mostrar nada na tela, significa que temos fones de ouvido. uma vez que não pode retornar nada, ele retorna um erro.

Para ver esse erro, digitamos:
echo $?

Se nos mostrar um por tela, ele nos informa sobre o erro.

conforto

por outro lado, se ao executarmos isso ele retornar algo, então teremos os fones de ouvido desconectados, caso em que não retornará um erro:
echo $?

Olá

Com isso em mente e sabendo do bash, é fácil fazer isso:

Headphones.sh

Eu faço o download, dou permissão de execução para abri-lo pela primeira vez para que ele "instale" (ele só pede para conectar fones de ouvido e copiar o arquivo que ele explica no início)
wget http://paste.desdelinux.net/?dl=5178 && chmod +x audifonos.sh && ./audifonos.sh

Para terminar, faço-o iniciar automaticamente sempre que ligo o pc

No Xfce, vou para aplicativos> configuração> Sessão e inicio> início automático de aplicativos> adicionar e colocar o script


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   Telha dito

    Você usa um WM? É que pelo menos no Arch com Gnome-Shell 3.16 ele preserva as mudanças nos controles de volume, por exemplo, quando eu ligo o HDMI ele mostra o volume máximo, quando eu ligo os fones ele mostra o volume muito baixo e nos alto-falantes integrados quase o máximo.

    Embora eu estivesse tentando fazer isso há algum tempo, era uma merda ter que diminuir o volume para poder usar os alto-falantes para que o som não fosse estridente ou irritante para os outros. Muito obrigado pela contribuição.

    1.    chuva dito

      para nada 🙂, eu uso o xfce 😛

      1.    Telha dito

        Acabei de me lembrar que uma vez estava assistindo p0rn e tinha os fones de ouvido e o hdp desconectados e ouvi os gemidos de Shyla: c
        O bom é que foi apenas um fragmento de pelo menos um segundo eterno e parecia filme de terror quando uma prostituta foi morta. XD
        Pensando nisso, vou adicioná-lo aos favoritos

  2.   Yoyo Moreno dito

    Hahahahahaha a mesma coisa aconteceu comigo quando eu desliguei sem querer por volta da meia-noite e um bom Hard Core soou no volume máximo XD minha família estava com medo: v

  3.   noxonsoftwares dito

    Boas informações serão úteis para mim em algum momento. Muito obrigado

  4.   Andreser dito

    Você não está me enganando, você estava assistindo por * ou gay em espanhol e seus fones de ouvido foram desconectados xD
    Obrigado pela contribuição, no Linux Mint o volume é preservado, por exemplo se eu colocar mudo e depois conectar os fones de ouvido, nos fones de ouvido terei som e sem eles não.
    Saudações.

    1.    chuva dito

      hahaha, não mas nesses casos também funciona (?)

      1.    Andreser dito

        Sim, também funciona nesses casos (͡ ° ͜ʖ ͡ °)

  5.   deni dito

    Boa informação, uma sugestão, se o sistema suporta 'devd' como faço para copiar ou criar este arquivo?

    [código] $ PREFIX / share / examples / cups / ulpt-cupsd.conf para $ PREFIX / etc / devd / [/ code]

    1.    chuva dito

      Eu não poderia te dizer, o comando cp não é suficiente?

      1.    deni dito

        Não, diz que esse diretório não existe e também não sei como criar.

  6.   fernando dito

    Heheheh bem se eu contar a vocês que já aconteceu comigo em mais de uma ocasião e com a mesma música, então eu escrevo para instalá-lo mais tarde. Saudações e em nome do Heavy Metal obrigado.

  7.   David dito

    …… ~$ sudo pacman -S alsa-utils
    senha [sudo] para david:
    sudo: pacman: comando não encontrado