Redshift

提供: ArchWiki
2022年11月25日 (金) 18:46時点におけるInucat (トーク | 投稿記録)による版 (Fix a link rot; from http to https)
ナビゲーションに移動 検索に移動

Redshift のプロジェクトウェブページ より:

Redshift は周りの環境に合わせて画面の色温度を調整します。夜中に画面を睨みながら仕事をしているときに目にかかるダメージを抑えることが可能です。このプログラムは f.lux からインスパイアされて開発されました [...]。
ノート: Redshift は Xorg でしか機能しません [1]Wayland はまだサポートされていません。

インストール

redshift パッケージは公式リポジトリからインストールできます。また、AURredshift-minimalAUR は出来る限り依存パッケージを少なくしたパッケージです。

Front ends

The redshift-gtk command comes with the redshift package and provides a system tray icon for controlling Redshift. See optional dependencies.

Alternatives are redshiftgui-binAUR and redshift-qtAUR, redshiftconfAUR or plasma5-applets-redshift-control-gitAUR.

設定

Redshift を起動するには最低でもあなたの所在地、つまりあなたの今いる場所の緯度と経度が必要になります。Redshift は複数のルーチンを使ってあなたのいる地点を取得します。どれも使用できない場合 (例: ヘルパープログラムが何もインストールされていない場合)、手動で位置を入力してください: ほとんどの都市/場所が wikipedia のページに載っているのでそこから位置情報を取得してください ("座標"のあるページを検索します)。

自動起動

redshift を自動的に起動する方法は2つ存在します:

  • 同梱されている systemd サービスユニットファイルを使用する (Systemd#ユニットを使うを参照)。2つのサービスファイル /usr/lib/systemd/user/redshift.service/usr/lib/systemd/user/redshift-gtk.service があるので、システムトレイアイコンがいるかどうかで、どちらか片方を有効にしてください。
ノート:
  • systemd サービスユニットファイルを使う場合は、次のページに書かれているように DISPLAY 環境変数を設定する必要があります: Systemd/ユーザー#環境変数。'drm' を設定する方法ではこの変数を設定する必要はありません。
  • redshift.service はユーザーサービスであり、ディスプレイマネージャの後に起動します。ディスプレイマネージャを使わない場合は、systemctl --user enable redshift を使ってください。
  • redshift-gtk が既に起動している場合はシステムトレイアイコンを右クリックして 'Autostart' を選択してください。

クイックスタート

ヒント: Latlong.net は緯度と経度を確認できるサービスです。

基本設定を使って Redshift を立ち上げるには、次を実行:

$ redshift -l LAT:LON

LAT はあなたの座標の緯度、LON は軽度に置き換えてください。

GPS に基づいて自動的に座標を取得

gpsd を使うことで GPS 座標を自動的に確かめて Redshift に情報を入力することもできます以下のスクリプトを作成して $lat$lonredshift -l $lat;$lon に渡します:

#!/bin/bash
date
#gpsdata=$( gpspipe -w -n 10 |   grep -m 1 lon )
gpsdata=$( gpspipe -w | grep -m 1 TPV )
lat=$( echo "$gpsdata"  | jsawk 'return this.lat' )
lon=$( echo "$gpsdata"  | jsawk 'return this.lon' )
alt=$( echo "$gpsdata"  | jsawk 'return this.alt' )
dt=$( echo "$gpsdata" | jsawk 'return this.time' )
echo "$dt"
echo "You are here: $lat, $lon at $alt"

詳しくはフォーラムスレッドの こちらの投稿 を見てください。

手動セットアップ

設定ファイル ~/.config/redshift.conf が存在する場合、Redshift はファイルを読み込みます。ただ、Redshift は設定ファイルを作成しないので、手動で作成しなくてはなりません。ドイツ/ハンブルクの例:

~/.config/redshift.conf
; Global settings for redshift
[redshift]
; Set the day and night screen temperatures (Neutral is 6500K)
temp-day=5700
temp-night=3500

; Enable/Disable a smooth transition between day and night
; 0 will cause a direct change from day to night screen temperature.
; 1 will gradually increase or decrease the screen temperature.
transition=1

; Set the screen brightness. Default is 1.0.
;brightness=0.9
; It is also possible to use different settings for day and night
; since version 1.8.
;brightness-day=0.7
;brightness-night=0.4
; Set the screen gamma (for all colors, or each color channel
; individually)
gamma=0.8
;gamma=0.8:0.7:0.8
; This can also be set individually for day and night since
; version 1.10.
;gamma-day=0.8:0.7:0.8
;gamma-night=0.6

; Set the location-provider: 'geoclue2' or 'manual'
; type 'redshift -l list' to see possible values.
; The location provider settings are in a different section.
location-provider=manual

; Set the adjustment-method: 'randr', 'vidmode'
; type 'redshift -m list' to see all possible values.
; 'randr' is the preferred method, 'vidmode' is an older API.
; but works in some cases when 'randr' does not.
; The adjustment method settings are in a different section.
adjustment-method=randr

; Configuration of the location-provider:
; type 'redshift -l PROVIDER:help' to see the settings.
; ex: 'redshift -l manual:help'
; Keep in mind that longitudes west of Greenwich (e.g. the Americas)
; are negative numbers.
[manual]
lat=48.1
lon=11.6

; Configuration of the adjustment-method
; type 'redshift -m METHOD:help' to see the settings.
; ex: 'redshift -m randr:help'
; In this example, randr is configured to adjust screen 1.
; Note that the numbering starts from 0, so this is actually the
; second screen. If this option is not specified, Redshift will try
; to adjust _all_ screens.
[randr]
screen=1

実際の画面の明るさを変える

Redshift には明るさを調整する機能がありますが、大抵の人が期待するように動作することはありません。ガンマ値を変更することによる擬似的な明度調整であり、画面の明るさが落ちることはないからです [2]

redshift のフックと xorg-xrandrxorg-xbacklight を使うことで画面の輝度を変更することが可能です。ただし制約が存在し、ハードウェアによって別の方法でバックライトを制御する必要があります。詳しくはバックライト#xbacklight を参照してください。

~/.config/redshift/hooks に以下のファイルを作成して実行可能属性を付与してください:

~/.config/redshift/hooks/brightness.sh
#!/bin/sh

# Set brightness via xbrightness when redshift status changes

# Set brightness values for each status.
# Range from 1 to 100 is valid
brightness_day="100"
brightness_transition="50"
brightness_night="10"
# Set fade time for changes to one minute
fade_time=60000

case $1 in
	period-changed)
		case $3 in
			night)
				xbacklight -set $brightness_night -time $fade_time
				;;
			transition)
				xbacklight -set $brightness_transition -time $fade_time
				;;
			daytime)
				xbacklight -set $brightness_day -time $fade_time
				;;
		esac
		;;
esac

トラブルシューティング

Screen 1 could not be found

redshift.conf 設定ファイルの "screen 1" を "screen 0" に変更してください。

トレイアイコンを左・右クリックしても何も起こらない

libappindicator-gtk3 をインストールしてください。詳しくは [3][4] を参照。

geoclue2 が原因で Redshift が動作しない

ノート: 以下の方法を使用する前に、redshift-gtk を終了して geoclue サービスを再起動してください。接続がつながるよりも前に位置サービスが起動してしまいサービスが機能しなくなることがあります。

GNOME を使っている場合、"Settings -> Privacy" から位置サービスをオンに切り替えることができます。

デフォルトでは、geoclue2 の設定ファイルは Redshift のアクセスを許可しません。以下の行を /etc/geoclue/geoclue.conf に追加してください:

/etc/geoclue/geoclue.conf
[redshift]
allowed=true
system=false
users=

i3 で自動起動しない

i3 の設定ファイルに以下を追加してください:

exec --no-startup-id redshift-gtk

参照

https://aur.archlinux.org/packages/sct/ || sctAUR