diff --git a/src/posts/0021-ia-writer-clone-within-doom-emacs/index.org b/src/posts/0021-ia-writer-clone-within-doom-emacs/index.org index 5a2904f..4517f33 100644 --- a/src/posts/0021-ia-writer-clone-within-doom-emacs/index.org +++ b/src/posts/0021-ia-writer-clone-within-doom-emacs/index.org @@ -13,27 +13,35 @@ I think I made something worth to be shared. I wanted to have the same effect than in iA writer within emacs. And I just reached this. -So the effect I am looking to achieve can be seen in this gif. +So the effect I am looking to achieve can be seen in this video. -TODO +#+begin_export html + +#+end_export -So mainly it highlight the current sentence (in black) while the rest of -the text is gray. + +It highlight the current sentence (in black) while the rest of the text is +gray. The main issue with the =hl-sentence= package alone is that it set a specific -face to the current sentence, but does not affect the other text in the buffer. -In fact to make it work, you need to make the default color grey, and only -set black for the highlighted text. +face to the current sentence, but does not affect the other text in the +buffer. +In fact to make it work as I would expect, you need to make the default +color grey, and only set black for the highlighted text. -But nice, I have recently created a personal theme close to that. -I created a new one. +Fortunately, I have recently created a personal theme close to that. +I just created a new specific one. Everything is mostly "gray" except the font ~hl-sentence~ which is black. And that's it. So to make it all work I need. -- a Gray theme; +- a Gray theme, - the package ~hl-sentence~, -- The ~writeroom~ package. +- the ~writeroom~ package. So how to achieve that yourself? Here is how I do it. @@ -43,10 +51,10 @@ Here is how I do it. :CUSTOM_ID: the-zen-writer-theme :END: - Download [[./doom-zen-writer-theme.el][Doom Zen-Writer theme]]. This depend on doom-themes and here is the code of the theme. -Just put it in you =~/.doom.d/themes= directory +Just put it in you =~/.doom.d/themes= directory. + ** add this is your ~packages.el~ :PROPERTIES: :CUSTOM_ID: add-this-is-your--packages-el- @@ -67,13 +75,59 @@ Here is a [[file:zen-writer.el][zen-writer.el]] file that contain my keymaps and Put it in you =~/.doom.d/= directory and in you =config.el= put -#+begin_src elisp +#+begin_src emacs-lisp (load! "~/.doom.d/zen-writer.el") #+end_src And with this you should pass to zen mode with ~SPC y z z~. +To make the un-zen works. +You will need to have a ~y/auto-update-theme~ function that set your current theme. +My function change the theme depending on the time of the day or the day of +the week. + +So here it is for inspiration: + +#+begin_src emacs-lisp +(defun y/auto-update-theme () + "depending on time use different theme" + ;; very early => gruvbox-light, solarized-light, nord-light + (let* ((day-of-week (format-time-string "%a")) + (week-end? (or (equal "Sat" day-of-week) + (equal "Sun" day-of-week))) + (hour (nth 2 (decode-time (current-time)))) + (time-to-sleep? (or (> hour 22) (< hour 7))) + + (theme (cond + (time-to-sleep? 'doom-plain-dark) + (week-end? 'doom-nord-light) + ((<= 7 hour 8) 'doom-gruvbox-light) + ((= 9 hour) 'doom-solarized-light) + ((<= 10 hour 16) 'doom-solarized-white) + ((<= 17 hour 18) 'doom-gruvbox-light) + ((<= 19 hour 22) 'doom-oceanic-next)))) + (when (not (equal doom-theme theme)) + (setq doom-theme theme) + (load-theme doom-theme t)) + ;; run that function again next hour + (run-at-time (format "%02d:%02d" (+ hour 1) 0) nil 'y/auto-update-theme))) +#+end_src + +** Bonus +:PROPERTIES: +:CUSTOM_ID: bonus +:END: + +I use Nerd Fonts and in particular the font `iMWritingDuoS` which is I +think a clone of the iAWriter font. + +#+begin_src emacs-lisp +(setq doom-variable-pitch-font + (font-spec :family "iMWritingDuoS Nerd Font" :size 12)) +#+end_src + I hope you find this useful. +I really like how it looks now. ** Annex :PROPERTIES: @@ -281,5 +335,5 @@ Can be an integer to determine the exact padding." :background modeline-bg-inactive-alt :box (if -modeline-pad `(:line-width ,-modeline-pad :color ,modeline-bg-inactive-alt))))) -;;; doom-plain-theme.el ends here +;;; doom-zen-writer-theme.el ends here #+end_src diff --git a/src/posts/0021-ia-writer-clone-within-doom-emacs/zen-writer-demo.mov b/src/posts/0021-ia-writer-clone-within-doom-emacs/zen-writer-demo.mov new file mode 100644 index 0000000..328c4a9 Binary files /dev/null and b/src/posts/0021-ia-writer-clone-within-doom-emacs/zen-writer-demo.mov differ