Comment puis-je obtenir redshift pour démarrer avec mon ordinateur?

48

J'ai installé Redshiftsur mon ordinateur et cela fonctionne bien avec la commande gtk-redshift.

Cependant, il ne pourrait pas démarrer automatiquement si la même commande était utilisée dans les applications de démarrage.

Comment puis-je le configurer pour qu'il démarre automatiquement?

Dandyman
la source

Réponses:

27

Il existe un bogue connu n ° 868904 qui empêche Redshift de démarrer automatiquement dans 11.10 en raison de conflits de géoclue au démarrage.

Voir le commentaire n ° 17 sur le rapport de bogue pour une solution possible consistant à définir l'emplacement de manière permanente au démarrage.

1) Utilisez http://itouch_button/latlong.html ou tout autre service pour trouver votre latitude / longitude.

2) Ajustez la commande de démarrage de redshift sur: gtk-redshift -l <latitude>:<longitude>

Exemple de latitude / longitude d’Amsterdam pour redshift: gtk-redshift -l 52.37: 4.9

Il est apparemment corrigé dans le package 1.7-1ubuntu2, mais la page d'accueil Launchpad du projet répertorie uniquement les versions 1.7-0ubuntu1 créées il y a 35 semaines.

Vous pouvez essayer de télécharger directement depuis leur site Web pour voir s’il résout le problème avec une version ultérieure.

Mark Rooney
la source
cela commencerait-il si j'utilisais la méthode GNOME-clock?
Dandyman
Je ne suis pas sûr. Vous pouvez l'essayer, mais les étapes décrites ci-dessus semblent fonctionner.
Mark Rooney
Je l'ai maintenant essayé avec les méthodes manuelles gnome-clock et manuelles, et cela ne démarrera pas non plus
Dandyman
Eh bien, si vous avez essayé la méthode ci-dessus et que cela ne fonctionne pas, je suis à court de suggestions. Comme je l’ai dit, il s’agit d’un bogue dans Redshift, vous devrez donc peut-être attendre que le développeur Redshift le résolve.
Mark Rooney
Ce problème se produit également avec 14.04 et votre deuxième option a bien fonctionné pour moi. Merci.
Ébe Isaac
14

Créez un fichier nommé redshift.confdans ~/.configet ajoutez vos coordonnées à lui. Cela devrait ressembler à quelque chose comme ça :

[redshift]
location-provider=manual
[manual]
lat=55.0
lon=12.0
George P. Burdell
la source
Cela a fonctionné pour moi avec redshift-gtkv1.7 (défini sur autostart) sur Trusty.
Arch Stanton le
9

Je suggérerais deux manières:

  1. Utilisation de crontab
  2. Utiliser par la suite

CRONTAB

Crontab est un programme qui tourne tout le temps. Il contient une liste de programmes et de scripts, ainsi que les dates exactes ou les intervalles qu’ils doivent exécuter. Crontab est très utilisé par les administrateurs système pour effectuer des sauvegardes et automatiser des tâches.

Pour voir la liste des programmes que vous pouvez taper

crontab -l

Pour éditer le type de liste

crontab -e

Ajouter cette ligne à la fin, pour démarrer redshift au démarrage de l'ordinateur

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

où 56.20: 16.35 est le LATITUDE:LONGITUTElieu où vous vous trouvez. Enregistrez et redémarrez.

PARVENU

Upstart est un programme qui, entre autres choses, recherche dans des dossiers spécifiques au démarrage les scripts à exécuter. Donc, nous pouvons simplement ajouter notre programme ici pour le faire fonctionner à chaque démarrage. Upstart est plus bas que crontab et vous avez besoin de privilèges root.

Pour ajouter du redshift, il vous suffit de modifier le /etc/rc.localfichier. Ajoutez le chemin à redshift avant le exitdans le fichier sinon il ne fonctionnera pas. Vous pouvez trouver le chemin en tapant whereis redshift. Le fichier devrait ressembler à ceci:

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

Enregistrez et redémarrez.

Pithikos
la source
Sur mon Ubuntu 14.04, aucune approche ne fonctionne. En particulier avec l'approche crontab, je peux voir syslogque la commande est exécutée, il n'y a pas de message d'erreur, mais le processus est terminé lorsque l'écran de connexion s'affiche. (Autrement dit, il n'y a pas d' effet visuel de Redshift en cours d' exécution, et après la connexion , je peux confirmer qu'il n'y a en effet pas de processus de redshift en marche.)
Raphael
1
Cet article suggère que les deux approches que vous proposez sont vouées à l'échec. Avez-vous réellement confirmé leur efficacité (dans plusieurs configurations)? Par exemple, j'ai vérifié que $ DISPLAY est parfois :0et parfois :0.0pour moi, alors comment puis-je coder en dur une valeur?
Raphael
Aurait dû vérifier si cela fonctionne réellement avant le vote vers le haut. Comme le dit le commentaire de @Raphael, cela ne fonctionne pas du tout. Maintenant, je ne peux pas retirer mon vote positif! 😒
Jamadagni
2

Connectez votre ordinateur à Internet et exécutez-le gtk-redshiftdans Terminal.

La sortie sera:


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

Une fois que vous avez obtenu votre latitude et votre longitude par le haut, continuez et modifiez le fichier de configuration autostart pour Redshift, qui se trouve dans "~ / .config / autostart /"


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

Dans la fenêtre gedit, ajoutez "-l 18.98: 72.83" à côté 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

18.98: 72.83 est votre LATITUDE: LONGITUTE

Enregistrez ce fichier et redémarrez.

Sairaj Chavan
la source
2
On peut justecp /usr/share/applications/redshift.desktop ~/.config/autostart/
Gayan Weerakutti le
1

Une autre solution ( commentaire n ° 53 ) est à installer geoclue-hostip.

Même si, dans ma configuration (Ubuntu 13.04), la solution de contournement manuel de la position fonctionne et je la préfère quand même car elle me permet d’indiquer plus précisément la position.

Apprentissage
la source
1

C'est une vieille question, mais pour ceux qui pourraient tomber sur elle, une solution possible pourrait simplement être de supprimer geoclue et - si elle n'existe pas déjà - d'installer geoclue-2.0

Quelque chose comme: apt remove geoclue && apt install geoclue-2.0

Déconnectez-vous et reconnectez-vous pour voir les modifications.

ps si les couleurs ne disent pas, vous pouvez vérifier si redshift est en cours d'exécution en utilisant la pscommande. par exempleps aux | grep redshift

Galilyou
la source
0

Une autre solution consiste à configurer la commande de démarrage pour redshift avec lon: lat spécifié manuellement, comme suit:

redshift-gtk -l xx:yy

où xx - latitude, yy - longitude

Écran d'application de démarrage:

Testé sur Ubuntu 14.04LTS

rester seul
la source
0

Créez le fichier ~/.xprofileavec le contenu suivant:

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

Le fichier xprofile est exécuté au début de la session utilisateur X, une fois que vous vous êtes connecté au shell graphique (Unity ou Gnome).

La commande redshift -PO 4200définit la température sur 4200K.

Vous pouvez tester le script en vous déconnectant, puis en vous connectant.

Golopot
la source
Pourquoi dormir 10 secondes?
KajMagnus
1
@KajMagnus Pour être efficace, redshift doit être exécuté après la fin de certains processus.
Golopot
0

Une autre façon de le faire:

  1. créer un fichier de configuration, par exemple /etc/redshift.conf

    [redshift]
    location-provider=manual
    
    [manual]
    lat=xx.xxx
    lon=yy.yyy
    
  2. créer un script qui appelle ce fichier, par exemple /usr/local/bin/redshift.sh( chmod 755après)

    redshift -c  /etc/redshift.conf &
    
  3. appelez-le chaque fois que le gestionnaire d'affichage démarre. Pour LightDM, il s’agit d’un fichier situé à /etc/lightdm/lightdm.conf.d/90-redshift.conf:

    [Seat:*]
    display-setup-script=/usr/local/bin/redshift.sh
    
serv-inc
la source