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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
|
# remembering
[pt][pt1] | [fr][fr1] | [eo][eo1]
[pt1]: https://euandreh.xyz/remembering/pt/
[fr1]: https://euandreh.xyz/remembering/fr/
[eo1]: https://euandreh.xyz/remembering/eo/
Add memory to [`dmenu`][dmenu], [`fzf`][fzf] and similar tools.
It can wrap such tools to accumulate preferences over time, and
re-arrange the input according to common picks.
## Usage
Replace:
```shell
$ ls | fzf
```
with:
```shell
$ ls | remembering -p fzf-sample -c fzf
```
and see your previous choices from `fzf` start to appear at the beginning of the list.
Similar to [`yeganesh`][yeganesh], but with no build-time or run-time dependencies, and not coupled with `dmenu`.
[dmenu]: https://tools.suckless.org/dmenu/
[fzf]: https://github.com/junegunn/fzf
[yeganesh]: http://dmwit.com/yeganesh/
## Installation
```shell
$ make
$ make check
# make install
```
You can pass `PREFIX` or `DESTDIR` to `make`:
```shell
$ make
$ make check
$ make install PREFIX=$HOME/.local
```
There are no dependencies or requirements, only standard tools such as
POSIX sed, POSIX make, etc.
## Documentation
### Manuals
The documentation is available via installed manpages or online:
- [`remembering.1`] ([pt][pt.1], [fr][fr.1], [eo][eo.1]);
- [`remembering.5`] ([pt][pt.5], [fr][fr.5], [eo][eo.5]).
[`remembering.1`]: https://euandreh.xyz/remembering/en/remembering.1.html
[pt.1]: https://euandreh.xyz/remembering/pt/remembering.1.html
[fr.1]: https://euandreh.xyz/remembering/fr/remembering.1.html
[eo.1]: https://euandreh.xyz/remembering/eo/remembering.1.html
[`remembering.5`]: https://euandreh.xyz/remembering/en/remembering.5.html
[pt.5]: https://euandreh.xyz/remembering/pt/remembering.5.html
[fr.5]: https://euandreh.xyz/remembering/fr/remembering.5.html
[eo.5]: https://euandreh.xyz/remembering/eo/remembering.5.html
### Directory structure
The directory structure of the repository is:
- `aux/`: personal scripts and helpers I've vendored in to ensure the
repository is self contained, feel free to ignore it;
- `doc/`: manpages, with their translated versions;
- `po/`: gettext `.po` files for the translated languages and hunspell
dictionaries for spell checking;
- `src/`: main source code for the project;
- `tests/`: integration tests for the project.
## Contributing
Extra tools used for development are:
- [Valgrind] for memory testing;
- [ShellCheck] for validating scripts;
- [po4a], [mdpo] and [gettext] for i18n and l10n support;
- [makefile2graph] and [graphviz] for generating [makefile.svg];
- [pandoc] for generating the documentation HTML and website.
[Valgrind]: https://valgrind.org
[ShellCheck]: https://www.shellcheck.net/
[po4a]: https://po4a.org/index.php.en
[gettext]: https://www.gnu.org/software/gettext/
[pandoc]: https://pandoc.org/
[mdpo]: https://mdpo.readthedocs.io/en/master/
[makefile2graph]: https://github.com/lindenb/makefile2graph
[graphviz]: https://graphviz.org/
[makefile.svg]: https://euandreh.xyz/git-permalink/makefile.svg
For running the extra development-only checks, run:
```shell
$ make dev-check
```
and for generating the documentation HTML and website, run:
```shell
$ make public
```
Send contributions to the [mailing list] via
[`git send-email`](https://git-send-email.io/).
## Links
- [homepage](https://euandre.org/s/remembering/en/)
- [source code](https://euandre.org/git/remembering/)
- [bug tracking](https://euandre.org/s/remembering/TODOs.html)
- [mailing list]
- [CI logs](https://euandre.org/s/remembering/ci/)
- [CHANGELOG](https://euandre.org/s/remembering/en/CHANGELOG.html)
[mailing list]: https://lists.sr.ht/~euandreh/public-inbox?search=%5Bremembering%5D
## Releases
- [v0.3.0](https://euandre.org/git/remembering/commit/?id=v0.3.0) [remembering-v0.3.0.tar.gz](https://euandre.org/git/remembering/snapshot/remembering-v0.3.0.tar.gz) ([sig](https://euandre.org/git/remembering/snapshot/remembering-v0.3.0.tar.gz.asc)) - 2022-11-25
- [v0.2.1](https://euandre.org/git/remembering/commit/?id=v0.2.1) [remembering-v0.2.1.tar.gz](https://euandre.org/git/remembering/snapshot/remembering-v0.2.1.tar.gz) ([sig](https://euandre.org/git/remembering/snapshot/remembering-v0.2.1.tar.gz.asc)) - 2021-02-23
- [v0.2.0](https://euandre.org/git/remembering/commit/?id=v0.2.0) [remembering-v0.2.0.tar.gz](https://euandre.org/git/remembering/snapshot/remembering-v0.2.0.tar.gz) ([sig](https://euandre.org/git/remembering/snapshot/remembering-v0.2.0.tar.gz.asc)) - 2021-02-21
- [v0.1.2](https://euandre.org/git/remembering/commit/?id=v0.1.2) [remembering-v0.1.2.tar.gz](https://euandre.org/git/remembering/snapshot/remembering-v0.1.2.tar.gz) ([sig](https://euandre.org/git/remembering/snapshot/remembering-v0.1.2.tar.gz.asc)) - 2021-01-26
- [v0.1.1](https://euandre.org/git/remembering/commit/?id=v0.1.1) [remembering-v0.1.1.tar.gz](https://euandre.org/git/remembering/snapshot/remembering-v0.1.1.tar.gz) ([sig](https://euandre.org/git/remembering/snapshot/remembering-v0.1.1.tar.gz.asc)) - 2021-01-26
- [v0.1.0](https://euandre.org/git/remembering/commit/?id=v0.1.0) [remembering-v0.1.0.tar.gz](https://euandre.org/git/remembering/snapshot/remembering-v0.1.0.tar.gz) ([sig](https://euandre.org/git/remembering/snapshot/remembering-v0.1.0.tar.gz.asc)) - 2021-01-26
## License
The code is licensed under
[GNU Affero General Public License v3.0 or later][AGPL-3.0-or-later]
(AGPL-3.0-or-later).
[AGPL-3.0-or-later]: https://euandre.org/git/remembering/tree/COPYING
|