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 kanjidrawYou can also manually build a Debian package using the debian/sid
branch, or download pre-built .debs via GitHub releases.
An official package is also available in nixpkgs unstable.
$ pip install kanjidrawNB: 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-tkOpens 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 exitAdditional keybindings: q to quit, <esc> to go back.
$ export KANJIDRAW_DARK=1$ export KANJIDRAW_NOGRID=1© FC Stegerman
© Ulrich Apel

