parent
f90f1c212e
commit
a2814629a0
2 changed files with 42 additions and 11 deletions
|
@ -39,6 +39,18 @@ It also provides easy font configuration for Hebrew and Arabic-derived scripts
|
|||
See [[Fonts]] for more information. If you use an RTL language that isn't covered by
|
||||
these characters, open an issue requesting support for it.
|
||||
|
||||
To resize fonts, don't include a ~:size~ parameter in ~+bidi-hebrew-font~ or
|
||||
~+bidi-arabic-font~, set ~+bidi-hebrew-font-scale~ or ~+bidi-arabic-font-scale~
|
||||
instead, or add an entry to ~face-font-rescale-alist~ for your font. E.g.
|
||||
#+begin_src emacs-lisp
|
||||
;;; Add to $DOOMDIR/config.el
|
||||
(setq +bidi-arabic-font-scale 1.5)
|
||||
;; or
|
||||
(setq +bidi-hebrew-font-scale 2.5)
|
||||
;; or
|
||||
(add-to-list 'face-font-rescale-alist '("DejaVu Sans" . 1.2))
|
||||
#+end_src
|
||||
|
||||
* Configuration
|
||||
** Using ~+bidi-mode~
|
||||
~+bidi-mode~ is a local minor mode, meaning it has to be turned on a per-buffer
|
||||
|
|
|
@ -1,14 +1,16 @@
|
|||
;;; input/bidi/config.el -*- lexical-binding: t; -*-
|
||||
|
||||
(defvar +bidi-mode-map (make-sparse-keymap)
|
||||
"Keymap for `+bidi-mode'.")
|
||||
|
||||
(defvar +bidi-hebrew-font (font-spec :family "DejaVu Sans")
|
||||
"Overriding font for hebrew script.
|
||||
Must be a `font-spec', see `doom-font' for examples.
|
||||
|
||||
WARNING: if you specify a size for this font it will hard-lock any usage of this
|
||||
font to that size. It's rarely a good idea to do so!")
|
||||
font to that size. It's rarely a good idea to do so! Set
|
||||
`+bidi-hebrew-font-scale' to scale the font up or down.")
|
||||
|
||||
(defcustom +bidi-hebrew-font-scale 1.0
|
||||
"What scale to display `+bidi-hebrew-font' at."
|
||||
:type 'float)
|
||||
|
||||
(defface +bidi-hebrew-face `((t :font ,+bidi-hebrew-font)) "")
|
||||
|
||||
|
@ -17,7 +19,12 @@ font to that size. It's rarely a good idea to do so!")
|
|||
Must be a `font-spec', see `doom-font' for examples.
|
||||
|
||||
WARNING: if you specify a size for this font it will hard-lock any usage of this
|
||||
font to that size. It's rarely a good idea to do so!")
|
||||
font to that size. It's rarely a good idea to do so! Set
|
||||
`+bidi-arabic-font-scale' to scale the font up or down.")
|
||||
|
||||
(defcustom +bidi-arabic-font-scale 1.0
|
||||
"What scale to display `+bidi-arabic-font' at."
|
||||
:type 'float)
|
||||
|
||||
(defface +bidi-arabic-face `((t :font ,+bidi-arabic-font)) "")
|
||||
|
||||
|
@ -51,7 +58,10 @@ Warning: do not change this if you are using `+bidi-global-mode'.'"
|
|||
(const :tag "Right to Left" right-to-left)
|
||||
(const :tag "Dynamic, according to paragraph text" nil)))
|
||||
|
||||
;;;###autoload
|
||||
|
||||
(defvar +bidi-mode-map (make-sparse-keymap)
|
||||
"Keymap for `+bidi-mode'.")
|
||||
|
||||
(define-minor-mode +bidi-mode
|
||||
"Minor mode for using bidirectional text in a buffer.
|
||||
|
||||
|
@ -85,9 +95,18 @@ easier."
|
|||
|
||||
(define-globalized-minor-mode +bidi-global-mode +bidi-mode +bidi-mode)
|
||||
|
||||
|
||||
(add-hook! 'after-setting-font-hook
|
||||
(defun +bidi-set-fonts-h ()
|
||||
(set-fontset-font t 'hebrew +bidi-hebrew-font)
|
||||
(set-fontset-font t 'arabic +bidi-arabic-font)
|
||||
(set-face-font '+bidi-arabic-face +bidi-arabic-font)
|
||||
(set-face-font '+bidi-hebrew-face +bidi-hebrew-font)))
|
||||
(defun +bidi-init-fonts-h ()
|
||||
(when +bidi-hebrew-font
|
||||
(set-fontset-font t 'hebrew +bidi-hebrew-font)
|
||||
(set-face-font '+bidi-hebrew-face +bidi-hebrew-font)
|
||||
(when (/= +bidi-hebrew-font-scale 1.0)
|
||||
(setf (alist-get (font-get +bidi-hebrew-font :family) face-font-rescale-alist nil nil #'equal)
|
||||
+bidi-hebrew-font-scale)))
|
||||
(when +bidi-arabic-font
|
||||
(set-fontset-font t 'arabic +bidi-arabic-font)
|
||||
(set-face-font '+bidi-arabic-face +bidi-arabic-font)
|
||||
(when (/= +bidi-arabic-font-scale 1.0)
|
||||
(setf (alist-get (font-get +bidi-arabic-font :family) face-font-rescale-alist nil nil #'equal)
|
||||
+bidi-arabic-font-scale)))))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue