All Projects → 2mol → Pboy

2mol / Pboy

Licence: bsd-3-clause
a small .pdf management tool with a command-line UI

Programming Languages

haskell
3896 projects

Projects that are alternatives of or similar to Pboy

Nnn
n³ The unorthodox terminal file manager
Stars: ✭ 13,138 (+1884.59%)
Mutual labels:  productivity, command-line, tui
Moe
A command line based editor inspired by vi/vim. Written in Nim.
Stars: ✭ 252 (-61.93%)
Mutual labels:  console-application, command-line, tui
jira-cli
🔥 [WIP] Feature-rich interactive Jira command line.
Stars: ✭ 809 (+22.21%)
Mutual labels:  productivity, tui
Nb
CLI and local web plain text note‑taking, bookmarking, and archiving with linking, tagging, filtering, search, Git versioning & syncing, Pandoc conversion, + more, in a single portable script.
Stars: ✭ 3,846 (+480.97%)
Mutual labels:  productivity, command-line
Castero
TUI podcast client for the terminal
Stars: ✭ 375 (-43.35%)
Mutual labels:  command-line, tui
Notica
Send browser notifications from your terminal. No installation. No registration.
Stars: ✭ 215 (-67.52%)
Mutual labels:  productivity, command-line
px
ps and top for human beings
Stars: ✭ 151 (-77.19%)
Mutual labels:  tui, console-application
Sad
CLI search and replace | Space Age seD
Stars: ✭ 350 (-47.13%)
Mutual labels:  command-line, tui
Brotab
Control your browser's tabs from the command line
Stars: ✭ 137 (-79.31%)
Mutual labels:  productivity, command-line
Jrnl
Collect your thoughts and notes without leaving the command line.
Stars: ✭ 5,126 (+674.32%)
Mutual labels:  productivity, command-line
Rtv
Browse Reddit from your terminal
Stars: ✭ 4,558 (+588.52%)
Mutual labels:  command-line, tui
Htop
htop is an interactive text-mode process viewer for Unix systems. It aims to be a better 'top'.
Stars: ✭ 5,626 (+749.85%)
Mutual labels:  console-application, tui
Sudo Productivity
Boost your "productivity" to the max! A fun project made for slackers by slackers.
Stars: ✭ 190 (-71.3%)
Mutual labels:  productivity, command-line
Git Town
Generic, high-level Git workflow support!
Stars: ✭ 1,937 (+192.6%)
Mutual labels:  productivity, command-line
xplr
A hackable, minimal, fast TUI file explorer
Stars: ✭ 2,271 (+243.05%)
Mutual labels:  productivity, tui
Proji
A powerful cross-platform CLI project templating tool.
Stars: ✭ 156 (-76.44%)
Mutual labels:  productivity, command-line
Php Console
🖥 PHP CLI application library, provide console argument parse, console controller/command run, color style, user interactive, format information show and more. 功能全面的PHP命令行应用库。提供控制台参数解析, 命令运行,颜色风格输出, 用户信息交互, 特殊格式信息显示
Stars: ✭ 310 (-53.17%)
Mutual labels:  console-application, command-line
Box
📦🚀 Fast, zero config application bundler with PHARs.
Stars: ✭ 574 (-13.29%)
Mutual labels:  console-application, command-line
Check It Out
A command line interface for Git Checkout. See branches available for checkout.
Stars: ✭ 127 (-80.82%)
Mutual labels:  productivity, command-line
Py cui
A python library for intuitively creating CUI/TUI interfaces with widgets, inspired by gocui.
Stars: ✭ 380 (-42.6%)
Mutual labels:  command-line, tui
pboy screenshot

GitHub CI

Paperboy is a tiny .pdf management utility.

If you download papers and other pdf documents, you might have noticed that filenames like 1412.4880.pdf are not terribly helpful for finding anything later on. Especially if your download folder also contains about eighty files along the lines of catloaf.jpg, David_Lynch_Teaches_Typing.zip, and 160502_0001.wav.

This tool helps with that. It will offer to rename and move files to a specified folder, and it even gives some filename suggestions by looking at the content and the pdf metadata.

Paperboy keeps its file management dumb on purpose (no keeping files in a database or hidden library folder), so you can uninstall it at any time and your files will remain perfectly accessible.

Usage

  • Open a new file import dialog with Enter or Space.
  • Switch between inbox and library with Tab.
  • Open a file from the library with Enter or Space.
  • Rename an already imported file with r.
  • Quit the application with Esc or q or abort with Ctrl + c.

Install

Homebrew on macOS

If you're a Homebrew user, you can install the latest version and its dependencies from the repo's tap:

$ brew install 2mol/tools/pboy

Linux/Mac binary release

Download the archive for your operating system from https://github.com/2mol/pboy/releases. Extract and install it with

$ tar zxvf pboy*.tar.gz
$ mv pboy ~/.local/bin/

For the latter to work, ~/.local/bin/ needs to exist and be in your PATH. Alternatively, put it in /usr/local/bin.

Linux, any distro

I am still looking to package Paperboy for Debian/Ubuntu, Arch/Manjaro, Fedora, Doge Linux, or whatever else people install these days.

Any pointers or help with regards to generate .deb, .rpm, AUR PKGBUILD, etc is appreciated. Ideally this could be mostly automated in CI, in the end Paperboy is just a single binary with a dependency or two. How do other packages do it? If you got a good example or link, open a GitHub issue!

Cabal/Stack

Make sure you have poppler installed, which will provide both pdftotext and pdfinfo. On Linux, install poppler with your package manager of choice. If you are on Mac and using Homebrew you can do brew install poppler.

Assuming you have cabal or stack, the following will compile, then install the pboy executable in your .local/bin:

$ git clone [email protected]:2mol/pboy.git
$ cd pboy
$ stack install

Replace stack install with cabal new-install at your leisure.

Nix

If you have Nix, then you can install pboy with a single command:

$ nix-env -if https://github.com/2mol/pboy/tarball/main

Config

Paperboy creates a pboy.ini in your XDG config directory. This is probably in ~/.config/pboy/pboy.ini, the welcome or help screen will tell you. Use this to change your library and incoming folders, as well as to specify whether you want to move the imported files or just copy them.

Current Limitations

Paperboy doesn't do anything fancy with providing renaming patterns yet. For example, some people requested to be able to specify a format like author-document_name-date.pdf, others have asked if they could compose multiple suggestions into one. I haven't figured out a way to do this while keeping the UI simple and straightforward, so the idea needs a bit of design work first.

Contribute

You're very welcome to suggest new features or open issues. See the Roadmap https://github.com/2mol/pboy/blob/main/Roadmap.md to get an idea about what's planned for future releases.

Releases can be created by pushing a new tag:

git tag -a 1.99rc1 -m "release candidate 1.99"
git push --follow-tags

This will publish compiled assets for OSX and Linux, but only create a prerelease. Once you're confident that the executable isn't broken, a repo contributor can mark the version as a release.

Finally, to publish the new version via Homebrew, the tools repo has to be updated with the SHA256 of pboy-osx.tar.gz. You can find it in the CI logs, or you could run shasum -a 256 pboy-osx.tar.gz manually.

Thanks

  • brick is a lovely way to a write a command-line UI.
  • nmattia did the work to get Paperboy to build with nix and patiently explained some of the basics to me.
  • OsugiSakae and bri-an on reddit helped me with an annoying performance issue!
  • Nils Steinger for feature contributions.
  • Adrian Sieber for contributing.

The name 'Paperboy' is a reference to this game, which I had for the NES and never quite mastered.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].