Close

First Prototype

A project log for Distraction-Free Linux-Based Word Processor

Recreating the FreeWrite/AlphaSmart experience in linux

kumarKumar 09/06/2020 at 14:270 Comments

Currently the project is based on an i3 Intel NUC running Xubuntu + FocusWriter. I have a couple of decisions to make:

1. Should I stick with Intel, go to ARM or stay processor-agnostic?

2. Should I use native fullscreen applications or web-based ones running in FIrefox in kiosk mode?

3. How to Sync? Should I support cloud/network storage, USB drives or adding hardware to emulate a keyboard like the AlphaSmart?

Currently (1) doesn't seem to be too important. There are pros and cons either way. Staying on Intel means better availability of pre-prackaged software and the ability to use the majority of Chromebooks. Going to ARM means the ability to use Pis, Pi0's and PineBooks, and is probably a better choice for a hacker project. A cyberdeck version would be pretty sweet.

With (2) the majority of writing applications are written natively so I haven't found any self-hosted browser-based solutions for writing other than https://github.com/writeas/writefreely. However, a Firefox kiosk-based solution means a couple other benefits: I can limit internet access by whitelisting sites rather than removing or disabling networking hardware. This means that I'm not limited to self-hosted solutions and can use ones that are fully or partly cloud-based like https://www.calmlywriter.com/. This also makes it easy to add local web-based capabilities like SageMath/Falstad, or other cloud-based ones like Cocalc/Repl.it/Overleaf. Honestly, having calculator functionality is more interesting to me than just a writing tool (I'm an engineer and frankly not much of a writer).

With (3) supporting cloud/network storage is easiest from the user-interface perspective. Using USB drives means the need to give the user access into the filesystem, complicating UI. And much as I like my AlphaSmart, emulating a keyboard is a slow unreliable and pretty rubbish way of transferring data.

Discussions