Commit 598d3496d41a

Vincent Demeester <vincent@sbr.pm>
2017-06-25 18:43:56
Update zooming feature
It is now possible to zoom-in/out the whole frame *or* by buffer (default emacs behaviour). Signed-off-by: Vincent Demeester <vincent@sbr.pm>
1 parent 30479a5
Changed files (2)
.emacs.d/emacs.el
@@ -293,8 +293,25 @@
 
 (setq ibuffer-show-empty-filter-groups nil)
 
-(global-set-key (kbd "C-+") 'text-scale-increase)
-(global-set-key (kbd "C--") 'text-scale-decrease)
+(defun vde/text-scale-frame-change (fn)
+  (let* ((current-font-name (frame-parameter nil 'font))
+         (decomposed-font-name (x-decompose-font-name current-font-name))
+         (font-size (string-to-int (aref decomposed-font-name 5))))
+    (aset decomposed-font-name 5 (int-to-string (funcall fn font-size)))
+    (set-frame-font (x-compose-font-name decomposed-font-name))))
+
+(defun vde/text-scale-frame-increase ()
+  (interactive)
+  (vde/text-scale-frame-change '1+))
+
+(defun vde/text-scale-frame-decrease ()
+  (interactive)
+  (vde/text-scale-frame-change '1-))
+
+(global-set-key (kbd "C-M-+") 'text-scale-increase)
+(global-set-key (kbd "C-M--") 'text-scale-decrease)
+(global-set-key (kbd "C-+") 'vde/text-scale-frame-increase)
+(global-set-key (kbd "C--") 'vde/text-scale-frame-decrease)
 
 (use-package flyspell
   :ensure t
.emacs.d/emacs.org
@@ -722,7 +722,7 @@
 
    #+BEGIN_SRC emacs-lisp
      (setq ibuffer-saved-filter-groups
-   	'(("default"
+        '(("default"
               ("org" (mode . org-mode))
               ("magit" (name . "\*magit"))
               ("dired" (mode . dired-mode))
@@ -755,9 +755,29 @@
    presenting something with emacs ; so that everybody can see
    what's written.
 
+   According to [[http://emacsninja.com/posts/making-emacs-more-presentable.html][this article]], we can update the =text-scale-XYZ=
+   functions to work on a frame instead of just a buffer:
+
    #+BEGIN_SRC emacs-lisp
-     (global-set-key (kbd "C-+") 'text-scale-increase)
-     (global-set-key (kbd "C--") 'text-scale-decrease)
+     (defun vde/text-scale-frame-change (fn)
+       (let* ((current-font-name (frame-parameter nil 'font))
+              (decomposed-font-name (x-decompose-font-name current-font-name))
+              (font-size (string-to-int (aref decomposed-font-name 5))))
+         (aset decomposed-font-name 5 (int-to-string (funcall fn font-size)))
+         (set-frame-font (x-compose-font-name decomposed-font-name))))
+
+     (defun vde/text-scale-frame-increase ()
+       (interactive)
+       (vde/text-scale-frame-change '1+))
+
+     (defun vde/text-scale-frame-decrease ()
+       (interactive)
+       (vde/text-scale-frame-change '1-))
+
+     (global-set-key (kbd "C-M-+") 'text-scale-increase)
+     (global-set-key (kbd "C-M--") 'text-scale-decrease)
+     (global-set-key (kbd "C-+") 'vde/text-scale-frame-increase)
+     (global-set-key (kbd "C--") 'vde/text-scale-frame-decrease)
    #+END_SRC
 
 ** Flyspell