5785a5d126
If you refer to the previous commit where I change shell-command usages to start-process function calls, you'll see the rationale for why I prefer start-process. This commit introduces a more ergonomic API for start-process that fits most of my current use-cases of it. This cleans up the code. I have introduced a bug in the way that I'm tokenizing the COMMAND value. I've tracked that with a TODO. For now it only affects the `xmodmap -e '<command-string>'` calls, which isn't too disruptive.
54 lines
1.9 KiB
EmacsLisp
54 lines
1.9 KiB
EmacsLisp
;;; screen-brightness.el --- Control laptop screen brightness -*- lexical-binding: t -*-
|
|
;; Author: William Carroll <wpcarro@gmail.com>
|
|
|
|
;;; Commentary:
|
|
;; Mainly just Elisp wrappers around `xbacklight`.
|
|
|
|
;;; Code:
|
|
|
|
;; TODO: Define some isomorphisms. E.g. int->string, string->int.
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;; Dependencies
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
(require 'prelude)
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;; Constants
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
(defconst screen-brightness/step-size 15
|
|
"The size of the increment or decrement step for the screen's brightness.")
|
|
|
|
(defcustom screen-brightness/install-kbds? t
|
|
"If t, install the keybindings to control screen brightness.")
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;; Library
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
(defun screen-brightness/increase ()
|
|
"Increase the screen brightness."
|
|
(interactive)
|
|
(prelude/start-process
|
|
:name "screen-brightness/increase"
|
|
:command (string/format "xbacklight -inc %s" screen-brightness/step-size))
|
|
(message "[screen-brightness.el] Increased screen brightness."))
|
|
|
|
(defun screen-brightness/decrease ()
|
|
"Decrease the screen brightness."
|
|
(interactive)
|
|
(prelude/start-process
|
|
:name "screen-brightness/decrease"
|
|
:command (string/format "xbacklight -dec %s" screen-brightness/step-size))
|
|
(message "[screen-brightness.el] Decreased screen brightness."))
|
|
|
|
(when screen-brightness/install-kbds?
|
|
(exwm-input-set-key
|
|
(kbd "<XF86MonBrightnessUp>") #'screen-brightness/increase)
|
|
(exwm-input-set-key
|
|
(kbd "<XF86MonBrightnessDown>") #'screen-brightness/decrease))
|
|
|
|
(provide 'screen-brightness)
|
|
;;; screen-brightness.el ends here
|