tvl-depot/tools/emacs-pkgs/passively
Vincent Ambo 4adab5f7b9 feat(tools/passively): Bootstrap new Emacs package 'passively'
Passively is a tool to help people learn information via Emacs,
designed for language learning.

As of this CL, the actual implementation still lives in
//users/tazjin/russian/russian.el but I am generalising it here.

Change-Id: Iac5a8cfc78415496637a7ba5ddc4c2a1aa6bee26
2021-12-03 11:26:12 +00:00
..
OWNERS feat(tools/passively): Bootstrap new Emacs package 'passively' 2021-12-03 11:26:12 +00:00
README.md feat(tools/passively): Bootstrap new Emacs package 'passively' 2021-12-03 11:26:12 +00:00

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.