Note: I don't have enough time to work on this, though I haven't completely given this project up. Any contribution or/and collaboration are welcome!
totero is a TUI (text/terminal-based user interfaces) client for Zotero that relies only on local database (i.e., no need for a cloud Zotero account). The official Zotero GUI client is bundled with an old-version FireFox, which does not support Wayland. Under a Wayland environment, the official Zotero client must rely on XWayland and does not look nice, especially with 4K and HiDPI monitors. So I decided to make my own client.
TUI clients usually looks nice because most modern terminal emulators support 256 colors or even 24-bit true colors. Here's a showcase of this client in Sway WM:
This is a WIP. No pip
or conda
packages.
Dependencies:
python
>= 3.7zoteroutils
: https://github.com/piyueh/zoteroutilspandas
sqlalchemy
(required byzoteroutils
)urwid
pandas
, sqlalchemy
and urwid
can be installed through whatever package
managers preferred. zoteroutils
is a companion package of totero
, so it's
also a WIP and has to be downloaded manually:
$ git clone https://github.com/piyueh/zoteroutils
Let python
know where to find zoteroutils
:
$ export PYTHONPATH=<path to the zoteroutils>:${PYTHONPATH}
Then download this client:
$ git clone https://github.com/piyueh/totero
Finally, run the client:
$ python <path to totero>/totero.py <path to Zotero data folder>
- Pure Python -- easy to read and modified the code
- Using
xdg-open
to open attachments byenter
. Poping up a window to choose an attachment if multiple files exists for the selected document. - Sorting with
F1
key. Poping up a window to choose which column(s) to sort. - Selecting displayed columns with
F2
key. Poping up a window to choose column(s). - Moving with
h
,j
,k
, andl
keys - Customizable color themes and key mappings.
These features are under development:
- Selecting a collection and showing documents in this collection
- Poping up a window to show the detail information of a selected document
- Searching
- A toolbar and a status bar
- Exporting to a bibtex file or a clipboard.
The following features are in the plan but probably won't be finished in the near future:
- Anything related to writing into the SQLite database. One reason is that I'm not familiar with SQL. Another reason is that I may not have time.