tvl-depot/tools/emacs-pkgs/passively
Luke Granger-Brown f190712b7f chore(gerrit): migrate OWNERS files to code-owners style
Change-Id: Iacc521dfdd4b4a2d5cef3920cf8189bcce35a488
2022-09-19 11:13:28 +00:00
..
default.nix feat(tools/passively): Implement automatic passive learning in Emacs 2021-12-06 11:50:55 +00:00
OWNERS chore(gerrit): migrate OWNERS files to code-owners style 2022-09-19 11:13:28 +00:00
passively.el fix(passively): Load known terms on startup 2021-12-13 16:36:59 +03:00
README.md

passively

Passively is an Emacs Lisp library for passively learning new information in an Emacs instance.

Passively works by displaying a random piece of information to be learned in the Emacs echoline whenever Emacs is idle for a set amount of time.

It was designed to aid in language acquisition by passively displaying new vocabulary to learn.

Passively is configured with a corpus of information (a hash table mapping string keys to string values) and maintains a set of terms that the user already learned in a file on disk.

Configuration & usage

Configure passively like this:

;; Configure the terms to learn. Each term should have a key and a
;; string value which is displayed.
(setq passively-learn-terms
      (ht ("забыть" "забыть - to forget")
          ("действительно" "действительно - indeed, really")))

;; Configure a file in which passively should store its state
;; (defaults to $user-emacs-directory/passively.el)
(setq passively-store-state "/persist/tazjin/passively.el")

;; Configure after how many seconds of idle time passively should
;; display a new piece of information.
;; (defaults to 4 seconds)
(setq passively-show-after-idle-for 5)

;; Once this configuration has been set up, start passively:
(passively-enable)

;; Or, if it annoys you, disable it again:
(passively-disable)

These variables are registered with customize and may be customised through its interface.

Known terms

Passively exposes the interactive function passively-mark-last-as-known which marks the previously displayed term as known. This means that it will not be included in the random selection anymore.

Last term

Passively stores the key of the last known term in passively-last-displayed.

Installation

Inside of the TVL depot, you can install passively from pkgs.emacsPackages.tvlPackages.passively. Outside of the depot, you can clone passively like this:

git clone https://code.tvl.fyi/depot.git:/tools/emacs-pkgs/passively.git

Passively depends on ht.el.

Feel free to contribute patches by emailing them to depot@tazj.in

Use-cases

I'm using passively to learn Russian vocabulary. Once I've cleaned up my configuration for that, my Russian term list will be linked here.