Autor Tópico: Script simples para corrigir brilho e contraste do monitor.  (Lida 3439 vezes)

Offline Sampayu

  • Usuário Ubuntu
  • *
  • Mensagens: 497
  • "Não é possível semear de mãos fechadas"
    • Ver perfil
    • YouTube
Script simples para corrigir brilho e contraste do monitor.
« Online: 05 de Fevereiro de 2023, 21:22 »
Recentemente criei um script que usa o comando xrandr no terminal do shell para corrigir o brilho e o contraste do monitor do meu laptop. Pus um atalho para esse script no painel do Xfce, e daí eu o aciono como se fosse o botão de um aplicativo, exceto que quando eu clico nele, surge uma janela do terminal pedindo que eu digite um número para o brilho e outro para o contraste que desejo aplicar ao monitor.

  • Caso alguém tenha interesse em usar isso, o primeiro passo é abrir uma janela do emulador de terminal do shell (por exemplo pressionando a combinação de teclas Ctrl Alt T) e então executar o comando abaixo, para criar uma pasta scripts dentro da sua pasta pessoal (você pode selecionar o comando abaixo e então usar a combinação de teclas Ctrl C para copiá-lo. Em seguida, clique na janela do emulador de terminal e então pressione a combinação de teclas Ctrl Shift V para colá-lo, daí basta pressionar Enter. Pule esta etapa caso você já possua uma pasta desse tipo)
Código: [Selecionar]
mkdir ~/scripts
  • O segundo passo é usar o editor de textos Nano para criar o arquivo de script xrandr.sh dentro da pasta scripts (caso você já possua uma pasta scripts em outro local, ajuste o comando abaixo para que aponte para o local dessa sua pasta):
Código: [Selecionar]
nano ~/scripts/xrandr.sh
  • O terceiro passo consiste em copiar o código abaixo e então colá-lo (Ctrl Shift V) dentro da tela do Nano:
Código: [Selecionar]
#!/bin/bash
# Corrige o brilho e o contraste do monitor.

# Define uma função calc() capaz de informar quociente decimal.
calc() { awk "BEGIN{ printf \"%.1f\n\", $* }" | tr "," "."; }

export monitor=`xrandr --listactivemonitors |tail -c 7`

export brilho="0"

while [[ $brilho != [1-9] ]]
do
echo Digite um BRILHO válido\:
echo \(n\º inteiro entre 1 e 9\; quanto maior o n\º, MAIOR o brilho\)
read brilho
echo ""
done

export brilho="`calc $brilho/10`"

export gamma="0"

while [[ $gamma -lt 1 ]] || [[ $gamma -gt 20 ]]
do
echo Digite um CONTRASTE válido\:
echo \(n\º inteiro entre 1 e 20\; quanto maior o n\º, MENOR o contraste\)
read gamma
echo ""
done

export gamma="`calc $gamma/10`"

xrandr --output $monitor --gamma $gamma:$gamma:$gamma --brightness $brilho

PS: caso seu computador possua mais de um monitor, é recomendável primeiro testar se o comando export monitor=`xrandr --listactivemonitors |tail -c 7` de fato seleciona o monitor correto. Para fazer isso, execute este comando, no terminal do shell:
Código: [Selecionar]
export monitor=`xrandr --listactivemonitors |tail -c 7` ; clear ; echo $monitor...e então veja se o nome que aparece é a identificação do monitor que você de fato está usando como monitor principal.

  • O quarto passo consiste em pressionar a combinação de teclas Ctrl O e pressionar Enter para salvar essa alteração, e em seguida pressionar a combinação de teclas Ctrl X para sair do Nano.
  • O quinto passo consiste em executar o comando abaixo, para tornar esse script executável:
Código: [Selecionar]
chmod +x ~/scripts/xrandr.sh
  • O sexto passo consiste em adicionar sua pasta scripts à variável PATH do arquivo de configuração do seu shell Bash (arquivo .bashrc dentro da sua pasta pessoal), para que os scripts que você puser na sua pasta de scripts sejam reconhecidos sempre que você digitar o nome deles no emulador de terminal. Para fazer isso, use o Nano para abrir o arquivo de configuração do seu Bash:
Código: [Selecionar]
nano ~/.bashrcCaso o Nano mostre para você que dentro desse arquivo existe uma linha começando com PATH=, então adicione o endereço da sua pasta de scripts. Por exemplo, se dentro do arquivo .bashrc existir uma linha assim:
Citar
PATH=$PATH:/opt/java/jre/bin

...então adicione o código :~/scripts ao final daquele código. Assim:

Citar
PATH=$PATH:/opt/java/jre/bin:~/scripts

Caso o arquivo .bashrc aberto pelo Nano não tenha nenhuma referência à variável PATH, então adicione esta linha ao final do arquivo:

Citar
PATH=$PATH:~/scripts
  • O sétimo passo consiste em executar o quarto passo novamente, para salvar as alterações feitas (Ctrl O + Enter) e então sair do editor de texto Nano (Ctrl X).
  • O oitavo passo consiste em executar o seguinte comando, que fará o shell inicializar as configurações que você adicionou:
Código: [Selecionar]
source ~/.bashrc

    Pronto: daqui para a frente, bastará executar o comando xrandr.sh que o script lhe solicitará que informe um número inteiro entre 1 e 9 (quanto maior o número informado, maior o brilho que será atribuído ao monitor) e em seguida um número inteiro entre 1 e 20 (quanto menor o número informado, maior o contraste do monitor). Uma vez informados esses 2 números, o programa xrandr modificará o brilho e o contraste do monitor. Sugestão de números para testar o script: brilho = 9 e contraste = 7.

    Pelo menos no XUbuntu (que eu utilizo), é fácil usar um botão para acionar esse script: basta clicar com o botão direito sobre o painel ("barra de tarefas" ou taskbar, onde aparece o ícone de rede, o ícone do controle de volume etc.), em seguida selecionar o menu Painel => Adicionar novos itens..., clicar em Lançador, em seguida clicar em Adicionar e então em Fechar. Surgirá um novo ícone no painel, então clique sobre ele com o botão direito e clique na opção Propriedades, clique no botão Adicionar um novo item vazio e daí preencha assim os campos da janela que surgirá:

    Nome: Especificar o brilho e o contraste do monitor
    Comando: /home/nome-da-sua-pasta-pessoal/scripts/xrandr.sh
    Ícone: Clique sobre o botão Nenhum ícone, selecione um ícone (procure a palavra display) e clique em OK
    Marque a caixa Executar no terminal, então clique em Salvar e em seguida clique em Fechar.

    No Ubuntu é possível fazer algo parecido, embora seja mais trabalhoso. O primeiro passo consiste em criar um arquivo .desktop dentro de ~/.local/share/applications/ (sua pasta pessoal de aplicativos). O comando é este:
    Código: [Selecionar]
    nano ~/.local/share/applications/xrandr.desktop
    Em seguida, selecione o código abaixo, copie-o (Ctrl C) e então cole-o (Ctrl Shift V) dentro da janela do Nano:

    Código: [Selecionar]
    [Desktop Entry]
    Name=Especificar o brilho e o contraste do monitor
    Exec=/home/nome-da-sua-pasta-pessoal/scripts/xrandr.sh
    Icon=/usr/share/icons/gnome/256x256/devices/display.png
    Terminal=true
    Type=Application
    StartupNotify=true

    Substitua /home/nome-da-sua-pasta-pessoal/scripts/xrandr.sh pelo caminho correto para o script e então use Ctrl O para gravar a alteração e Ctrl X para sair do Nano. Em seguida, reinicie o computador. Se antes disso quiser testar o novo item de menu, execute este comando:
    Código: [Selecionar]
    xdg-open ~/.local/share/applications/...para fazer o seu gerenciador de arquivos (Nautilus, Thunar etc.) acessar sua pasta ~/.local/share/applications. Quando ela for aberta, execute (com um clique duplo, por exemplo) o arquivo xrandr.desktop que estará dentro dessa pasta. Se o Ubuntu lhe perguntar em qual painel deseja instalar o atalho de aplicativo, deixe selecionado o painel 0 (que é o padrão) e clique em OK, daí procure o ícone no painel ou no menu de aplicativos/programas e execute-o.
    Yuri Sucupira ("Sampayu")

    Offline platao

    • Equipe Ubuntu
    • Usuário Ubuntu
    • *****
    • Mensagens: 5.052
      • Ver perfil
    Re:Script simples para corrigir brilho e contraste do monitor.
    « Resposta #1 Online: 06 de Fevereiro de 2023, 07:14 »
    Adorei seu script!!!
    \\\\\\\\Apostilas Dicas e Guias do Ubuntu\\\\\\\\\> http://ubuntuforum-br.org/index.php/topic,79368.msg440997.html#msg440997

    Offline Sampayu

    • Usuário Ubuntu
    • *
    • Mensagens: 497
    • "Não é possível semear de mãos fechadas"
      • Ver perfil
      • YouTube
    Re:Script simples para corrigir brilho e contraste do monitor.
    « Resposta #2 Online: 06 de Fevereiro de 2023, 12:27 »
    Adorei seu script!!!

    Show de bola. Obrigado. :)
    Yuri Sucupira ("Sampayu")