tpnote

Crates.iotpnote
lib.rstpnote
version1.25.14
created_at2022-04-09 08:06:35.760994+00
updated_at2025-08-02 14:13:10.594554+00
descriptionMinimalistic note-taking: save and edit your clipboard content as a note file
homepagehttps://blog.getreu.net/projects/tp-note/
repositoryhttps://gitlab.com/getreu/tp-note
max_upload_size
id564684
size337,853
Jens Getreu (getreu)

documentation

https://blog.getreu.net/projects/tp-note/tpnote--manual.html

README

Tp-Note: Markup enhanced granular note-taking

Save and edit your clipboard content as a note file

Cargo Documentation License

Overview of Tp-Note

Tp-Note is a versatile note-taking tool designed for both desktop and console environments. It allows users to create, edit, and manage notes efficiently. This tool is ideal for users looking for a simple yet powerful way to manage their notes across different platforms.

Screenshot

Key Features

  • Clipboard Integration: Tp-Note can save and edit clipboard content as note files, making it easy to capture information quickly.

  • Template System: It uses customizable templates to synchronize note metadata with filenames, enhancing organization.

  • Markdown Support: Users can convert HTML content to Markdown. Notes are rendered from Markdown to HTML when viewed with Tp-Note's internal web server.

  • File Management: Notes can be created from existing files or directories, and users can easily navigate and edit their notes.

Usage Examples

Action Command Example
Create a note from clipboard tpnote (when clipboard contains text)
Convert HTML to Markdown curl https://example.com | tpnote
Edit an existing note tpnote ./path/to/note.md
Generate PDF from a note tpnote -x - note.md | weasyprint - note.pdf

User review

On Tue, 2023-12-19 at 12:58 +1100, Dev Rain wrote:

Found Tp-Note awhile back and it has become part of my daily workflow, and indeed part of my daily note-taking life. I wanted to extend my thanks; so thank you. dev.rain

Read more in Tp-Note’s user manual, Download Tp-Note or visit the project page: Tp-Note - Minimalistic note-taking.


Documentation

User documentation:

Developer documentation:

Source code

Repository:

Distribution

Download installer packages and binaries

Tp-Note Microsoft Windows installer package

  • Installer package for Windows:

    tpnote-latest-x86_64.msi

    As this early version of the Windows installer is not signed yet, Windows will show the error message “Windows protected your PC”. As a work-around, when you click on the link “More info”, a ”Run anyway” button will appear allowing you to continue the installation process. In general, regardless of where a program comes from, I recommend checking every installable file with VirusTotal.

Tp-Note Debian/Ubuntu installer package

Various binaries for Windows, MacOS and Linux

Tp-Note in official package repositories

Tp-Note on NetBSD

  • An official package is available on NetBSD and other "pkgsrc" supported platforms.

    To install Tp-Note on NetBSD, simply use the native package manager:

    pkgin install tpnote
    

Tp-Note on NixOS

  • An official package is available on NixOS:

    environment.systemPackages = [ pkgs.tpnote ]; 
    

Get Tp-Note with the Nix package manager

Other resources

  • Copy the Unix man-page to /usr/local/share/man/man1:

  • Copy Tp-Note's icon to /usr/local/share/icons/:

Installation

Tp-Note can be installed via a Windows installer package or by placing the binary directly on your desktop for easy access. It is recommended to integrate it into your file manager's context menu for convenience.

Depending on the availability of installer packages for your operating system, the installation process is more or less automated. For Windows users the fully automated installation package tpnote-latest-x86_64.msi is available. For more information, please consult the Distribution section above and the Installation section in Tp-Note's manual.

Upgrading

While upgrading Tp-Note, new features may cause a change in Tp-Notes's configuration file structure, e.g.:

*** ERROR:
Can not load or parse the (merged) configuration file(s):
---
invalid length 3, expected fewer elements in array in `viewer.served_mime_types`


Note: this error may occur after upgrading Tp-Note due to some incompatible
configuration file changes.

Tp-Note renames and thus disables the last sourced configuration file.

Additional technical details:
*    Command line parameters:
tpnote -b 
*    Sourced configuration files:
/home/joe/.config/tpnote/tpnote.toml

Mote, the configuration file backup is stored in the same directory as the last sourced configuration file, e.g. /home/joe/.config/tpnote/. If Tp-Note sources more than one configuration file, consider the possibility of syntax errors in any of these files (cf. Customization section of Tp-Note's man-page).

Building

If the above precompiled binaries do not suite you, you can compile Tp-Note yourself.

  1. Install Rust

  2. Download, compile and install Tp-Note:

    Building on Linux

    cargo install tpnote
    sudo cp ~/.cargo/bin/tpnote /usr/local/bin
    # Download icon
    cd /usr/local/share/icons
    sudo wget https://blog.getreu.net/projects/tp-note/assets/tpnote.svg
    

    On Linux, Tp-Note displays errors and debug messages as notifications. This requires a Linux/BSD based desktop environment that follows the XDG specification, e.g. KDE, Gnome, XFCE, LXDC, Mate (and most others).1

    Recommended Linux console and server version

    The full-featured version of Tp-Note depends on GUI libraries like Xlib which might not be available on a headless system. Either download the Musl version x86_64-unknown-linux-musl/release/tpnote or compile Tp-Note yourself without default features:

    cargo install --no-default-features \
      --features lang-detection,renderer tpnote
    sudo cp ~/.cargo/bin/tpnote /usr/local/bin
    

    If Tp-Note's binary size if of concern, omit the lang-detection feature in the cargo invocation above. The lang-detection feature causes 95% of the final binary size because of its extensive language models.

    Building on Windows and macOS

    Build the full-featured version2 with:

    cargo install tpnote
    

Cross compilation

Debian makes it easy to cross-compile for foreign architectures. Here are some examples:

  • Target Musl:

    rustup target add x86_64-unknown-linux-musl
    sudo apt install musl-tools
    
    cargo build --target x86_64-unknown-linux-musl --release
    
  • Target Raspberry Pi (32 bit):

    rustup target add armv7-unknown-linux-gnueabihf
    sudo apt install crossbuild-essential-armhf
    
    CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_LINKER=/usr/bin/arm-linux-gnueabihf-gcc \
    cargo build --target armv7-unknown-linux-gnueabihf --release
    
  • Target Raspberry Pi (arm64, 64 bit):

    rustup target add aarch64-unknown-linux-gnu
    sudo apt install crossbuild-essential-arm64
    
    CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=/usr/bin/aarch64-linux-gnu-gcc \
    cargo build  --target aarch64-unknown-linux-gnu --release
    
  • Target Windows:

    rustup target add x86_64-pc-windows-gnu  
    sudo apt install binutils-mingw-w64 mingw-w64
    cargo build --target x86_64-pc-windows-gnu --release 
    

This project follows Semantic Versioning.

About

Author:

  • Jens Getreu

Copyright:

  • Apache 2 license or MIT license.

Footnotes

  1. In case an XDG desktop environment is not available, you can opt out notifications and message boxes by omitting the message-box feature by adding --no-default-features --features lang-detection,read-clipboard,renderer,viewer to cargo install tpnote. Now, all error messages are dumped on the console from where you started Tp-Note into stderr.

  2. When building for Windows or macOS, it does not make sense to exclude the message-box feature, because - under Windows and macOS - it does not rely on the notification library. Instead, it uses direct OS-API calls for popping up alert boxes. As these calls have no footprint in binary size or speed, always keep the message-box feature compiled in.

Commit count: 2215

cargo fmt