about summary refs log tree commit diff
path: root/tools/emacs/config/functions.el
diff options
context:
space:
mode:
Diffstat (limited to 'tools/emacs/config/functions.el')
-rw-r--r--tools/emacs/config/functions.el32
1 files changed, 30 insertions, 2 deletions
diff --git a/tools/emacs/config/functions.el b/tools/emacs/config/functions.el
index 4c8aa162cf0b..193e1a7412d1 100644
--- a/tools/emacs/config/functions.el
+++ b/tools/emacs/config/functions.el
@@ -1,5 +1,3 @@
-(require 's)
-
 (defun load-file-if-exists (filename)
   (if (file-exists-p filename)
       (load filename)))
@@ -219,4 +217,34 @@
                       (getenv "USER"))
                     todo))))
 
+;; Custom text scale adjustment functions that operate on the entire instance
+(defun modify-text-scale (factor)
+  (set-face-attribute 'default nil
+                      :height (+ (* factor 5) (face-attribute 'default :height))))
+
+(defun increase-default-text-scale (prefix)
+  "Increase default text scale in all Emacs frames, or just the
+  current frame if PREFIX is set."
+
+  (interactive "P")
+  (if prefix (text-scale-increase 1)
+    (modify-text-scale 1)))
+
+(defun decrease-default-text-scale (prefix)
+  "Increase default text scale in all Emacs frames, or just the
+  current frame if PREFIX is set."
+
+  (interactive "P")
+  (if prefix (text-scale-decrease 1)
+    (modify-text-scale -1)))
+
+(defun set-default-text-scale (prefix &optional to)
+  "Set the default text scale to the specified value, or the
+  default. Restores current frame's text scale only, if PREFIX is
+  set."
+
+  (interactive "P")
+  (if prefix (text-scale-adjust 0)
+    (set-face-attribute 'default nil :height (or to 120))))
+
 (provide 'functions)