Start `rainbow-fart--timing-remind` timer only when audio file available.
[emacs-rainbow-fart.git] / README.org
blob5fe926f517284edb988d4a754f0f3869498e7f9a
1 * Intro
3 [[logo.png]]
5 🌈 EMACS RAINBOW FART
7 This package is inspired from [[https://saekiraku.github.io/vscode-rainbow-fart/#/zh/][vscode-rainbow-fart]] and [[https://github.com/DogLooksGood/rainbow-fart.el][rainbow-fart.el]].
9 This is an interesting idea package.
11 An Emacs extension that keeps giving you compliment while you are coding, it
12 will checks the keywords of code to play suitable sounds.
14 Here is a screencast which is recorded by [[https://github.com/DogLooksGood][DogLooksGood]].
16 [[Emacs rainbow-fart demo.mp4][Emacs rainbow-fart demo.mp4]]
18 #+begin_export html
19 <video src="Emacs rainbow-fart demo.mp4" controls="controls">
20   You'r web browser doesn't support video tag.
21 </video>
22 #+end_export
24 * Features
26 - auto play voice when you type keywords
27 - auto play voice when you put point/cursor on flycheck error
28 - auto play voice when in specific time quantum
29 - support and compatible with vscode-rainbow-fart voice pack spec through
30   "manifest.json", "contributes.json" files.
32 * Install
34 ** use-package + Quelpa
36 #+begin_src emacs-lisp
37 (use-package rainbow-fart
38   :ensure t
39   :hook (after-init . rainbow-fart-mode))
40 #+end_src
42 * Usage
44 Just like the screencast video shows, A voice played when you type some keywords.
46 * Customization
48 ** choose voice model
50 - default built-in model voice pack "JustKowalski".
52   #+begin_src emacs-lisp
53   (setq rainbow-fart-voice-model "JustKowalski")
54   #+end_src
56 - copied two model voice pack "糖糖", "千岛" from
57   https://github.com/heixiaobai/rainbow-fart-voice-pack. Thanks @heixiaobai.
59   #+begin_src emacs-lisp
60   (setq rainbow-fart-voice-model "糖糖/PGG-Sharonring-JavaScript-Chinese")
61   #+end_src
63 ** control keyword voice
65 Not frequently play voice for every keywords:
67 #+begin_src emacs-lisp
68 (setq rainbow-fart-keyword-interval (* 60 10))
69 #+end_src
71 Play voice for every keywords:
73 #+begin_src emacs-lisp
74 (setq rainbow-fart-keyword-interval nil)
75 #+end_src
77 ** control hourly reminder
79 Disable hourly reminder:
81 #+begin_src emacs-lisp
82 (setq rainbow-fart-time-interval nil)
83 #+end_src
85 * DONE Contribution                                                 :ARCHIVE:
86   CLOSED: [2021-01-31 Sun 09:28]
87   :LOGBOOK:
88   - State "DONE"       from              [2021-01-31 Sun 09:28]
89   :END:
91 - [X] Need an elegant solution to handle different model voices which have different voice files
92 - [X] Need more voice models
93 - [X] I will add contributors into list
95 * Contributors
97 - DogLooksGood
98 - lujun9972
100 * LICENSE
102 This package elisp code is published under GPL v3, the voice data is from
103 [[https://github.com/JustKowalski][GitHub@JustKowalski]] and project [[https://github.com/SaekiRaku/vscode-rainbow-fart][vscode-rainbow-fart]] which is released under [[https://github.com/SaekiRaku/vscode-rainbow-fart/blob/master/LICENSE][MIT license]].