ฉันจะเริ่มต้น redshift ใหม่กับคอมพิวเตอร์ของฉันได้อย่างไร


48

ผมได้ติดตั้งบนคอมพิวเตอร์ของฉันและมันทำงานได้ดีกับคำสั่งRedshiftgtk-redshift

อย่างไรก็ตามจะไม่เริ่มต้นโดยอัตโนมัติเมื่อใช้คำสั่งเดียวกันในแอปพลิเคชันเริ่มต้น

ฉันจะตั้งให้เริ่มโดยอัตโนมัติได้อย่างไร

คำตอบ:


27

มีข้อผิดพลาดที่รู้จักกัน# 868904ที่หยุด Redshift เริ่มโดยอัตโนมัติใน 11.10 เนื่องจากความขัดแย้งทางภูมิศาสตร์ในการเริ่มต้น

ดูความคิดเห็นที่ # 17ในรายงานข้อผิดพลาดสำหรับวิธีแก้ปัญหาที่เป็นไปได้ของการตั้งค่าตำแหน่งอย่างถาวรเมื่อเริ่มต้น

1) ใช้http://itouchmap.com/latlong.htmlหรือบริการอื่น ๆ เพื่อค้นหาละติจูด / ลองจิจูดของคุณ

2) ปรับคำสั่งเริ่มต้นของ redshift เป็น: gtk-redshift -l <latitude>:<longitude>

ตัวอย่างละติจูด / ลองจิจูดของ Amsterdam สำหรับ redshift: gtk-redshift -l 52.37: 4.9

มีรายงานว่าได้รับการแก้ไขในแพคเกจ 1.7-1ubuntu2 แต่หน้าแรก Launchpad สำหรับโครงการแสดงรายการ 1.7-0ubuntu1 เท่านั้นที่สร้างขึ้นเมื่อ 35 สัปดาห์ก่อน

คุณสามารถลองดาวน์โหลดโดยตรงจากเว็บไซต์ของพวกเขาเพื่อดูว่าจะแก้ไขปัญหาด้วยรุ่นที่ใหม่กว่า


มันจะเริ่มถ้าฉันใช้วิธีนาฬิกาของ GNOME
Dandyman

ฉันไม่แน่ใจคุณสามารถลองได้ แต่ขั้นตอนที่อธิบายไว้ข้างต้นใช้ได้ผล ..
Mark Rooney

ตอนนี้ฉันได้ลองใช้ทั้ง gnome-clock และวิธี manual แล้วและมันก็จะไม่เริ่มเหมือนกัน
Dandyman

ดีถ้าคุณได้ลองวิธีการข้างต้นและมันไม่ทำงานฉันออกจากข้อเสนอแนะ อย่างที่ฉันบอกว่านี่เป็นข้อผิดพลาดใน Redshift ดังนั้นคุณอาจต้องรอให้แก้ไขได้โดยผู้พัฒนา Redshift
Mark Rooney

ปัญหานี้เกิดขึ้นกับ 14.04 และตัวเลือกที่สองของคุณทำงานได้ดีสำหรับฉัน ขอบคุณ
Ébe Isaac

14

สร้างไฟล์ชื่อredshift.confใน~/.configและเพิ่มของคุณพิกัดกับมัน มันควรจะจบลงด้วยการมองสิ่งนี้ :

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

สิ่งนี้ใช้ได้กับฉันด้วยredshift-gtkv1.7 (ตั้งค่าเป็นเริ่มอัตโนมัติ) ใน Trusty
Arch Stanton

9

ฉันขอแนะนำสองวิธี:

  1. ใช้ crontab
  2. ใช้พุ่งพรวด

crontab

Crontab เป็นโปรแกรมที่ทำงานอยู่ตลอดเวลา มีรายการพร้อมโปรแกรมและสคริปต์และวันที่หรือช่วงเวลาที่แน่นอนที่ควรรัน Crontab มีการใช้งานมากโดยผู้ดูแลระบบสำหรับการสำรองข้อมูลและทำงานอัตโนมัติ

หากต้องการดูรายการด้วยโปรแกรมที่คุณสามารถพิมพ์

crontab -l

เพื่อแก้ไขประเภทรายการ

crontab -e

เพิ่มบรรทัดนี้ในตอนท้ายเพื่อบูต redshift เมื่อใดก็ตามที่คอมพิวเตอร์เริ่มทำงาน

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

โดยที่ 56.20: 16.35 เป็นที่LATITUDE:LONGITUTEตั้งของคุณ บันทึกและรีบูต

พุ่งพรวด

พุ่งพรวดเป็นโปรแกรมที่เหนือสิ่งอื่นใดมองในโฟลเดอร์ที่เฉพาะเจาะจงที่บูตสำหรับสคริปต์ที่จะทำงาน ดังนั้นเราสามารถเพิ่มโปรแกรมของเราเพื่อให้มันทำงานในทุก booutup พุ่งพรวดเป็นระดับต่ำกว่า crontab และคุณต้องการสิทธิ์พิเศษ

ในการเพิ่ม redshift คุณเพียงแค่ต้องแก้ไข/etc/rc.localไฟล์ เพิ่มเส้นทางไปยัง Redshift ก่อน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

บันทึกและรีบูต


ใน Ubuntu 14.04 ของฉันไม่มีวิธีการทำงาน โดยเฉพาะอย่างยิ่งกับวิธี crontab ฉันเห็นได้syslogว่าคำสั่งรันไม่มีข้อความแสดงข้อผิดพลาด แต่กระบวนการหายไปเมื่อหน้าจอเวลาลงชื่อเข้าใช้ (นั่นคือไม่มีเอฟเฟกต์การมองเห็นของ Redshift ที่ทำงานอยู่และหลังจากเข้าสู่ระบบฉันสามารถยืนยันได้ว่าไม่มีกระบวนการ redshift ที่ทำงานอยู่จริง)
Raphael

1
โพสต์นี้แสดงให้เห็นว่าทั้งสองวิธีที่คุณเสนอนั้นได้รับการล้มเหลว คุณยืนยันว่าพวกเขาใช้งานได้จริง (ในการตั้งค่ามากกว่าหนึ่งรายการ) หรือไม่ ตัวอย่างเช่นฉันตรวจสอบแล้วว่า $ DISPLAY เป็นบางครั้ง:0และบางครั้ง:0.0สำหรับฉันดังนั้นฉันจะ hardcode ค่าได้อย่างไร
Raphael

ควรตรวจสอบว่ามันใช้งานได้จริงหรือไม่ ตามที่ความคิดเห็นของ @Raphael กล่าวว่าสิ่งนี้ไม่ทำงานเลย ตอนนี้ฉันไม่สามารถลบการโหวตของฉันได้! 😒
jamadagni

2

เชื่อมต่อคอมพิวเตอร์ของคุณกับอินเทอร์เน็ตและรันgtk-redshiftใน Terminal

ผลลัพธ์จะเป็น:


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

เมื่อคุณได้รับ Latitude และลองจิจูดจากด้านบนไปข้างหน้าและแก้ไขไฟล์ autostart config สำหรับ 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

บันทึกไฟล์นี้และรีบูต


2
สามารถทำได้cp /usr/share/applications/redshift.desktop ~/.config/autostart/
Gayan Weerakutti

1

Antoher วิธีแก้ปัญหา ( ความคิดเห็นที่ 53 ) geoclue-hostipคือการติดตั้ง

แม้ว่าในการตั้งค่าของฉัน (Ubuntu 13.04) การแก้ปัญหาตำแหน่งด้วยตนเองทำงานได้และฉันก็ชอบอยู่ดีเพราะช่วยให้ฉันระบุตำแหน่งได้แม่นยำยิ่งขึ้น


1

ค่อนข้างคำถามเก่า แต่สำหรับผู้ที่อาจสะดุดมันทางออกที่เป็นไปได้อาจเพียงแค่ลบ geoclue และ - ถ้ามันไม่ได้อยู่ - ติดตั้ง geoclue-2.0

สิ่งที่ต้องการ: apt remove geoclue && apt install geoclue-2.0

ออกจากระบบและกลับเข้าสู่ระบบเพื่อดูการเปลี่ยนแปลง

ป.ล. ถ้าสีไม่ได้บอกคุณสามารถตรวจสอบว่า redshift กำลังทำงานโดยใช้psคำสั่ง เช่นps aux | grep redshift


0

อีกวิธีหนึ่งคือการตั้งค่าคำสั่งเริ่มต้นสำหรับ redshift ด้วย lon ที่ระบุด้วยตนเอง: lat like:

redshift-gtk -l xx:yy

โดยที่ xx - ละติจูด, yy - ลองจิจูด

หน้าจอแอปพลิเคชันเริ่มต้น:

ทดสอบกับ Ubuntu 14.04LTS


0

สร้างไฟล์~/.xprofileด้วยเนื้อหาดังต่อไปนี้:

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

xprofileจะถูกดำเนินการในช่วงต้นของเซสชั่นการใช้ X หลังจากที่คุณเข้าสู่เปลือกกราฟิก (Unity หรือ Gnome)

คำสั่งredshift -PO 4200ตั้งค่าอุณหภูมิเป็น 4200K

คุณสามารถทดสอบสคริปต์ได้โดยออกจากระบบแล้วเข้าสู่ระบบ


ทำไมต้องนอน 10 วินาที
KajMagnus

1
@KajMagnus เพื่อให้มีประสิทธิภาพ redshift ควรรันหลังจากกระบวนการอื่นเสร็จสิ้น
golopot

0

อีกวิธีในการทำ:

  1. สร้างไฟล์ปรับแต่งเช่น /etc/redshift.conf

    [redshift]
    location-provider=manual
    
    [manual]
    lat=xx.xxx
    lon=yy.yyy
    
  2. สร้างสคริปต์ที่เรียกไฟล์นี้เช่น/usr/local/bin/redshift.sh( chmod 755หลังจากนั้น)

    redshift -c  /etc/redshift.conf &
    
  3. เรียกสิ่งนี้เมื่อใดก็ตามที่ตัวจัดการการแสดงผลเริ่มต้น สำหรับ LightDM นี่จะเป็นไฟล์ที่/etc/lightdm/lightdm.conf.d/90-redshift.conf:

    [Seat:*]
    display-setup-script=/usr/local/bin/redshift.sh
    
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.