Come posso ottenere redshift per iniziare con il mio computer?


48

Ho installato Redshiftsul mio computer e funziona bene con il comando gtk-redshift.

Tuttavia, non si avvia automaticamente quando si utilizza lo stesso comando nelle applicazioni di avvio.

Come posso impostarlo per l'avvio automatico?

Risposte:


27

Esiste un bug noto # 868904 che interrompe l'avvio automatico di Redshift in 11.10 a causa di conflitti di geoclue all'avvio.

Vedere il commento n. 17 sulla segnalazione di bug per una possibile soluzione di impostazione permanente della posizione all'avvio.

1) Usa http://itouchoforte/latlong.html o qualsiasi altro servizio per trovare la tua latitudine / longitudine

2) Regola il comando di avvio di redshift su: gtk-redshift -l <latitude>:<longitude>

Esempio di latitudine / longitudine di Amsterdam per redshift: gtk-redshift -l 52.37: 4.9

Secondo quanto riferito, è stato risolto nel pacchetto 1.7-1ubuntu2 ma la homepage di Launchpad per il progetto elenca solo 1.7-0ubuntu1 costruita 35 settimane fa.

Puoi provare a scaricare direttamente dal loro sito Web per vedere se risolve il problema con una versione successiva.


inizierebbe se usassi il metodo GNOME-clock?
Dandyman

Non sono sicuro, potresti provarlo, ma i passaggi descritti sopra sembrano funzionare ...
Mark Rooney

Ora l'ho provato sia con il gnome-clock che con i metodi manuali, e non si avvia nemmeno su
Dandyman

Bene, se hai provato il metodo sopra e non funziona, non ho suggerimenti. Come ho già detto, questo è un bug in Redshift, quindi potresti semplicemente aspettare che venga risolto dallo sviluppatore di Redshift.
Mark Rooney,

Questo problema si verifica anche con 14.04 e la tua seconda opzione ha funzionato bene per me. Grazie.
Ébe Isaac,

14

Creare un file denominato redshift.confin ~/.confige aggiungi le coordinate ad esso. Dovrebbe finire per assomigliare a questo :

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

Questo ha funzionato per me con redshift-gtkv1.7 (impostato su avvio automatico) su Trusty.
Arch Stanton,

9

Suggerirei due modi:

  1. Usando crontab
  2. Utilizzando upstart

CRONTAB

Crontab è un programma che è sempre in esecuzione. Ha un elenco con programmi e script e le date o gli intervalli esatti che devono essere eseguiti. Crontab è molto utilizzato dagli amministratori di sistema per eseguire backup e automatizzare le attività.

Per visualizzare l'elenco con i programmi è possibile digitare

crontab -l

Per modificare il tipo di elenco

crontab -e

Aggiungi questa linea alla fine, per avviare redshift ogni volta che il computer si avvia

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

dove 56.20: 16.35 è il LATITUDE:LONGITUTEluogo in cui ti trovi. Salva e riavvia.

parvenu

Upstart è un programma che, tra le altre cose, cerca le cartelle specifiche all'avvio per eseguire gli script. Quindi possiamo semplicemente aggiungere il nostro programma lì dentro per farlo funzionare ad ogni avvio. Upstart è più di basso livello di crontab e hai bisogno dei privilegi di root.

Per aggiungere redshift devi semplicemente modificare il /etc/rc.localfile. Aggiungere il percorso al redshift prima che il exitnel file altrimenti non funzionerà. Puoi trovare il percorso digitando whereis redshift. Il file dovrebbe essere simile al seguente:

#!/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

Salva e riavvia.


Sul mio Ubuntu 14.04, nessuno dei due approcci funziona. In particolare con l'approccio crontab, vedo syslogche il comando è in esecuzione, non c'è nessun messaggio di errore, ma il processo è terminato quando viene visualizzata la schermata di accesso. (Cioè, non c'è alcun effetto visivo di Redshift in esecuzione, e dopo il login posso confermare che non c'è davvero alcun processo di redshift in esecuzione.)
Raphael

1
Questo post suggerisce che entrambi gli approcci che proponi sono destinati a fallire. Hai effettivamente confermato che funzionano (in più di una configurazione)? Ad esempio, ho verificato che $ DISPLAY è a volte :0e talvolta :0.0per me, quindi come posso codificare un valore?
Raffaello,

Avrei dovuto verificare se funziona davvero prima di effettuare l'upgrade. Come dice il commento di @Raphael, questo non funziona affatto. Ora non riesco a rimuovere il mio voto! 😒
jamadagni,

2

Collega il tuo computer a Internet ed eseguilo gtk-redshiftnel Terminale.

L'output sarà:


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'.

Una volta ottenuti Latitudine e Longitudine dall'alto, vai avanti e modifica il file di configurazione di avvio automatico per Redshift, che si trova in "~ / .config / autostart /"


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

Nella finestra di gedit aggiungi "-l 18.98: 72.83" accanto a "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

dove 18.98: 72.83 è il tuo LATITUDINE: LONGITUTO

Salva questo file e riavvia.


2
Si può solocp /usr/share/applications/redshift.desktop ~/.config/autostart/
Gayan Weerakutti,

1

Un'altra soluzione alternativa ( commento n. 53 ) è l'installazione geoclue-hostip.

Anche se sulla mia installazione (Ubuntu 13.04) la soluzione manuale di posizione funziona, e lo preferisco comunque perché mi consente di indicare la posizione in modo più preciso.


1

Piuttosto una vecchia domanda, ma per coloro che potrebbero inciampare su di essa, una possibile soluzione potrebbe essere semplicemente rimuovendo geoclue e, se non esiste già, installando geoclue-2.0

Qualcosa di simile a: apt remove geoclue && apt install geoclue-2.0

Disconnettersi e riconnettersi per vedere le modifiche.

ps se i colori non lo dicono, puoi controllare se redshift è in esecuzione usando il pscomando. per esempiops aux | grep redshift


0

Un altro modo è impostare il comando di avvio per redshift con lon: lat specificato manualmente come:

redshift-gtk -l xx:yy

dove xx - latitudine, yy - longitudine

Schermata dell'applicazione di avvio:

Testato su Ubuntu 14.04LTS


0

Creare il file ~/.xprofilecon il seguente contenuto:

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

Il file xprofile viene eseguito all'inizio della sessione utente X, dopo aver effettuato l'accesso alla shell grafica (Unity o Gnome).

Il comando redshift -PO 4200imposta la temperatura su 4200 K.

È possibile testare lo script disconnettendosi e quindi accedendo.


Perché dormire 10 secondi?
KajMagnus,

1
@KajMagnus Per essere efficace, il redshift dovrebbe essere eseguito dopo che altri processi sono terminati.
golopot,

0

Un altro modo per farlo:

  1. creare un file di configurazione, ad es /etc/redshift.conf

    [redshift]
    location-provider=manual
    
    [manual]
    lat=xx.xxx
    lon=yy.yyy
    
  2. creare uno script che chiama questo file, ad es. /usr/local/bin/redshift.sh(in chmod 755seguito)

    redshift -c  /etc/redshift.conf &
    
  3. chiamare questo ogni volta che viene avviato il display manager. Per LightDM, questo sarebbe un file in /etc/lightdm/lightdm.conf.d/90-redshift.conf:

    [Seat:*]
    display-setup-script=/usr/local/bin/redshift.sh
    
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.