4 ms·
For the past month, I've been working on this terminal text reader project for fun. It started out as a project to learn more about how to structure and impleme
by octobanana 8y ago
For the past month, I've been working on this terminal text reader project for fun. It started out as a project to learn more about how to structure and implement a text-based user interface with vi inspired features. It's written in C++17 and is released under the MIT license. I wanted to share it here in case someone may find it interesting.
Fltrdr, or flat-reader, is an interactive text reader for the terminal. It is flat in the sense that the reader is word-based. It creates a horizontal stream of words, ignoring all newline characters and reducing sequential whitespace. Its purpose is to facilitate reading, scanning, and searching text. The program also has a play mode that moves the reader forward one word at a time, along with a configurable words per minute (WPM) setting.
It is highly customizable, with a configuration file to persist your settings. The colourscheme can be changed to match your environments theme using either 24-bit, 8-bit, or 4-bit colours, depending on what your terminal supports. The characters used for the text border and progress bar can be set to a character or unicode-character of your choice. Some of the UI elements, such as the border, progress bar, and status bar can be individually shown/hidden to create a more minimalistic display.
I'm open to any feedback or suggestions!
This blog post from the other week contains videos of it in action: https://octobanana.com/blog/terminal-text-reader-demo https://octobanana.com/blog/terminal-text-reader-demo
It can be found here on GitHub: https://github.com/octobanana/fltrdr https://github.com/octobanana/fltrdr
It can also be found here on my personal site: https://octobanana.com/software/fltrdr https://octobanana.com/software/fltrdr
- nmstoker 8y agoThanks for posting this. One bit of feedback: I think the video should be linked more prominently and from the README - I guessed that might be what it was for the description is a bit vague and abstract and "seeing is believing"
- codetrotter 8y agoAgreed, put a screenshot of the video with a play button at the top of the README and link it to the video. Also, make the video get to the point quicker. Open a file and start reading right away.
- octobanana 8y agoThat's a good idea, thanks! I'll make an updated video of it and add a link to it in the README.md.
- fouc 8y agoalternatively, make an animated gif to replace the static image. an animated gif made from a portion of that second video on that blog post would be pretty good I think.
- laumars 8y agoLooks good. From a personal point of view, I don't like projects that have missing letters in the name. I find them confusing to read and harder to type (even after I've learned how to pronounce it). In fact even after using `nginx` for years, I still get stuck which letters to type if ever I interrupt my muscle memory. eg I'm in the terminal and I want to launch flat-reader... now which letters do I type and which do I ignore? If you're after something that's less keystrokes to launch then I much prefer the approach of applications like Visual Studio Code (`code`) or Sublime Text (`subl3`) that take a portion of the name. So you could have something like `flatr`. That all said, you're never going to please everyone when it comes to naming things to I expect (hope) you do take my thoughts here with a pinch of salt :) As for the reader itself; it looks like a lot of thought has gone into it. Good work there.