Mensagem de volume alto quando o fone de ouvido está conectado

Publicado por Paulo Roberto Gomes (última atualização em 12/03/2015)

[ Hits: 3.795 ]

Homepage: www.e7informatica.com

Download 6177.warningExcessiveSound.sh




Exibir uma mensagem quando o fone de ouvido está conectado ao seu computador e se o percentual do volume é superior 75%. O script tem dependência do zenity, que normalmente já vem instalado nas distribuições baseadas no Debian.

Para instalação do script crie uma pasta oculta na sua home e faça a sua chamada através do arquivo .profile que também fica dentro da pasta home.

  



Esconder código-fonte

#!/bin/bash

# Arquivo:             warningExcessiveSound.sh
# Versão:              0.1
# Nome:                Paulo Roberto Gomes, paulo.robertonove@gmail.com
# Date:                  Março de 2015
# Descrição:         Mostra uma mensagem quando fone de ouvido esta conectado no
#                            computador e o volume do som é maior que 75% da sua capacidade.
#
# Dependências:    zenity



function getStatusSpeaker(){
    # executando comandos encadeados para obter estado da saida de som das caixas
    amixer -- sget Speaker playback | grep -wi 'on' >> /dev/null
    # armazenando o retorno da saida do comando numa variavel que sera usada posteriomente.
    cdmOUT=$?;
}



function getVol(){
    # executando varios comandos encadeados para obter percentual de volume do som
    vol=$( amixer -- sget Master playback | grep % | awk '{print $4}' | tr -d '[' | tr -d '%' | tr -d ']' )
}


function start(){
    ps aux | grep zenity | grep -v grep >> /dev/null
    zenityOn=$? # armazenando o retorno da saida comando acima
    if [ "0" != $cdmOUT ]; then
        if [ "0" != "$zenityOn" ]; then
            setVol
            testVol
        fi
    fi
}

function testVol(){
    getVol # chamado a funcao para obter o percentual de vol
    if [ $vol -gt 75 ]; # testa se o volume esta acima de 75%
    then
         showsToUserMSG
    fi
}

function showsToUserMSG(){
    zenity --notification --text "Cuidado!  Você esta usando $vol% da capacidade do volume de som, pode ser prejudicial audição" --timeout 10
    # criar um arquivo na tmp para indicar que o usuario já foi avisado
    echo "" > /tmp/aviso
}

# Esta funcao fica em loop observando o funciomanento placa de som
function main(){
    getStatusSpeaker # carregar o status da saida para as caixas de som
    # teste se existi o arquivo aviso na tmp
    if [ ! -f '/tmp/aviso'  ]; then
        start # é executado quando o arquivo não existi
    else
        # é executado quando o arquivo existi e saida de som das caixas
        # estao sendo usadas.
        if [ "0" = "$cdmOUT" ]; then
            rm  /tmp/aviso
        fi
    fi
    sleep 1
    main # pausa por um segundo, e faz uma chamada recusiva da funcao
}

# chamando a funcao principal
main

Scripts recomendados

Pingmon1.0 - Ping Timeout Monitor

Automatizar a importação de chave privada GPG (GnuPG)

Organizando CD’s com shell script

Alta disponibilidade IP-Virtual

Quota em disco


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts