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

Sentry image

Hands-on debugging session: instrument, monitor, and fix

Join Lazar for a hands-on session where you’ll build it, break it, debug it, and fix it. You’ll set up Sentry, track errors, use Session Replay and Tracing, and leverage some good ol’ AI to find and fix issues fast.

RSVP here →

Top comments (0)

Qodo Takeover

Introducing Qodo Gen 1.0: Transform Your Workflow with Agentic AI

Rather than just generating snippets, our agents understand your entire project context, can make decisions, use tools, and carry out tasks autonomously.

Read full post