Browse Source

Added video and comments

ia-writer-clone
parent
commit
23039ebee9
Signed by: yogsototh GPG Key ID: 7B19A4C650D59646
  1. 84
      src/posts/0021-ia-writer-clone-within-doom-emacs/index.org
  2. BIN
      src/posts/0021-ia-writer-clone-within-doom-emacs/zen-writer-demo.mov

84
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
<video src="./zen-writer-demo.mov"
width="100%"
controls="true"
autoplay="true">
</video>
#+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

BIN
src/posts/0021-ia-writer-clone-within-doom-emacs/zen-writer-demo.mov

Binary file not shown.
Loading…
Cancel
Save