https://github.com/seletskiy/runki
Effortless AnkiSRS card managment to learn foreign words
https://github.com/seletskiy/runki
Last synced: 12 months ago
JSON representation
Effortless AnkiSRS card managment to learn foreign words
- Host: GitHub
- URL: https://github.com/seletskiy/runki
- Owner: seletskiy
- Created: 2014-05-14T06:36:49.000Z (about 12 years ago)
- Default Branch: master
- Last Pushed: 2024-03-25T19:18:00.000Z (over 2 years ago)
- Last Synced: 2025-03-20T00:11:16.933Z (over 1 year ago)
- Language: Go
- Size: 38.1 KB
- Stars: 24
- Watchers: 3
- Forks: 4
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
runki
=====
Ankiweb.net console client. Manage Anki flashcards without a friction.
Installation
------------
Use AUR package https://aur.archlinux.org/packages/runki
For other systems you can install runki through `go get`:
1. Install go.
2. Execute `go get github.com/seletskiy/runki`
Configuration
-------------
All command line arguments can be stored in configuration file called
`~/.config/runki/runkirc` with following format:
```
--[option
[value]]
```
Example:
```
--user
user@example.com
--pass
password
--deck
english
```
All further invocations of `runki` can be done without specifying user/pass/deck
arguments.
See `runki --help` for complete arguments list.
Usage
-----
Add card to ankiweb.net:
```
echo test | runki
# or
echo test | runki --user= --pass= --deck=
```
Add list of cards to ankiweb.net:
```
cat words-list | runki
```
Add clipboard contents to ankiweb.net:
```
echo xclip -selection clipboard -o | runki
```
Add current selection to ankiweb.net:
```
echo xclip -o | runki
```
Add current selection to ankiweb.net and show translation:
```
notify-send "$(xclip -o | runki)"
```
Add word by shortcut (i3 window manager)
----------------------------------------
Create file ~/bin/add-anki-word with following contents:
```bash
#!/bin/bash
notify-send "$(echo $(xclip -o) | runki)"
```
Execute following command:
```
echo "bindsym \$mod+Escape exec add-anki-word" >> ~/.i3/config && i3-msg reload
```
Now it's possible to highlight unknown word in the browser and press only one
shortcut to get word be added into your Anki account.
Kindle
------
It is possible to learn foreign words directly from Kindle. When you encounter
unknown word, just tap on it, then select "Highlight". All this highlights will
be saved to the file "/documents/My Clippings.txt" in the Kindle FS.
Afterwards this file can be filtered to extract single word highlights (see
example script here: https://github.com/seletskiy/dotfiles/blob/92a0e8fdb533106d700dc4c7415f4d41b232edff/bin/kindle-filter-words).
So, all highlighted words can be easily added to Anki like this:
```bash
kindle-filter-words "/mnt/documents/My Clippings.txt" | tac | runki --cut 3
```
Note, that `tac` command will reverse incoming list so most recent items will
came first. `--cut 3` flag tells runki to exit if it detect at least `3` words
that are already added to Anki. `tac` and `--cut` combination allows you to
sync words from Kindle in seamless way just running one single command again
and again.
Kindle + udev
-------------
Ok, let's go deeper. One probably want to sync words that was highlighted on the kindle
automatically when one connect kindle to the computer.
So, we need to create udev rule like this:
```
ACTION=="add", SUBSYSTEM=="block", ENV{DEVTYPE}=="partition", ENV{ID_VENDOR_ID}=="1949", RUN+="/usr/bin/su -lc 'DISPLAY=:0 kindle-to-anki $env{DEVNAME}'"
```
After kindle is connected, `kindle-to-anki` program will have to be runned.
It will add new words directly to Anki and show nice notification about how
many new words has been added to.
Example of this `kindle-to-anki` program can be found there: https://github.com/seletskiy/dotfiles/blob/1c9da6d347cc658c9d6d177a61ef94423a3c36d4/bin/kindle-to-anki
VERSION
-------
0.0.1