Skip to content

0.8.1

Compare
Choose a tag to compare
@Slackadays Slackadays released this 08 Jul 20:12
· 147 commits to main since this release

CBBannerRelease8 1

The Clipboard Project is an advanced clipboard manager made for the terminal. It offers many useful features like unlimited history, a user friendly design, and a JSON API. That's why we like to say it's your new second brain!

In 3 Sentences

Added tons of little features and user experience improvements, as well as some huge optimizations! There's also a few bug fixes to help keep Clipboard as high quality as ever.

Like always, only the latest version is supported, so don't hesitate to upgrade to this one.

New

  • Improved Flatpak builds
  • Added full paths to Status and History JSON actions so that you can select them in dmenu scripts
  • Prioritized Wayland clipboard writing over X11
  • Optimized external clipboard syncing for Status
  • Added regex support for piping into Paste
  • Added automatic filesystem syncing on exit
  • Added fancy schmancy sound effects when completing after losing focus or upon an error (currently Linux only)
2023-06-23.21-29-06.mp4
  • Added CLIPBOARD_NOAUDIO to disable all sound effects (including the existing terminal bell)
  • Show all actions available in help message
  • Added elapsed time to progress indicator
  • Added creation date and owner of clipboard to Info (currently only for non-Windows)
  • Added current progress to terminal title
2023-06-23.21-53-29.mp4
  • Added smart data pasting where the clipboard number and entry plus data type will be stored in the new file's name
  • Added ability to use as a desktop app by running a custom script in the desktop entry
  • Added autocorrect for bad actions in case of misspells
  • Use automatically generated data from https://www.garykessler.net/library/file_sigs.html to make MIME and file extension inference a lot more complete
  • Added empty clipboard editing by making a new empty file
  • Added support for specifying multiple history retention limits at once
  • Added support for decimal numbers in history retention limits (like 100.42069gb or 800.85w)
  • Added support for history retention limits in seconds
  • Removed CLIPBOARD_NOEMOJI because CB now uses no emoji anymore ๐Ÿ˜
  • Optimized History action with multithreading! If you have hundreds of thousands of history entries, you'll notice that you're now getting kickASS performance here. This isn't python or webshit we're talking about here.
  • Optimized History with POSIX AIO! You'll need Linux, macOS, FreeBSD, or NetBSD to use this.
  • Optimized History by removing useless code! There was a little bit of fat to trim.
2023-06-29.08-22-29.mp4
  • Optimized bar drawing in Status, Info, History, and Search

  • Added basic Bash and Fish completions

  • Added support for using default (English) action names even when another language is selected

  • Added Search JSON action

  • Added Snap support! Now you can use this Flatpak competitor if you want

  • Added $ORIGIN support to installs so that Snap works easier

  • Made the manpage not completely suck
    Screenshot from 2023-06-29 08-25-34

  • Added smart environment variables which can tell between true and false values

  • Added compatibility with -- to mark the end of an option list

  • Optimized color formatting to be 30% faster!

  • ๐Ÿšจ BREAKING CHANGE ๐Ÿšจ Replaced CLIPBOARD_ALWAYS_PERSIST with CLIPBOARD_CUSTOMPERSIST so that you can choose which clipboards should be persistent using regex. So, if you had CLIPBOARD_ALWAYS_PERSIST set to 1 before, set CLIPBOARD_CUSTOMPERSIST to .*.

  • Added ability to copy text without quotes (") if none of the arguments are files

Here's how this works. Before, you'd need to do the following to copy text directly:

$ cb copy "Hello world!"

Now, as long as each "word" is not a valid filename, you can do the following:

$ cb copy Hello world!
  • Improved the whitespacing of inverse text
  • Improved Spanish, Portuguese, and Turkish translations (thanks, GH Copilot for pt/tr!)
  • Added French and German locale support
  • Added fuzzy file searching in case you mispellll a filename
  • Optimized MIME inference
  • Optimized file reading for small files
    Technical Stuff: On Linux and FreeBSD, the pipe size is 65K bytes and on macOS, OpenBSD, NetBSD, and DragonFlyBSD, the pipe size is 16K bytes. Reading content with a size less than these sizes will now only take 3 syscalls instead of 4.

Fixed

  • Fixed focus reporting characters showing up
  • Fixed some box drawing characters showing up as thicker ones on certain terminals (LOOKING AT YOU, KDE KONSOLE!)
  • Fixed size_t warning on macOS
  • Fixed exporting clipboards which have bad symlinks
  • Made Flatpak nightly instead of pinned to 0.8.0
  • Improved accuracy of calculating displayed message lengths
  • Fixed "last changed" date showing creation time on non-Windows in Info
  • Fixed terminal colors sometimes sticking around when doing Ctrl+C
  • Fixed indicator sticking around when doing Ignore with zero patterns set
  • Fixed history retention limit for size not being able to go above 4GB (the size of an unsigned 32 bit integer)
  • Fixed a deque access error in Search
  • Fixed Search results sometimes going off screen
  • Fixed Clear All showing a "Cleared XYZ clipboards" message even if canceling
  • Fixed color formatting for Note action
  • Improved error handling in Copy action

Changed

  • ๐Ÿšจ BREAKING CHANGE ๐Ÿšจ Renamed Status and History JSON's "name" key to "filename"
  • Changed behavior of a couple actions to prioritize argument data over piped data
  • Switched builds from MinSizeRel to Release optimization
  • Changed an emoji to box-drawing characters
  • Made progress indicator a large and long bar with a background
  • Made default color scheme a little darker
  • Made top bars of output inversely colored, and they look so good now!

image

  • Changed success/error emojis to specially formatted unicode equivalents

image

  • Changed "(Unknown)" as default content type in Info to "text/plain"

๐Ÿ“ Notes

If you're a package maintainer for CB on Linux, then you'll need to add ALSA as a dependency.

The new History multithreading optimization only works if your system has multiple CPU cores available. The more cores you have, the faster History will be.