Я установил Redshift
на свой компьютер, и он отлично работает с командой gtk-redshift
.
Однако, он не запустится автоматически при использовании той же команды в автозагрузке приложений.
Как настроить автоматический запуск?
Я бы предложил два пути:
CRONTAB
Crontab - это программа, которая работает постоянно. У него есть список с программами и скриптами и точными датами или интервалами, которые они должны выполнить. Crontab часто используется системными администраторами для создания резервных копий и автоматизации задач.
Чтобы увидеть список с программами, вы можете набрать
crontab -l
Для редактирования типа списка
crontab -e
Добавить эту строку в конце, чтобы загружать красное смещение всякий раз, когда компьютер запускается
@reboot export DISPLAY=:0.0 && /usr/bin/redshift -l 56.20:16.35
, где 56.20: 16.35 - это LATITUDE:LONGITUTE
вашего местоположения. Сохраните и перезагрузитесь.
UPSTART
Upstart - это программа, которая, помимо прочего, ищет в определенных папках при загрузке сценарии для запуска. Таким образом, мы можем просто добавить нашу программу, чтобы она запускалась при каждом запуске. Upstart более низкого уровня, чем crontab, и вам нужны привилегии root.
Чтобы добавить красное смещение, вам просто нужно отредактировать файл /etc/rc.local
. Добавьте путь к красному смещению перед exit
в файле, иначе он не будет работать. Вы можете найти путь, набрав whereis redshift
. Файл должен выглядеть примерно так:
#!/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
Сохраните и перезагрузитесь.
Подключите компьютер к Интернету и запустите gtk-redshift
в Терминале.
Вывод будет:
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'.
Как только вы получите широту и долготу сверху, идите вперед и отредактируйте файл конфигурации автозапуска для Redshift, который находится в "~ / .config / autostart /"
maez@maez:~$ cd .config/autostart/
maez@maez:~/.config/autostart$ gedit redshift-gtk.desktop
В окне gedit добавьте «-l 18.98: 72.83» рядом с «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 - это ваш LATITUDE: LONGITUTE
Сохраните этот файл и перезагрузитесь.
Создайте файл с именем redshift.conf
в ~/.config
и добавьте в него свои координаты. В итоге должно получиться что-то похожее на :
[redshift]
location-provider=manual
[manual]
lat=55.0
lon=12.0
Существует известная ошибка # 868904 , из-за которой Redshift не запускается автоматически в 11.10 из-за конфликтов геоклика при запуске.
См. Комментарий № 17 к сообщению об ошибке для возможного решения постоянной установки местоположения при запуске.
1) Используйте http://itouchmap.com/latlong.html или любую другую службу, чтобы найти широту / долготу
2) Настройте запуск команда redshift to:
gtk-redshift -l <latitude>:<longitude>
Пример широты / долготы Амстердама для красного смещения: gtk-redshift -l 52.37: 4.9
blockquote> blockquote>Сообщается, что исправлено в пакете 1.7-1ubuntu2, но домашняя страница Launchpad для проекта содержит только 1.7-0ubuntu1, созданный 35 недель назад.
Вы можете попробовать загрузить напрямую с их веб-сайта , чтобы посмотреть, решит ли он проблему с более поздней версией.
Обходной путь Antoher ( комментарий # 53 ) - установить geoclue-hostip
.
Несмотря на то, что в моей настройке (Ubuntu 13.04) обходной путь позиционирования работает, я все равно предпочитаю его, потому что он позволяет точнее указывать местоположение.
Еще один способ - установить команду запуска для красного смещения с указанным вручную lon: lat like:
redshift-gtk -l xx:yy
где xx - широта, yy - долгота
Экран запуска приложения: [ 111]
Проверено на Ubuntu 14.04LTS
Другой способ сделать это:
создать файл конфигурации, например, /etc/redshift.conf
[redshift]
location-provider=manual
[manual]
lat=xx.xxx
lon=yy.yyy
создать скрипт, который вызывает этот файл, например, /usr/local/bin/redshift.sh
(chmod 755
впоследствии)
redshift -c /etc/redshift.conf &
вызывают это всякий раз, когда запускается менеджер дисплея. Для LightDM это будет файл в /etc/lightdm/lightdm.conf.d/90-redshift.conf
:
[Seat:*]
display-setup-script=/usr/local/bin/redshift.sh
Вполне старый вопрос, но для тех, кто мог бы наткнуться на него, возможное решение, может просто быть путем удаления геоподсказки и - если это уже не существует - установка геоподсказки 2.0
Что-то как: apt remove geoclue && apt install geoclue-2.0
Выйдите из системы и войдите в видеть изменения.
p.s., если цвета не говорят, можно проверить, выполняет ли красное смещение использование ps
команда. например. ps aux | grep redshift
Создайте файл ~/.xprofile
со следующим содержимым:
#!/bin/sh
sleep 10 && redshift -PO 4200 &
xprofile выполняется в начале сеанса пользователя X, после входа в графическую оболочку (Единство или Гном).
Команда redshift -PO 4200
устанавливает температуру на 4200K.
Вы можете проверить скрипт, выйдя из системы, а затем войдя в нее.