about summary refs log tree commit diff
path: root/tools/emacs-pkgs/passively/README.md
blob: a5ac0d5a40bf6cd7088c23688f35554a8f440f3f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<!-- SPDX-License-Identifier: MIT -->
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:

```lisp
;; 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@tvl.su`.

## 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.