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.790 ]

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

Autenticação automática no Velox

Iptables com Roteando via NAT

Localizador não interativo do Mozilla Firefox para Slackware

Pesquisa Preços pela Internet

NetProfiler - Um solução para quem passeia por várias redes.


  

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