Como faço para que o desvio para o vermelho comece no meu computador?


48

Eu tenho instalado Redshiftno meu computador e ele funciona muito bem com o comando gtk-redshift.

No entanto, ele não seria iniciado automaticamente ao usar o mesmo comando nos aplicativos de inicialização.

Como faço para configurá-lo para iniciar automaticamente?

Respostas:


27

Existe um bug conhecido # 868904 que interrompe o início do Redshift automaticamente na 11.10 devido a conflitos de geoclue na inicialização.

Consulte o Comentário nº 17 no relatório de erros para obter uma possível solução de definir o local permanentemente na inicialização.

1) Use http://itouchmap.com/latlong.html ou qualquer outro serviço para encontrar sua latitude / longitude

2) Ajuste o comando de inicialização do redshift para: gtk-redshift -l <latitude>:<longitude>

Exemplo de latitude / longitude de Amsterdã para redshift: gtk-redshift -l 52.37: 4.9

Ele está consertado no pacote 1.7-1ubuntu2, mas a página inicial do Launchpad do projeto lista apenas 1.7-0ubuntu1, construído há 35 semanas.

Você pode tentar fazer o download direto do site deles para ver se ele corrige o problema com uma versão posterior.


começaria se eu usasse o método GNOME-clock?
Dandyman

Eu não tenho certeza, você pode experimentá-lo, mas os passos descritos acima, aparentemente trabalho ..
Mark Rooney

Eu já tentei com ambos os métodos manuais gnome-relógio e, e ele não vai começar em ambos
Dandyman

Bem, se você tentou o método acima e ele não funciona, estou sem sugestões. Como eu disse, este é um bug no Redshift, portanto, você pode ter que esperar que seja resolvido pelo desenvolvedor do Redshift.
22812 Mark Rooney

Esse problema também ocorre com o 14.04 e sua segunda opção funcionou bem para mim. Obrigado.
EBE Isaac

14

Crie um arquivo chamado redshift.confno ~/.confige adicionar suas coordenadas para ele. Deve acabar parecendo algo assim :

[redshift]
location-provider=manual
[manual]
lat=55.0
lon=12.0

Isso funcionou para mim com a redshift-gtkv1.7 (configurada para iniciar automaticamente) no Trusty.
Arch Stanton

9

Eu sugeriria duas maneiras:

  1. Usando o crontab
  2. Usando iniciante

CRONTAB

O Crontab é um programa que está sendo executado o tempo todo. Ele possui uma lista com programas e scripts e as datas ou intervalos exatos que eles devem executar. O Crontab é muito usado pelos administradores de sistema para fazer backups e automatizar tarefas.

Para ver a lista com os programas, você pode digitar

crontab -l

Para editar o tipo de lista

crontab -e

Adicione esta linha no final, para inicializar o redshift sempre que o computador iniciar

@reboot export DISPLAY=:0.0 && /usr/bin/redshift -l 56.20:16.35

onde 56.20: 16.35 é a LATITUDE:LONGITUTEsua localização. Salve e reinicie.

SUBIR NA VIDA

O Upstart é um programa que, entre outras coisas, procura em pastas específicas na inicialização os scripts a serem executados. Assim, podemos adicionar nosso programa para que ele seja executado em todas as inicializações. O upstart é mais baixo que o crontab e você precisa de privilégios de root.

Para adicionar o desvio para o vermelho, basta editar o /etc/rc.localarquivo. Adicione o caminho para redshift antes de o exitno arquivo ou então ele não será executado. Você pode encontrar o caminho digitando whereis redshift. O arquivo deve ser semelhante a este:

#!/bin/sh -e
pcscd
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

/usr/bin/redshift

exit 0

Salve e reinicie.


No meu Ubuntu 14.04, nenhuma abordagem funciona. Em particular com a abordagem crontab, posso ver syslogque o comando é executado, não há mensagem de erro, mas o processo se esgota no momento em que a tela de login é exibida. (Ou seja, não há nenhum efeito visual de Redshift em execução, e após o login Posso confirmar que há de fato nenhum processo redshift em execução.)
Raphael

1
Esta publicação sugere que ambas as abordagens que você propõe estão fadadas ao fracasso. Você realmente confirmou que eles funcionam (em mais de uma configuração)? Por exemplo, verifiquei que $ DISPLAY às :0vezes é :0.0para mim, então como posso codificar um valor?
Raphael

Deveria ter verificado se isso realmente funciona antes da votação. Como o comentário de @Raphael diz, isso não funciona. Agora não consigo remover meu voto positivo! Jama
jamadagni

2

Conecte seu computador à Internet e execute gtk-redshiftno Terminal.

A saída será:


maez@maez:~$ gtk-redshift
Trying location provider `geoclue'...
Started Geoclue provider `Geoclue Master'.
Using provider `geoclue'.

** (process:3541): WARNING **: Could not get location, 3 retries left.

According to the geoclue provider we're at: 18.98, 72.83
Using method `randr'.

Depois de obter o seu Latitude e Longitude acima, vá em frente e edite o arquivo de configuração de inicialização automática para Redshift, encontrado em "~ / .config / autostart /"


maez@maez:~$ cd .config/autostart/
maez@maez:~/.config/autostart$ gedit redshift-gtk.desktop

Na janela do gedit, adicione "-l 18,98: 72,83" ao lado de "Exec = redshift-gtk"


[Desktop Entry]
Comment=Color temperature adjustment tool
StartupNotify=true
Exec=redshift-gtk -l 18.98:72.83
Terminal=false
GenericName=Color temperature adjustment
Version=1.0
Categories=Utility;
Hidden=false
Icon=redshift
Type=Application
X-GNOME-Autostart-enabled=true
Name=Redshift

onde 18,98: 72,83 é o seu LATITUDE: LONGITUTE

Salve este arquivo e reinicie.


2
Um pode apenascp /usr/share/applications/redshift.desktop ~/.config/autostart/
Gayan Weerakutti

1

Outra solução alternativa ( comentário nº 53 ) é instalar geoclue-hostip.

Embora na minha configuração (Ubuntu 13.04) a solução alternativa da posição manual funcione, e eu prefiro assim mesmo porque permite que eu indique a localização com mais precisão.


1

Uma pergunta bastante antiga, mas para quem pode se deparar com ela, uma solução possível pode ser simplesmente removendo o geoclue e - se ainda não existir - instalando o geoclue-2.0

Algo como: apt remove geoclue && apt install geoclue-2.0

Faça logout e efetue login novamente para ver as alterações.

ps se as cores não estiverem dizendo, você pode verificar se o redshift está em execução usando o pscomando por exemplops aux | grep redshift


0

Outra maneira é configurar o comando de inicialização do redshift com lon: lat especificado manualmente, como:

redshift-gtk -l xx:yy

onde xx - latitude, yy - longitude

Tela do aplicativo de inicialização:

Testado no Ubuntu 14.04LTS


0

Crie o arquivo ~/.xprofilecom o seguinte conteúdo:

#!/bin/sh
sleep 10 && redshift -PO 4200 &

O xprofile é executado no início da sessão do usuário X, após o login no shell gráfico (Unity ou Gnome).

O comando redshift -PO 4200define a temperatura para 4200K.

Você pode testar o script desconectando e fazendo login.


Por que dormir 10 segundos?
precisa saber é o seguinte

1
@KajMagnus Para ser eficaz, o desvio para o vermelho deve ser executado após a conclusão de outros processos.
golopot 26/08/18

0

Outra maneira de fazer isso:

  1. crie um arquivo de configuração, por exemplo /etc/redshift.conf

    [redshift]
    location-provider=manual
    
    [manual]
    lat=xx.xxx
    lon=yy.yyy
    
  2. crie um script que chama esse arquivo, por exemplo /usr/local/bin/redshift.sh( chmod 755depois)

    redshift -c  /etc/redshift.conf &
    
  3. chame isso sempre que o gerenciador de exibição iniciar. Para LightDM, este seria um arquivo em /etc/lightdm/lightdm.conf.d/90-redshift.conf:

    [Seat:*]
    display-setup-script=/usr/local/bin/redshift.sh
    
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.