Jak uzyskać zmianę biegów na czerwoną, aby rozpocząć pracę z komputerem?

48

Zainstalowałem Redshiftna swoim komputerze i działa dobrze z poleceniem gtk-redshift.

Jednak nie uruchomi się automatycznie, gdy użyjesz tego samego polecenia w aplikacjach startowych.

Jak ustawić automatyczne uruchamianie?

Dandyman
źródło

Odpowiedzi:

27

Znany jest błąd # 868904, który zatrzymuje Redshift uruchamiany automatycznie w 11.10 z powodu konfliktów geoclue podczas uruchamiania.

Zobacz komentarz # 17 do raportu o błędzie, aby znaleźć możliwe rozwiązanie ustawienia lokalizacji na stałe przy uruchomieniu.

1) Użyj http://itouchmap.com/latlong.html lub innej usługi, aby znaleźć szerokość i długość geograficzną

2) Dostosuj komendę uruchamiania redshift do: gtk-redshift -l <latitude>:<longitude>

Przykład szerokości / długości geograficznej Amsterdamu dla przesunięcia ku czerwieni: gtk-redshift -l 52,37: 4,9

Podobno jest to naprawione w pakiecie 1.7-1ubuntu2, ale strona główna Launchpad dla projektu zawiera tylko 1.7-0ubuntu1 zbudowane 35 tygodni temu.

Możesz spróbować pobrać bezpośrednio z ich witryny, aby sprawdzić, czy to rozwiązuje problem z późniejszą wersją.

Mark Rooney
źródło
zacznie się, gdybym użył metody zegara GNOME?
Dandyman
Nie jestem pewien, możesz spróbować, ale kroki opisane powyżej najwyraźniej działają ..
Mark Rooney
Próbowałem teraz zarówno przy użyciu zegara
gnomowego
Cóż, jeśli wypróbowałeś powyższą metodę i nie działa, nie mam sugestii. Jak powiedziałem, jest to błąd w Redshift, więc być może będziesz musiał poczekać, aż problem zostanie rozwiązany przez programistę Redshift.
Mark Rooney
Ten problem występuje również w wersji 14.04, a druga opcja działała dla mnie dobrze. Dzięki.
Ébe Isaac
14

Utwórz plik o nazwie redshift.confin ~/.configi dodaj do niego swoje współrzędne. Powinno to wyglądać mniej więcej tak :

[redshift]
location-provider=manual
[manual]
lat=55.0
lon=12.0
George P. Burdell
źródło
Działa to dla mnie z redshift-gtkwersją 1.7 (ustawioną na autostart) na Trusty.
Arch Stanton
9

Sugerowałbym dwa sposoby:

  1. Korzystanie z crontab
  2. Korzystanie z upstart

CRONTAB

Crontab to program, który działa cały czas. Zawiera listę programów i skryptów oraz dokładne daty lub odstępy czasu, które powinny być uruchamiane. Crontab jest często używany przez administratorów systemu do tworzenia kopii zapasowych i automatyzacji zadań.

Aby zobaczyć listę z programami, które możesz wpisać

crontab -l

Aby edytować typ listy

crontab -e

Dodaj tę linię na końcu, aby uruchomić redshift przy każdym uruchomieniu komputera

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

gdzie 56,20: 16,35 jest LATITUDE:LONGITUTEmiejscem Twojej lokalizacji. Zapisz i uruchom ponownie.

DOROBKIEWICZ

Upstart to program, który podczas uruchamiania szuka w określonych folderach skryptów do uruchomienia. Możemy więc po prostu dodać tam nasz program, aby działał przy każdym booutup. Upstart jest bardziej niski niż crontab i potrzebujesz uprawnień roota.

Aby dodać przesunięcie ku czerwieni, wystarczy edytować /etc/rc.localplik. Dodaj ścieżkę do przesunięcia ku czerwieni przedexit w pliku albo nie będzie działać. Ścieżkę można znaleźć, pisząc whereis redshift. Plik powinien wyglądać podobnie do tego:

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

Zapisz i uruchom ponownie.

Pithikos
źródło
W moim Ubuntu 14.04 żadne podejście nie działa. W szczególności w przypadku metody crontab widzę, syslogże polecenie zostało uruchomione, nie pojawia się komunikat o błędzie, ale proces kończy się, gdy pojawia się ekran logowania. (Oznacza to, że nie ma wizualnego efektu działania Redshift, a po zalogowaniu mogę potwierdzić, że faktycznie nie ma uruchomionego procesu redshift.)
Raphael
1
Ten post sugeruje, że oba proponowane przez ciebie podejścia są skazane na niepowodzenie. Czy faktycznie potwierdziłeś, że działają (w więcej niż jednej konfiguracji)? Na przykład sprawdziłem, że $ DISPLAY jest czasem, :0a czasem :0.0dla mnie, więc jak mogę na stałe zakodować wartość?
Raphael
Powinienem był sprawdzić, czy to rzeczywiście działa przed upvotingiem. Jak mówi komentarz @Raphael, to wcale nie działa. Teraz nie mogę usunąć mojej opinii! 😒
jamadagni
2

Podłącz komputer do Internetu i uruchom gtk-redshiftw terminalu.

Dane wyjściowe będą:


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

Po uzyskaniu szerokości i długości geograficznej z góry, edytuj plik konfiguracyjny autostartu dla Redshift, który znajduje się w „~ / .config / autostart /”


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

W oknie gedit dodaj „-l 18.98: 72.83” obok „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

gdzie 18,98: 72,83 to Twoja LATITUDE: LONGITUTE

Zapisz ten plik i uruchom ponownie.

Sairaj Chavan
źródło
2
Można po prostucp /usr/share/applications/redshift.desktop ~/.config/autostart/
Gayan Weerakutti
1

Obejściem Antoher ( komentarz nr 53 ) jest instalacja geoclue-hostip.

Mimo że w mojej konfiguracji (Ubuntu 13.04) ręczne obejście pozycji działa, i tak wolę, ponieważ pozwala mi precyzyjniej wskazać lokalizację.

LeartS
źródło
1

Całkiem stare pytanie, ale dla tych, którzy mogą się na niego natknąć, możliwym rozwiązaniem może być po prostu usunięcie geoclue i - jeśli jeszcze nie istnieje - zainstalowanie geoclue-2.0

Coś jak: apt remove geoclue && apt install geoclue-2.0

Wyloguj się i zaloguj ponownie, aby zobaczyć zmiany.

ps, jeśli kolory nie mówią, możesz sprawdzić, czy działa przesunięcie ku czerwieni za pomocą pspolecenia. na przykładps aux | grep redshift

Galilyou
źródło
0

Innym sposobem jest skonfigurowanie komendy uruchamiania dla redshift z ręcznie określonym lon: lat jak:

redshift-gtk -l xx:yy

gdzie xx - szerokość, yy - długość

Ekran startowy aplikacji:

Testowane na Ubuntu 14.04LTS

samodzielny
źródło
0

Utwórz plik ~/.xprofileo następującej treści:

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

Plik xprofile jest wykonywany na początku sesji użytkownika X, po zalogowaniu się do powłoki graficznej (Unity lub Gnome).

Polecenie redshift -PO 4200ustawia temperaturę na 4200 K.

Możesz przetestować skrypt, wylogowując się, a następnie logując.

golopot
źródło
Po co spać 10 sekund?
KajMagnus,
1
@KajMagnus Aby działać, redshift należy uruchomić po zakończeniu innych procesów.
gołopot
0

Innym sposobem na to:

  1. utwórz plik konfiguracyjny, np /etc/redshift.conf

    [redshift]
    location-provider=manual
    
    [manual]
    lat=xx.xxx
    lon=yy.yyy
    
  2. utwórz skrypt wywołujący ten plik, np. /usr/local/bin/redshift.sh( chmod 755później)

    redshift -c  /etc/redshift.conf &
    
  3. wywołaj to przy każdym uruchomieniu menedżera wyświetlania. W przypadku LightDM byłby to plik /etc/lightdm/lightdm.conf.d/90-redshift.conf:

    [Seat:*]
    display-setup-script=/usr/local/bin/redshift.sh
    
serv-inc
źródło