StarDict terminal UI
Přemysl Janouch b0d3b2dcb5
Strip whitespace from clipboard contents
2 months ago
cmake Try harder to find ncursesw 2 years ago
docs Update documentation 2 years ago
po Relicense to 0BSD, update mail address 2 months ago
src Strip whitespace from clipboard contents 2 months ago
termo @ 30e0eee1a8 Bump termo 2 months ago
.gitignore Miscellaneous little changes 3 years ago
.gitmodules Bump termo 2 months ago
CMakeLists.txt Relicense to 0BSD, update mail address 2 months ago
LICENSE Relicense to 0BSD, update mail address 2 months ago
README.adoc Update README 2 months ago CMakeLists.txt: use more succint variables 2 years ago


StarDict Terminal UI

'sdtui' aims to provide an easy way of viewing translation as well as other
kinds of dictionaries in your terminal. I wasn't successful in finding any free
dictionary software of this kind, GUI or not, and thus decided to write my own.

The project is covered by a permissive license, unlike vast majority of other
similar projects, and can serve as a base for implementing other dictionary
software. I wasn't able to reuse _anything_.

Further Development
While I've been successfully using sdtui for a long time now, some work has to
be done yet before the software can be considered fit for inclusion in regular
Linux and/or BSD distributions. Help is much appreciated.

An approximate list of things that need to be resolved:

- rewrite the frontend using a proper TUI framework
- possibly make it work better with multiple dictionaries as now it's only
acceptable if you give them short names in the configuration so that they
all fit in the header
- figure out a way to become capable of displaying most dictionaries

Regular releases are sporadic. git master should be stable enough. You can get
a package with the latest development version from Archlinux's AUR.

Building and Running
Build dependencies: CMake, pkg-config, xsltproc, docbook-xsl +
Runtime dependencies: ncursesw, zlib, ICU, termo (included),
glib-2.0, pango, gtk+ (optional, any version)

$ git clone --recursive
$ mkdir sdtui/build
$ cd sdtui/build
$ make

To install the application, you can do either the usual:

# make install

Or you can try telling CMake to make a package for you. For Debian it is:

$ cpack -G DEB
# dpkg -i sdtui-*.deb

Note that for versions of CMake before 2.8.9, you need to prefix `cpack` with
`fakeroot` or file ownership will end up wrong.

Having the program installed, simply run it with a StarDict '.ifo' file as an
argument. It is however highly recommended to configure it, see below.

As the original StarDict is a bit of a clusterfuck with regard to collation of
dictionary entries, I had to introduce an additional `collation` field into the
'.ifo' file. When sdtui discovers this field while reading the dictionary, it
automatically reorders the index according to that locale (e.g. "cs_CZ").
This operation may take a little while, in the order of seconds.

To get a nicer look in 256color terminals, create _~/.config/sdtui/sdtui.conf_
with the following. Note that it is intended for black-on-white terminals.

center-search = true
underline-last = false
hl-common-prefix = true
watch-selection = true

header = reverse
header-active = ul
search = ul
even = 16 231
odd = 16 255

The `watch-selection` option makes the application watch the X11 primary
selection for changes and automatically search for selected text.
This feature requires GTK+ and it will never work on Wayland by its design.

You can also set up some dictionaries to be loaded at startup automatically:

name1 = ~/path/to/dict.ifo
name2 = ~/another/dict.ifo

Unfortunately this application only really works with specific dictionaries.
Word definitions have to be in plain text, separated by newlines.!axtD0QRK!sbtBgizksyfkPqKvKEgr8GQ11rsWhtqyRgUUV0B7pwg[
CZ <--> { EN, DE, PL, RU } dictionaries]

Contributing and Support
Use to report any bugs, request features,
or submit pull requests. `git send-email` is tolerated. If you want to discuss
the project, feel free to join me at ircs://, channel #dev.

Bitcoin donations are accepted at: 12r5uEWEgcHC46xd64tt3hHt9EUvYYDHe9

This software is released under the terms of the 0BSD license, the text of which
is included within the package along with the list of authors.