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.
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 $?
Com isso em mente e sabendo do bash, é fácil fazer isso:
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
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.
para nada 🙂, eu uso o xfce 😛
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
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
Boas informações serão úteis para mim em algum momento. Muito obrigado
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.
hahaha, não mas nesses casos também funciona (?)
Sim, também funciona nesses casos (͡ ° ͜ʖ ͡ °)
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]
Eu não poderia te dizer, o comando cp não é suficiente?
Não, diz que esse diretório não existe e também não sei como criar.
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.
…… ~$ sudo pacman -S alsa-utils
senha [sudo] para david:
sudo: pacman: comando não encontrado