kanjidraw
is a simple Python library + GUI for matching (the strokes
of a) handwritten kanji against its database.
You can use the GUI to draw and subsequently select a kanji from the list of probable matches, which will then be copied to the clipboard.
The database is based on KanjiVG and the algorithms are based on the Kanji draw Android app.
Jiten Japanese Dictionary
uses kanjidraw
with a
JavaScript frontend.
Official packages are available in Debian unstable and Ubuntu jammy.
$ apt install kanjidraw
You can also manually build a Debian package using the debian/sid
branch, or download pre-built .deb
s via GitHub releases.
An official package is also available in nixpkgs unstable.
$ pip install kanjidraw
NB: depending on your system you may need to use e.g. pip3 --user
instead of just pip
.
NB: this installs the latest development version, not the latest release.
$ git clone https://github.com/obfusk/kanjidraw.git
$ cd kanjidraw
$ pip install -e .
NB: you may need to add e.g. ~/.local/bin
to your $PATH
in order
to run kanjidraw
.
To update to the latest development version:
$ cd kanjidraw
$ git pull --rebase
- Python >= 3.5 (w/ Tk support for the GUI).
$ apt install python3-tk
Opens kanjidraw
to select one (--oneshot
) or multiple
(--multiple
) kanji, and afterwards pastes the selected kanji in the
active window. Requires xclip
and xdotool
.
#!/bin/bash
set -e
pid="$( xdotool getactivewindow getwindowpid )"
pids() { xdotool search --classname "$1" getwindowpid %@; }
if pids rxvt | grep -q "^$pid$"; then
key=ctrl+alt+v
elif ( pids terminal; pids st-256color ) | grep -q "^$pid$"; then
key=ctrl+shift+v
else
key=ctrl+v
fi
kanjidraw -s "$@" | tr -d '\n' | xclip -i -selection clipboard
xdotool key --delay 250 "$key"
Keybindings for i3. Creating custom keybindings for kanjidraw-paste --oneshot
and/or kanjidraw-paste --multiple
should work similarly
with other window managers and desktop environments.
for_window [title="Kanji Draw"] floating enable
bindsym $mod+Control+k exec --no-startup-id kanjidraw-paste --oneshot
bindsym $mod+Control+m exec --no-startup-id kanjidraw-paste --multiple
$ kanjidraw --help
usage: kanjidraw [-h] [-s] [-o | -m] [-d] [--version]
optional arguments:
-h, --help show this help message and exit
-s, --stdout print kanji to stdout instead of copying to clipboard
-o, --oneshot quit after one kanji
-m, --multiple queue kanji and copy/print after pressing 'c' or quitting
-d, --dark use dark theme
--version show program's version number and exit
Additional keybindings: q
to quit, <esc>
to go back.
$ export KANJIDRAW_DARK=1
$ export KANJIDRAW_NOGRID=1
© FC Stegerman
© Ulrich Apel