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
config.h.in CMakeLists.txt: use more succint variables 2 years ago

README.adoc

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

Packages
--------
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 https://git.janouch.name/p/sdtui.git
$ mkdir sdtui/build
$ cd sdtui/build
$ cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Debug -DWITH_GTK=ON
$ 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.

Extensions
----------
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.

Configuration
-------------
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.

....
[Settings]
center-search = true
underline-last = false
hl-common-prefix = true
watch-selection = true

[Colors]
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:

....
[Dictionaries]
name1 = ~/path/to/dict.ifo
name2 = ~/another/dict.ifo
....

Dictionaries
------------
Unfortunately this application only really works with specific dictionaries.
Word definitions have to be in plain text, separated by newlines.

https://mega.co.nz/#!axtD0QRK!sbtBgizksyfkPqKvKEgr8GQ11rsWhtqyRgUUV0B7pwg[
CZ <--> { EN, DE, PL, RU } dictionaries]

Contributing and Support
------------------------
Use https://git.janouch.name/p/sdtui 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://irc.janouch.name, channel #dev.

Bitcoin donations are accepted at: 12r5uEWEgcHC46xd64tt3hHt9EUvYYDHe9

License
-------
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.