A simple cli based note taking application written in shellscript https://notabug.org/JasKinasis/note
|Jason Trunks 7c29a6df92 Updated the year from 2022 to 2023||11 months ago|
|completion||11 months ago|
|doc||11 months ago|
|src||11 months ago|
|.gitignore||5 years ago|
|INSTALL.md||11 months ago|
|README.md||11 months ago|
|fdl.md||5 years ago|
|gpl.md||5 years ago|
|install.sh||11 months ago|
|uninstall.sh||11 months ago|
A simple note management application for the command-line https://notabug.org/JasKinasis/note
note is a simple shellscript which can be used to create/manage notes in the terminal. Unlike more advanced note-taking applications that put notes in databases and deal with tagging etc. note is a little more basic.
There aren't any!
note should run in any Unix-like terminal based environment that can run bash. I've only tested it in bash, but it will probably work in other shells too. It definitely works on cygwin under Windows (again, with bash!) - because I use cygwin on Windows PC's at work.
espeak is an optional dependency - it is only required if you want to hear your notes read aloud in a dead, soulless, robotic, brummie voice!
note - Display a list of all notes
note filename - Open a note called "filename" in the editor - (if the file does not exist it will be created when the file is saved)
note -ls - list notes by size
note -la - list notes alphabetically
note -v filename - view filename in pager
note -d file1 file2 ... delete one or more notes
note -r oldfile newfile rename a note
note -R filename - read file aloud via espeak
note --backup - Backup notes and settings to the users home dir in a file (note-backup-YYYY-MM-DD.tar.gz)
note -s word - Search for notes containing "word" (case insensitive)
note -S word - Search for notes containing "word" (case sensitive)
note -h - display help/usage information
note comes with man pages.
When note is first ran, it silently runs notesettings (note's settings management script) and creates a configuration file. All of note's defaults can be edited by running notesettings (see man notesettings, or notesettings -h), or by manually editing the config file: /home/user/.note/settings.cfg
note's default configuration uses the following:
Editor: Note's default text editor will be the systems default command-line text editor (defined by the environment variable $EDITOR) Many distros set nano as the default terminal text editor. But some users might have it set as vi, or vim, or emacs, or ed etc. etc. And if you are using note on someone elses computer, who doesn't like your favourite text editor, you can always reconfigure note to use YOUR favourite editor (if the owner of the computer you are using has it installed)!
Pager: Note's default pager is less. Again, you can change it to more, or cat, or w3m, or lynx, or tac (if you want to view your notes backwards, you weirdo!).
Backup file policy: by default note will delete text editor backup files Setting the editor-backups variable to 1 will cause note to preserve any backup files -- IMPORTANT: Note currently only removes vim backup files (e.g. files with a tilde ~ at the end.) I haven't added code to detect and delete backup files from any other editors
All notes are saved to: /home/user/.note/notes/
This project was originally intended for my own use. So I could quickly take notes and save them to a centralised location and quickly view them when needed. As such there were minimal requirements for this. The whole thing is designed to be simple, yet configurable enough for others to be able to use different editors/pagers.
My main motivation for creating note was laziness. I got annoyed with having to type
vim ~/notes/nameofnote when creating, or opening note files when working in different parts of the file-system.
I also got bored of endlessly typing
ls ~/notes/ to remind myself of the file-names of my existing notes.
I wanted something quicker and easier. I wanted to be able type
note nameofnote and just know that my note would be created in a predictable location.
And when I want to see a list of my notes, I could just type
That way, when working in the terminal - I can instantly create or view notes wherever I am in the file-system.
And that's how note began - as a wrapper around vim and less.
Over time, I gradually added some minor bits of functionality that I have found handy.
The brummie robot TTS functionality was added as a result of a prank that backfired on me a little.
One afternoon I was messing around with espeak and managed to convince my youngest son that my laptop was talking to him. Unfortunately, the illusion was a little too convincing. At bedtime, he demanded that my laptop should read him his bed-time story. So I quickly fired up note and typed up one of his favourite stories (from memory) while he was getting ready for bed. At bedtime, I ran the text through espeak while I held the book up to the laptop and turned the pages (how else could it read it?). And he absolutely loved it!
As a result - my laptop ended up reading his bedtime stories for the rest of the month. So I quickly decided to add the TTS functionality to note, to make bedtimes a little easier, heh heh... And I used the brummie voice because it was the voice I used in my original prank..... True story!
If you've read this far - thanks for sticking with me! Note is not a revolutionary piece of software. It doesn't do anything particularly amazing. It just saves a few key-strokes when you want to quickly make, or retrieve some notes that you have made. It also helps to keep your train of thought whilst working - no more thinking "Where did I save that note?" or "What was that note called again?" It's been a folly of mine for a number of years. I use it almost every day at home and at work. And I'm finally getting around to sharing it. Even if only one person finds it useful - I'll be happy!
From time to time, I may update it to make improvements, fix bugs and/or add additional functionality. But I don't plan to do huge amounts to it. It already does everything I need it to do..... For now!
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".
© 2013-2023 Jason Trunks