personal note management system.
Project description
Xotes - personal note management system
Xotes is a personal note management system. Features include:
- written in python3, should work on most systems
- library, command line, and ncurses interfaces
- git storage backend, for simple sharing between devices
- xapian full text index and search of all notes (optional)
- GitJournal compatibility
Dependencies:
- python3
- GitPython
- PyYAML
- dateutil
- urwid for ncurses interface (optional)
- Xapian python3 bindings (optional)
All dependencies are commonly available through your favorite python package manager.
Xotes is managed on GitLab.
Xotes was written by Jameson Graef Rollins.
synchronizing between devices via git
Xotes stores notes in a git repo, and can synchronize the store with
any git remotes configured in the store's git repo. To configure,
simply set up git
remotes
in the store's git repo as you would in any normal git repo, then use
the Store.sync()
command or the command line --sync
option to
synchronize. See Store.ROOT
or the command line --help
for the
file system location of your store.
fast sync with SSH
If you use SSH remotes, synchronization can be sped up considerably by
using SSH connection
multiplexing.
By specifying a ControlMaster
for your ssh connection, ssh can hold
open a connection to the remote, speeding up subsequent operations
considerably.
For example, for remote gitjournal@example.com
the following
.ssh/config
stanza should setup a multiplexing socket just for your
gitjournal remote:
Match originalhost example.com, user gitjournal
ControlMaster auto
ControlPersist yes
faster editing with emacs
If you use emacs to edit notes you can use the emacs server to speed up editing considerably.
I use a special emacs session just for xotes editing. In a wrapper script I have the emacs daemon launch if it's not running:
if ! emacsclient --socket-name=xotes -e '()' >/dev/null ; then
emacs --daemon=xotes
fi
And then I set the EDITOR environment variable to use emacsclient:
export EDITOR="emacsclient --socket-name=xotes -t"
recommended gitjournal config
Xotes works very well with GitJournal. While xotes should work with GitJournal out of the box, not all of the potential GitJournal configuration options have been fully tested. In particular, xotes currently does expect the YAML header to be present.
The following GitJournal settings may provide the best performance:
- in "Note Metadata Settings":
- "Enable YAML Header"
- "Modified Field" should be "modified"
- "Created Field" should be "created"
- While xotes will support any note file name, "Uuid V4" file names are the most sensible, imho.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.