Terminal productivity software

From Gentoo Wiki
Jump to:navigation Jump to:search

Terminal productivity software are applications designed to run within the constraints of a text-based terminal window that are typically associated with GUI-based office productivity software.

The reasons for preferring a terminal application to a graphical one are varied and numerous. Sometimes this can be for practical reasons, for example vision impaired users may find terminal software easier to integrate into their screen readers. Alternatively, a user may simply find the terminal less distracting than a graphical environment, find the keyboard interface more productive, or just prefer the simple aesthetic a terminal offers.

See also
See recommended tools for basic terminal software tools, see recommended applications for graphical software.

Some activities are strongly associated with one or more human readable text file formats and others are not. The following is not a complete list, but represents a sampling of terminal based productivity software.

Adding to this page

The applications listed here should be widely useful, and of sufficient quality, to merit inclusion.

If you regularly use a desktop software package from the Gentoo repository and can confirm it is of excellent quality, stable and of broad appeal for common tasks, please add it to the list! The software should at least be maintained (i.e. relatively recent commits to the source; have periodic releases; not have too many reported bugs; most bugs should be getting fixed rather than accumulating, etc.), and preferably be well documented and from the stable branch. Please don't use this page just to promote a package because you like it, are an author or have other interest, etc.

It is good practice to create a stub article for any package added here that does not have a page already, as anything notable enough to be listed here is notable enough to have a dedicated page.

Adding New Terminal Productivity eBuilds to Portage

If you have the skills to maintain ebuilds and want to see Gentoo support more terminal productivity applications:

  • Check the GURU repository to see if there is anything that can be stabilized and brought over to the Portage tree.
  • Check this list of Awesome TUIs and other similar lists on web.

Word processing, text editing, and document creation

Name Package Description
asciidoc app-text/asciidoc Converts AsciiDoc formatted text files to DocBook XML or HTML.
asciidoctor dev-ruby/asciidoctor A processor for converting AsciiDoc to HTML 5, XHTML 5, DocBook 5, or manpage.
asciidoctor-pdf dev-ruby/asciidoctor-pdf (GURU) A native PDF converter for AsciiDoc based on Asciidoctor and Prawn.
emacs app-editors/emacs Extensible text editor.
glow app-misc/glow Read, organize and render Markdown documents.
joe app-editors/joe Text editor with key bindings very similar to the first generation word processor WordStar.
m4 sys-devel/m4 A powerful macro processor that can be used with any markup language or even plain text.
Neovim app-editors/neovim A text editor forked from vim focused on extensibility and agility.
TeX app-text/texlive Typesetting markup language for scholarly and technical works made famous by The Art of Computer Programming. Note there are many LaTeX packages in the Gentoo ebuild repository, depending on needed use.
vim app-editors/vim Powerful mode-based text editor. Note there are several vi-like packages in the Gentoo ebuild repository, depending on preference.

Office document file format conversion

Name Package Description
antiword app-text/antiword Tool for extracting optimally marked-up text from legacy MS Word binary .doc files, an aging but lightweight alternative to using LibreOffice in headless mode to accomplish the same task.
docx2txt app-text/docx2txt Tool for extracting text from Microsoft Office Open XML .docx files.
fictionup app-text/fictionup A tool for converting Markdown formatted text to FB2 ebooks format.
mdbook app-text/mdbook A tool for creating ebooks from markdown formatted text files.
pandoc app-text/pandoc Tool for converting between document formats with its own flavor of Markdown.
pdftk app-text/pdftk gcj-free version of pdftk written in Java.
unrtf app-text/unrtf Tool for extracting text from Microsoft Rich Text .rtf files, once the "lowest common denominator" between otherwise incompatible office products.
writerperfect app-text/writerperfect A tool for converting WordPerfect, Microsoft Works, and other legacy document formats to .odt or .epub.

Document searching

Name Package Description
grep sys-apps/grep The classic tool for searching text with a fixed string or a PCRE compatible regular expression pattern.
Perl dev-lang/perl Perl is a programming language but it has a one-liner mode and supports very advanced regular expressions for non-recursive searching text. It's often thought of as grep and awk on steroids.
Raku dev-lang/rakudo Raku is a programming language but it supports a one-liner mode and has grammars for recursively searching text. It's often thought of as a highly readable grep and awk on steroids.
ripgrep sys-apps/ripgrep Modern recursive text searching tool with PCRE support.
sgrep app-text/sgrep Add structural criteria to grep and index text, SGML or XML.

Spelling and grammar checking

Name Package Description
aspell app-text/aspell A tried and true free and open source spell checker.
diction app-text/diction adds diction for grammar checking capability and style for readability analysis.
hunspell app-text/hunspell A spell checker, morphological analyzer.
vale app-text/vale (GURU) A syntax-aware linter for prose built with speed and extensibility in mind.

Spreadsheets, calculators, and accounting ledgers

Name Package Description
bc sys-devel/bc Fixed-point calculator which is powerful but less flexible than a Perl one-liners.
ledger app-office/ledger Powerful double-entry accounting program with a plain text file format, the release of which sparked the Plain Text Accounting movement.
sc-im app-office/sc-im Spreadsheet Calculator — Improvised is a modern full featured spreadsheet program with vim-like keyboard bindings and a VisiCalc aesthetic.

Simple databases

Name Package Description
jq app-misc/jq A tool for querying JSON data written in C.
xmlstarlet app-text/xmlstarlet A tool for querying, transforming, and validating XML documents.
yq app-misc/yq A tool for querying and processing YAML, TOML, JSON, and XML.

Presentation software

Name Package Description
beamer dev-tex/latex-beamer Addon to LaTeX that produces PDF slides.

Email and Usenet Newsreaders

Name Package Description
alpine mail-client/alpine A modern descendant of the Pine email client and Usenet newsreader, intended to be easy to use by just about everybody.
mutt mail-client/mutt Mutt is a text-based email client and Usenet newsreader, intended to be highly customizable.
neomutt mail-client/neomutt NeoMutt is a command line email client and Usenet newsreader forked from mutt.
newspost net-nntp/newspost A usenet binary autoposter for Linux.
nzbget net-nntp/nzbget A command-line based binary newsgrabber supporting .nzb files.
sabnzbd net-nntp/sabnzbd Binary newsgrabber with web-interface.
slrn net-nntp/slrn The classic text-based newsreader, akin to mutt.
tin net-nntp/tin A threaded NNTP and spool-based Newsreader.

Email utilities

Name Package Description
abook app-misc/abook A text-based address book program designed to use with Mutt and Neomutt.
htag app-text/htag Adds randomizable signatures to emails such as pithy quotes.
muttprint app-misc/muttprint A tool for printing beautified emails from mutt.
mutt-wizard mail-client/mutt-wizard A system for automatically configuring neomutt and isync.
notmuch net-mail/notmuch An email indexing and search tool.

RSS readers and podcatchers

Name Package Description
newsboat net-news/newsboat Text-based RSS reader.
podget media-sound/podget Podcatcher written in Bash that is optimized for running as a scheduled task.
sfeed net-news/sfeed Simple RSS and Atom parser.

IRC and other chat clients

Name Package Description
irssi net-irc/irssi A modular highly scriptable terminal-based IRC client with a long history.
Profanity net-im/profanity A ncurses-based XMPP client inspired by irssi.
WeeChat net-irc/weechat A portable highly scriptable terminal-based chat client that supports IRC among other protocols and has optional web and GUI interfaces. Popular as an IRC bouncer.

Time management

Name Package Description
calcurse app-office/calcurse A text-based calendar and scheduling application written in C.
khal app-misc/khal Modern appointment calendar application for the terminal written in Python.
Taskserver app-misc/taskd Server component to Taskwarrior which enables various subscribers, including mobile phone apps.
Taskwarrior app-misc/task To-do list with scheduling, task prioritization, and tagging.
Timewarrior app-misc/timew Time management with optional Taskwarrior integration.
Visual Interactive Taskwarrior app-misc/vit A curses-based front-end for Taskwarrior with vim-like keybindings.

Web browsers

Name Package Description
curl net-misc/curl A command line tool for sending and receiving data over many protocols, including HTTP/HTTPS.
elinks www-client/elinks Well-established text-mode web browser.
links www-client/links Early, interactive web browser for the terminal.
lynx www-client/lynx Console-based web browser with SSL support.
w3m virtual/w3m More modern terminal-based web browser with support for image rendering (note there are several versions in the repository: this is a virtual package).
wget net-misc/wget Non-interactive tool for fetching content from the web.

Multimedia

Name Package Description
cmus media-sound/cmus ncurses based music player with plugin support for many file formats.
moc media-sound/moc ncurses music player.
mpd media-sound/mpd Server-side application for playing music with its own network protocol.
mpg123 media-sound/mpg123 Console mpeg audio player.
mpv media-video/mpv Media player for the command line.

PDF viewing

Name Package Description
less sys-apps/less Terminal pager that can automatically run pdftotext from app-text/xpdf if it happens to be installed, and allow PDF files with embedded text to be rendered on screen. Obviously, this does nothing if the file is purely image-based, such as a scan of a printed file. This occurs due to Gentoo's default LESSOPEN environment variable pointing to /usr/bin/lesspipe.
pstotext app-text/pstotext A tool for extracting embedded plain text from PostScript and PDF files.
tesseract app-text/tesseract An OCR tool that can be used to pull text from images, including PDF files that lack embedded text, which a terminal pager can handle.
xpdf app-text/xpdf A PDF viewer and collection of tools for extracting data from PDF's, especially pdftotext and pdftohdml.

File Managers

Name Package Description
cfiles sys-misc/cfiles An ncurses file manager written in C with vim-like keybindings.
fmawk sys-misc/fmawk A file manager written in awk.
lfm sys-misc/lfm Last File Manager is a powerful file manager for the console.
mc sys-misc/mc GNU Midnight Commander is a text-based file manager patterned after Norton Commander for MS-DOS.
nnn app-misc/nnn n³ The unorthodox terminal file manager.
pfm sys-misc/pfm A terminal-based file manager written in Perl.
ranger sys-misc/ranger Vim-inspired file manager for the console written in Python.
vifm sys-misc/vifm Console file manager with vim-like keybindings.
ytree sys-misc/ytree A curses-based file manager.

Terminal Multiplexers

Name Package Description
screen sys-misc/screen A screen manager with VT100/ANSI terminal emulation.
tmux sys-misc/tmux A terminal multiplexer.
zellij sys-misc/zellij A terminal workspace with batteries included

Miscellaneous

Name Package Description
gopass app-admin/gopass A password manager for the terminal that is API compatible with pass but adds more features.
pass app-admin/pass A terminal-based password manager that follows the Unix philosophy.
pastebinit app-text/pastebinit Send anything you want directly to a pastebin.
rt www-apps/rt A request tracker and ticketing system with both a web GUI and versatile CLI interface.

Honorable mentions

The following software is not terminal-based, but strongly prefers keyboard input to mouse input and is thus closely adjacent to terminal productivity software in spirit if not in fact. Some of these applications have default keyboard bindings that are intuitive to vim users and others do not.

Name Package Description
dwm x11-wm/dwm An ultra minimalist window manager that supports tiled, monocle, and floating layouts.
i3wm x11-wm/i3 Tiling window manager.
MuPDF app-text/mupdf Lightweight PDF viewer and toolkit written in portable C.
Sway gui-wm/sway An i3-compatible tiling window manager for Wayland.
vimb www-client/vimb (GURU) A lightweight vim-like browser based upon webkit.
zathura app-text/zathura Document viewer with vim-like key bindings.

See Also

External Resources

  • Awesome TUIs — a curated list of terminal applications from all over the web.
  • https://suckless.org/ — a collection of minimalist programs that do one thing well. Most programs are terminal-based applications but a few are related to the ultra minimalist dwm Window manager.