notes.sh (1234B)
1 #!/usr/bin/env bash
2 # SPDX-FileCopyrightText: 2024 JayVii <jayvii[AT]posteo[DOT]de>
3 # SPDX-License-Identifier: GPL-3.0-or-later
4
5 # Config -----------------------------------------------------------------------
6 ## Where is your notes folder?
7 NOTES_DIR="$HOME/Notes"
8 ## Default category for your notes (sub-folder in $NOTES_DIR)
9 DEFAULT_CATEGORY="Work"
10 ## Your Editor of choice (uses fallback, if $EDITOR is unset)
11 if [ -z "$EDITOR" ]; then
12 EDITOR="vi"
13 fi
14
15 # List all Notes files ---------------------------------------------------------
16
17 ## List all present notes (remove full path from display)
18 FILES=$(
19 find "${NOTES_DIR}" -type f | \
20 sed -e "s#${NOTES_DIR}/##g"
21 )
22
23 ## Add today's date as empty file
24 FILES=$(
25 printf "${DEFAULT_CATEGORY}/$(date +%Y_%m_%d).md\n${FILES}" | \
26 sort --reverse | \
27 uniq
28 )
29
30 # Select Notes file ------------------------------------------------------------
31 CHOOSEN=$(
32 echo "$FILES" | \
33 fzf \
34 --preview="if [ -f ${NOTES_DIR}/{} ]; then cat ${NOTES_DIR}/{}; fi" \
35 --layout=reverse \
36 --query="${DEFAULT_CATEGORY}"
37 )
38
39 # Open Notes file --------------------------------------------------------------
40 if [ ! -z "$CHOOSEN" ]; then
41 ${EDITOR} "${NOTES_DIR}/${CHOOSEN}"
42 fi
43
44 # EOF notes.sh