blob: 5a655c8ee961f57c7d0250c8ac38b496249f2165 (
about) (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
;;; redshift.el --- Emacs interface to Redshift
;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;; Author: Oleg Pykhalov <go.wigust@gmail.com>
;; Version: 0.0.1
;; URL: https://wigust.github.io/emacs-redshift/
;; Keywords: tools
;; Package-Requires: ((emacs "24.3")
;; This file is part of Emacs-Redshift.
;; Emacs-Redshift is free software; you can redistribute it
;; and/or modify it under the terms of the GNU General Public License
;; as published by the Free Software Foundation, either version 3 of
;; the License, or (at your option) any later version.
;;
;; Emacs-Redshift is distributed in the hope that it will be
;; useful, but WITHOUT ANY WARRANTY; without even the implied warranty
;; of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;;
;; You should have received a copy of the GNU General Public License
;; along with Emacs-Redshift.
;; If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
;; This file provides functions to control Redshift. It allows you:
;;
;; - to decrease a display temperature with `redshift-decrease-temp';
;;
;; - to increase a display temperature with `redshift-increase-temp';
;;
;; - to set a display temperature with `redshift-set-temp'.
;;; Code:
(defvar redshift-temp 5500 "Display color temperature")
(defcustom redshift-temp-increment 500
"Display color temperature increment."
:type 'number
:group 'redshift)
(defcustom redshift-program "redshift"
"The name by which to invoke Redshift."
:type 'string
:group 'redshift)
;;;###autoload
(defun redshift-set-temp (temp)
"Set display color temperature of display to TEMP and return TEMP."
(interactive "nColor temperature: ")
(progn (start-process "redshift" nil redshift-program
"-x")
(sleep-for 0.5)
(start-process "redshift" nil redshift-program
"-O" (number-to-string temp))
temp))
;;;###autoload
(defun redshift-increase-temp ()
"Increase display color temperature of display to TEMP."
(interactive)
(setq redshift-temp
(redshift-set-temp (+ redshift-temp
redshift-temp-increment))))
;;;###autoload
(defun redshift-decrease-temp ()
"Decrease display color temperature of display to TEMP."
(interactive)
(setq redshift-temp
(redshift-set-temp (- redshift-temp
redshift-temp-increment))))
(provide 'redshift)
;;; redshift.el ends here
|