Jeremy Wakeman

Jeremy Wakeman

Homepage, project information, and interests

sinkrite

sinkrite is a bash script that uses whiptail to create a Text User Interface (TUI). The TUI provides a menu system to enable the user to create, edit, sync, and delete text documents. It also allows configuration of its own settings and starting/stopping of the synchronization daemon sinkrited. My intention is to use sinkrite on minimally spec'ed hardware as an alternative to a writerdeck. I like the idea of using a writerdeck as a focused tool for writing, but I really want to use neovim for editing and git to remotely synchronize. An old laptop with Debian Linux and sinkrite seems to be the best option for me.

In sinkrite, whiptail provides windows, widgets, checkboxes, radio buttons, labels, text fields, etc. It was developed as a lightweight alternative to dialog. While dialog is an interface to the ncurses library, whiptail is an interface to the newt library. I chose whiptail for sinkrite because I had used dialog before and wanted to learn how whiptail works.

In the background, sinkrite and sinkrited use ssh and git to synchronize files to a remote host. In order for the automatic synchronization of sinkrited to work, the local user must be able to log into the remote machine non-interactively. Typically, this is done with ssh keys. See the explainer at howtogeek.com for more information.

For now, sinkrite is packaged as part of my jwscripts bash scripts.

This is the main menu.

sinkrite main menu

This is the config menu.

sinkrite config menu

This is the write menu.

sinkrite write menu