Script para diminuir gamma do monitor

Iniciado por rodneitc, 12 de Julho de 2012, 13:51

tópico anterior - próximo tópico

rodneitc

Olá. Sou iniciante e uso o Ubuntu 12.04 em um notebook. Gostaria de diminuir o gamma do meu monitor e consegui fazer isso com comandos via terminal.

Mas como faço para criar um Shell Script para executar esses comandos automaticamente cada vez que inicio o sistema?

Acho que o script é simples, mas não sei programar. Já criei um arquivo .sh para iniciar com o sistema, mas não sei o que escrever dentro dele além dos códigos abaixo. Alguém pode me ajudar?

#!/bin/bash
xgamma -rgamma 0.65
xgamma -ggamma 0.65
xgamma -bgamma 0.65

irtigor

Se são esses os comandos necessários, então está bom.
Você coloca condicionais e etc, só quando necessário.
Quanto mais simples e claro, mais fácil fica a manutenção.

rodneitc

Obrigado pela resposta, mas como o script não está executando imaginei que faltassem comandos.

No terminal, as linhas abaixo fazem efeito perfeitamente:
xgamma -rgamma 0.65
xgamma -ggamma 0.65
xgamma -bgamma 0.65


Mas, no script, como fazer? Coloquei o script pra iniciar indo em "Aplicativos de Sessão" e indicando o caminho do arquivo .sh que criei. Há alguma alternativa?

irtigor

Deu permissão de execução ao arquivo? Você executa com o seu usuário ou usando sudo?

rodneitc

Hmm, não sei como dar permissão para scripts (pesquisei agora, não encontrei isso).

Quando adicionei o arquivo .sh que eu criei para ser executado automaticamente, fiz via ambiente gráfico (menu "Aplicativos de sessão").

Fiz tudo com meu usuário.

irtigor

chmod +x /caminho/ate/o/script.sh
Isso vai dar permissão de execução. Pra ter certeza que ele funciona, pode executá-lo (no terminal):

./caminho/ate/o/script.sh



rodneitc

Os códigos executam o script, obrigado! Entretanto, o script não é executado automaticamente quando reinicio o sistema.

No ambiente gráfico, cliquei com o botão direito no arquivo do script e, em "Propriedades", marquei a opção que permite executar o arquivo como um programa. Agora, posso executá-lo tanto via terminal quanto no ambiente gráfico que ele cumpre a função de reduzir o gamma.

Incluir o script .sh em "Aplicativos de sessão" não deveria bastar para executá-lo automaticamente a cada início de sessão?

irtigor

Sim, onde o script está? Faça assim


[Desktop Entry]
Name=gamma
Exec=bash /caminho/ate/o/script.sh
Terminal=false
Icon=gtk-execute


Salve com a extensão ".desktop", no diretório "~/.config/autostart", e veja se funciona.

Obs: use o caminho absoluto.

rodneitc

Não funcionou...

Na verdade, eu nem consegui localizar a pasta citada.
O arquivo .sh está na raiz da minha página pessoal.

As únicas pastas "autostart" que encontrei são essas três:

/etc/xdg/autostart
/usr/share/gdm/autostart
/usr/share/gnome/autostart

irtigor

"/etc/xdg/autostart" também serve, é o diretório global.

rodneitc

Obrigado pela ajuda paciente, mas não funcionou novamente...
Creio que fiz tudo certo (tive que logar como root pra salvar o arquivo .desktop em "/etc/xdg/autostart").

irtigor

Qual é o caminho completo e o nome do script (se não for script.sh)?

raidicar

#12
Dentro de sua pasta home, existe um arquivo oculto chamado .profile.

Já que enrolou o autostart, vou lhe apresentar outras duas formas:

Forma 1: Aplicando as alterações assim que logar no sistema.
no terminal (Não como root, com seu usuário normal), de o comando gedit ~/.profile
Vai abrir o editor de texto com o conteúdo do arquivo .profile.
No final do arquivo, adicione (não apague nada do arquivo, apenas adicione) as linhas:

# Configuração do Gama
xgamma -rgamma 0.65
xgamma -ggamma 0.65
xgamma -bgamma 0.65

Salve e feche o arquivo.
Quando iniciar o sistema, as alterações serão aplicadas logo que colocar o usuário e senha.


Forma 2: Aplicando as alterações durante o boot.
Da mesma forma que editou o .profile, você deve editar o arquivo rc.local localizado no diretório /etc.
Porém, é preciso ser superusuário, então, no terminal, de o comando: sudo gedit /etc/rc.local
Repare que a ultima na ultima linha do arquivo esta escrito exit 0
Da mesma forma que o .profile, não remova nenhuma linha, apenas adicione.
Entretanto, ao contrário do .profile, onde adicionou na ultima linha, no rc.local, as linhas devem ser adicionadas acima de exit 0
O final do arquivo ficaria assim:

# Configuração do Gama
xgamma -rgamma 0.65
xgamma -ggamma 0.65
xgamma -bgamma 0.65

exit 0

Agora os comandos são executados durante o boot.

Teste de um jeito, depois do outro. Assim aprenderá uma das funcionalidades desses arquivos.

Lembre-se, caso tenha medo de estragar algum arquivo importante (e esses arquivos são importantes), faça um backup antes.
como root: sudo cp -p /etc/rc.local /etc/rc.local.bkp
e
com seu usuário: cp ~/.profile ~/.profile.bkp

Assim você faz cópias dos arquivos e caso cometa algum erro, basta voltar a cópia:
como root: sudo cp -p /etc/rc.local.bkp /etc/rc.local
e
com seu usuário: cp ~/.profile.bkp ~/.profile

Sempre faça isso quando for alterar algum arquivo importante do sistema.
Mesmo nesse caso, onde a alteração é bem simples.

Att,
Quem ama extremamente, deixa de viver em si e vive no que ama. Na vida três coisas são certas, o amor, a morte e o Linux !
Se Platão disse, então realmente sofremos de uma perigosa doença mental.

irtigor

O que "enrolou", deve ser algum detalhe, como uso de "~" ou espaço no caminho.

rodneitc

irtigor: Esse é o caminho do script que criei: /home/rodnei/Scripts/gamma.sh

raidicar: Testei as duas soluções, não funcionaram.

...

Desativei todas as soluções (inclusive aquela que havia tentado via ambiente gráfico, que incluía o script .sh como um aplicativo inicial de sessão).

O curioso é que quando as soluções estavam ativas, no momento em que aparecia a tela de boot (?) do sistema (aquela tela com fundo roxo, escrito "ubuntu") o gamma reduzia por uns 2 segundos. Mas, ainda nessa tela, já voltava pros padrões antes de carregar o ambiente gráfico.