FuzPad

0

A minimalistic note management solution. Powered by fzf

Productivity

note-taking
fzf
bash-script
bash

📙FuzPad!

FuzPad is a minimalistic note management solution. Powered by ⚡junegunn/fzf

Download FuzPad
SourForgeDownloads GithubDownloads

🎉 Over 100 Downloads 🎉

Linux MacOS

ReleaseStatus HomebrewStatus
CommitsSinceLatestRelease

Sample Image Sample Image
Sample Image Sample Image

Star History Chart

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.
  • Tags: Tagging system to organize notes.
  • Icons: Visual icons for better user experience.

Planned Features

  • CLI: Create a CLI that allows piping, etc.

How to tag a note

  1. Create or Open a Note: Select "New" to create a new note or "Open" to edit an existing note.
  2. Add a Tag: In the note, ensure the tag is on the 2nd line right after the title. Use the format #tag. For example:
    My Note Title
    #important
    This is the content of the note.
    

This will help you organize and search your notes using tags.

Goals

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

Requirements

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

Installation

Download FuzPad

Using Homebrew

brew install JianZcar/packages/fuzpad

Using curl

~/.local/bin should be in your PATH

curl -s https://gist.githubusercontent.com/JianZcar/df050e108b462e469f413f0eec229143/raw | bash

Manual Installation

  1. Clone the repository:
git clone https://github.com/JianZcar/FuzPad.git
cd FuzPad
  1. Make the script executable:
chmod +x bin/fuzpad
  1. Run the script:
./bin/fuzpad

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"
    
  • 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"
    
  • 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"
    
  • 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"
    
  • 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"
    
  • 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"
    
  • 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[...]

    export FUZPAD_SORT_FORMAT="T@"
    
  • 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%"
    
  • 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"
    
  • 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"
    
  • Icons: Turn icons on or off by modifying the FUZPAD_ICON variable in the script or by setting it in your ~/.bashrc file:

    export FUZPAD_ICON="1"  # Set to "0" to turn off icons
    

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

source ~/.bashrc

Updates

  • Major Updates: No clear dates at the moment.
  • Minor Updates: Released every Monday.
  • Patch Updates: Released as soon as possible.

Support

  • ⭐ If you like the project, please leave a star!
  • 💖 Consider becoming a sponsor to support ongoing development.

Contributing

We welcome contributions from the community! Please refer to the Contributing Guidelines for more details on how to get started.

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

License

This project is licensed under the terms of the GNU General Public License v3.0. For more details, see the LICENSE file in the repository.