Skip to content

Application Directory

Daniel Nachun edited this page Mar 18, 2024 · 33 revisions

Overview

This configuration installs a large number of useful programs to provide a complete development environment with minimal effort. This page will provide an overview of the programs installed by default to make it easier to know what each program is for.

Archive managers

Tools for compressing and decompressing files in various formats

  • atool - "universal" tool for working with files in many formats - does not implement any compression routines itself, so underlying tools must be installed
  • bzip2 - compress and decompress .bz2 files
  • cpio
  • dtrx - "universal" tool for working with files in many formats - does not implement any compression routines itself, so underlying tools must be installed

History managers

Tools to manage shell history

  • atuin - sync history across multiple machines

Build tools

  • autoconf - generate configure script from configure.ac - part of autotools
  • autogen
  • automake - generate Makefile.in template from Makefile.am

Code formatters

Tools to automatically format code following specific language standards

  • autopep8 - automatically format Python code to follow PEP 8 style guide
  • black - strict code formatter for Python
  • cabal-fmt - format .cabal files
  • cbfmt - format codeblocks in Markdown
  • comby
  • dfmt - format D
  • docformatter - format Python docstrings
  • dprint

Package managers

  • cabal-install - Haskell package manager
  • conda-tree
  • dub - D package manager

Build tools

  • cake - .NET build tool
  • cmake
  • dune

Language servers and completion engines

Language servers are a relatively new class of tools that implement the Language Server Protocol for providing completion and linting suggestions to text editors and IDEs.

  • autotools-language-server - Autotools files (configure.ac, Makefile.am etc.)
  • awk-language-server - Awk scripts
  • azure-pipelines-language-server - Azure pipelines YAML files
  • bash-language-server - Bash scripts
  • clojure-lsp - Clojure
  • cmake-language-server - Cmake
  • compose-language-service - Docker compose
  • dcd - D completion
  • diagnostic-languageserver
  • digestif - TeX languages
  • dockerfile-language-server-nodejs - Dockerfiles
  • dot-language-server
  • dotnet-format

Diff tools

Tools for comparing text files

  • diff-so-fancy
  • diffr
  • difftastic
  • diffutils - classic diff command

Duplicate file management

Tools for finding duplicate files

  • ddh

Disk usage management

Tools to quantify disk usage

  • diskonaut
  • diskus
  • duc
  • duf
  • dust
  • ncdu - ncurses disk usage tool

Debuggers

Tools for debugging code, some of which are support the Debug Adapter Protocol

  • delve - Go debugger
  • dotnet-diagnostics

Linters

Linters make suggested changes to code based on style and best practices guidelines

  • bandit - Identifies common security issues in Python code
  • beautysh - Bash script beautifier
  • bibclean - syntax checking and pretty printing of BibTeX citation files
  • checkmake
  • checkstyle
  • cljstyle
  • codespell - find spelling errors in code
  • commitlint - syntax checking for git commits
  • cppcheck
  • cpplint

Dotfile managers

  • chezmoi

Multi-format text manipulation

Tools for manipulating text in multiple formats

  • dasel

Tabular data

Tools for working with tabular data

  • csview - viewer for CSV and TSV files
  • csvprintf - viewer for CSV and TSV files
  • csvq
  • datamash
  • dsq
  • duckdb

Git tools

Git is a very population version control system with a large ecosystem of other tools

  • bit-git

Text selectors

  • choose-rust
  • fzf
  • fzy

Compilers

  • clang
  • clangxx

Compiler tools

  • clang-tools
  • dtools
  • llvm-tools

Version control systems (VCS)

Version control systems are used to manage changes to codebases

  • breezy - Python 3 rewrite of the now unmaintained bzr client for Bazaar VCS
  • cvs

Scripting languages

Scripting languages generally refer to languages which are interpreted rather than compiled. They are designed for interactivity and ease of use at the expense of slower performance and often less type safety.

  • awk - classic scripting language for tabular data
  • clojure - Common List derivative that runs on JVM
  • dotnet-script - Use C# as a scripting language

File browsers

  • as-tree - print list of paths as a tree
  • broot
  • felix
  • joshuto
  • nnn
  • ranger

Shells

A shell is an interactive environment in which the user can call other executables, in some cases piping together the output of one tool to the input of another, or saving the output to a file

  • bash - The default shell on many Linux distributions and formerly macOS - this just provides the latest version in case the host copy is too old
  • elvish
  • fish - A "friendly interactive shell" with many nice features that is less compatible with bash
  • nushell
  • oil
  • pwsh (Powershell) - The new shell for Windows (yes it does run on Linux and macOS now)
  • zsh - The default shell for this configuration and the default on macOS

Text editors

  • amp
  • emacs
  • nvim
  • vim

Text filtering

  • ack - code searching tool written Perl
  • bingrep - grep for binary files written in rust
  • cgrep - code-aware grep tool written in Haskell
  • grep - class file filtering tool
  • ripgrep - fast Rust rewrite of grep
  • the_silver_searcher - code searching tool written in C

Stream editors

  • sad
  • sd
  • sed

Pagers

  • bat - Rust rewrite of cat
  • cat (in coreutils) - classic pager
  • ccat
  • colortail

Lexers

  • alex - Parser written in and used by Haskell
  • flex - classic lexer

Parsers

  • bison - classic parser
  • happy - Parser written in and used by Haskell

REPL

  • ammonite - Scala REPL
  • dotnet-repl

Logging tools

  • angle-grinder - manipulate log files
  • bartib - log run time of commands

Calculators

  • bc - classic CLI calculator

Process monitors

Process monitors help you to see what process are running and how many resources they are using

  • bottom
  • btop

Downloaders

  • aria2 - parallel download tool
  • curl - classic tool for downloading files
  • curlie
  • pget - go rewrite of wget
  • wget - simple download tool

Miscellaneous

  • chars
  • code-minimap
  • coreutils

Clone this wiki locally