Posso definir Superusuário Dentro do Iniciador?

6

Eu tenho um script que executo toda vez que eu inicializo meu laptop (para redefinir o brilho da tela). Eu gostaria de poder executar este comando usando um Launcher:

echo 1500 > /sys/class/backlight/intel_backlight/brightness

Infelizmente, para executar este comando (para editar o arquivo) eu preciso ser SU e digitar meu nome de usuário e senha. Eu sei que os shell scripts UNIX são projetados de tal forma que você não pode inserir variáveis interativas como essa, mas eu esperava que o Launcher tivesse mais funcionalidade.

É possível inserir argumentos interativos como superusuário e senha no Iniciador? Se sim, como?

    
por theJollySin 21.08.2012 / 21:28

1 resposta

5

Você pode fazer isso usando gksu . Especificamente, faça o ativador executar o comando:

gksu "bash -c 'echo 1500 > /sys/class/backlight/intel_backlight/brightness'"

Isso fará com que o script solicite sua senha e altere o brilho.

Outra solução, melhor, que pode ou não funcionar, dependendo do seu hardware, é usar o Daemon gnome-settings para alterar o brilho. Isso permitirá que você altere o brilho sem precisar digitar sua senha.

O comando para fazer isso é:

gdbus call --session --dest org.gnome.SettingsDaemon --object-path /org/gnome/SettingsDaemon/Power --method org.gnome.SettingsDaemon.Power.Screen.SetPercentage 100

Você pode substituir o 100 no final por qualquer porcentagem de brilho de 0 a 100.

Como eu disse, isso pode não funcionar em todos os casos e só deve ser usado quando você estiver logado.

Para fazer com que sejam executáveis a partir do iniciador, você precisará criar o que é chamado de arquivo da área de trabalho. Para fazer isso, você deve criar um novo arquivo chamado ~/.local/share/applications/fullbright.desktop e copiar e colar o seguinte nele.

[Desktop Entry]
Name=Full Brightness
GenericName=Brightness
Comment=Set Full Brightness
Exec=gdbus call --session --dest org.gnome.SettingsDaemon --object-path /org/gnome/SettingsDaemon/Power --method org.gnome.SettingsDaemon.Power.Screen.SetPercentage 100
Terminal=false
Type=Application
Icon=checkbox
Categories=Utility;

Se o comando gdbus não funcionar no seu sistema, substitua-o pelo gksu.

Agora você deve poder chamar esse comando do iniciador com o nome Full Brightness e fixá-lo no seu dock como qualquer outro programa.

    
por Alex L. 21.08.2012 / 21:53

Tags