Eu reescrevi o script para você, como discutido no bate-papo :
#!/bin/bash
# set log_enabled="true" for status output, else log_enabled="false"
log_enabled="true"
on="1023"
off="0"
dv="0"
log () {
if $log_enabled
then
echo "$(date +%H:%M:%S) - "
fi
}
log "waiting 10 seconds..."
sleep 10
log "resetting DigitalVibrance to $off (off)"
nvidia-settings -a "DigitalVibrance=$off" > /dev/null
log "beginning to watch for csgo_linux processes"
while true
do
dv=$(nvidia-settings -q "DigitalVibrance" -t)
log "current DigitalVibrance setting: $dv"
if pgrep "csgo_linux" > /dev/null
then # if CS:GO is running
if [ "$dv" -eq "$off" ]
then # if DigitalVibrance is currently off
log "setting DigitalVibrance to $on (on)"
nvidia-settings -a "DigitalVibrance=$on" > /dev/null
fi
else # if CS:GO is not running
if [ "$dv" -eq "$on" ]
then # if DigitalVibrance is currently on
log "setting DigitalVibrance to $off (off)"
nvidia-settings -a "DigitalVibrance=$off" > /dev/null
fi
fi
if [ "$dv" -eq "$on" ]
then
sleep 5
else
sleep 1
fi
done
Isso deve funcionar bem, exceto pelo caso se o comando nvidia-settings -q "DigitalVibrance" -t
tiver saída vazia, em vez de retornar o valor atual das configurações como número.
Ele é mais bem formatado, corrige alguns erros que tivemos no script original, cita corretamente as variáveis no if
tests e usa comandos de trabalho para obter e definir o valor das configurações da nvidia, conforme descobrimos o script original não fez nada no seu sistema. Também adicionei uma função de log opcional para mostrar alguma saída de status no console, que você pode desativar substituindo a linha log_enabled="true"
por log_enabled="false"
.
Sobre como iniciar este script automaticamente no login, você pode ler Como faço para iniciar aplicativos automaticamente no login? ou Como adicionar um script aos aplicativos de inicialização a partir da linha de comando?