DEV Community

Jian Z'car Esteban
Jian Z'car Esteban

Posted on

FuzPad - A minimalistic note management solution. Powered by fzf

📙FuzPad!

FuzPad is a minimalistic note management solution. Powered by âš¡junegunn/fzfâš¡

Sample Image Sample Image Sample Image Sample Image

Features

  • New: Create a new note with the current date and time as the filename.
  • Open: Open an existing note.
  • Search: Search within notes for specific content.
  • Delete: Delete selected notes.
  • Version control: Automatically commits changes to your notes.

Planned Features

  • Tags: tagging system
  • Make an installer: use brew for packaging
  • CLI: create a cli that allows piping, etc.

Goals

  • Provide a straightforward and minimalistic note management solution using a Bash script.
  • Ensure ease of use with intuitive commands and interface.

Requirements

  • Bash
  • fzf (fuzzy finder)
  • bat (for enhanced preview)
  • Your preferred text editor (default is nano)

Usage

  1. Clone the repository:
git clone https://github.com/JianZcar/notes-bash.git
cd notes-bash
Enter fullscreen mode Exit fullscreen mode
  1. Make the script executable:
chmod +x bin/notes
Enter fullscreen mode Exit fullscreen mode
  1. Run the script:
./bin/notes
Enter fullscreen mode Exit fullscreen mode

Configuration

  • Default Directory: Change the default directory for notes by modifying the FUZPAD_DIR variable in the script or by setting it in your ~/.bashrc file:
  export FUZPAD_DIR="$HOME/Documents/.notes"
Enter fullscreen mode Exit fullscreen mode
  • Text Editor: Change the text editor by modifying the EDITOR variable in the script or by setting it in your ~/.bashrc file:
  export EDITOR="nano"
Enter fullscreen mode Exit fullscreen mode
  • Text Format: Change the text format by modifying the TEXT_FORMAT variable in the script or by setting it in your ~/.bashrc file:
  export FUZPAD_TEXT_FORMAT="txt"
Enter fullscreen mode Exit fullscreen mode
  • Date Time Format: Change the date and time format used for note filenames by modifying the DATE_TIME_FORMAT variable in the script or by setting it in your ~/.bashrc file:
  export FUZPAD_DATE_TIME_FORMAT="%Y-%m-%d-%H-%M-%S"
Enter fullscreen mode Exit fullscreen mode
  • BAT Theme: Change the theme used by bat for previewing notes by modifying the BAT_THEME variable in the script or by setting it in your ~/.bashrc file:
  export FUZPAD_BAT_THEME="OneHalfLight"
Enter fullscreen mode Exit fullscreen mode
  • Reverse List: Set to true to reverse the order of the list when opening or deleting notes by modifying the REVERSE_LIST variable in the script or by setting it in your ~/.bashrc file:
  export FUZPAD_REVERSE_LIST="false"
Enter fullscreen mode Exit fullscreen mode
  • Sort Format: Change the sorting format for listing notes (T@ for creation date, Y for modified date) by modifying the SORT_FORMAT variable in the script or by setting it in your ~/.bashrc file:
  export FUZPAD_SORT_FORMAT="T@"
Enter fullscreen mode Exit fullscreen mode
  • Preview Size: Change the size of the preview window for fzf by modifying the PREVIEW_SIZE variable in the script or by setting it in your ~/.bashrc file:
  export FUZPAD_PREVIEW_SIZE="70%"
Enter fullscreen mode Exit fullscreen mode
  • Start Line Search Preview: Set the starting line number for the search preview by modifying the START_LINE_SEARCH_PREVIEW variable in the script or by setting it in your ~/.bashrc file:
  export FUZPAD_START_LINE_SEARCH_PREVIEW="5"
Enter fullscreen mode Exit fullscreen mode
  • End Line Search Preview: Set the ending line number for the search preview by modifying the END_LINE_SEARCH_PREVIEW variable in the script or by setting it in your ~/.bashrc file:
  export FUZPAD_END_LINE_SEARCH_PREVIEW="9999"
Enter fullscreen mode Exit fullscreen mode

After adding the necessary variables to your ~/.bashrc file, remember to source it to apply the changes:

source ~/.bashrc
Enter fullscreen mode Exit fullscreen mode

Contributing

Feel free to fork the repository and submit pull requests. Contributions are welcome.
Happy notetaking

Top comments (0)