elvish-modules icon indicating copy to clipboard operation
elvish-modules copied to clipboard

Various modules for Elvish

Created 2021-05-12 Wed 00:27

#+TITLE: zzamboni's Elvish libraries #+AUTHOR: Diego Zamboni #+macro: module-summary (eval (org-export-string-as (concat "- [[file:" $1 ".org][" $1 "]] :: \n #+include: " $1 ".org::module-summary\n") 'org t)) #+export_file_name: README.org

This Elvish package contains various modules I have written for the [[https://elv.sh/][Elvish shell]]. [[https://github.com/zzamboni/elvish-themes/][Themes]] and [[https://github.com/zzamboni/elvish-completions][completions]] are kept in separate packages.

  • Compatibility

These modules are only guaranteed to be fully compatible with [[https://elv.sh/get/][Elvish HEAD]], which is what I use. This means that occasionally, they will not work even with the latest official release, when breaking changes are introduced. Since Elvish is in active development, I highly recommend you use the latest commit too.

  • Installation

To install, use [[https://elvish.io/ref/epm.html][epm]]:

#+begin_src elvish use epm epm:install github.com/zzamboni/elvish-modules #+end_src

For each module you want to use, you need to add the following to your =rc.elv= file:

#+begin_src elvish use github.com/zzamboni/elvish-modules/ #+end_src

See each module's page for detailed usage instructions.

  • Modules

The following modules are included:

#+results: :results:

  • [[file:1pass.org][1pass]] :: #+name: module-summary This module provides wrappers to use the 1Password =op= CLI tool with Elvish.

  • [[file:alias.org][alias]] :: #+name: module-summary Implementation of aliases for [[http://elvish.io][Elvish]].

  • [[file:atlas.org][atlas]] :: #+name: module-summary Elvish functions for interacting with O'Reilly's [[https://atlas.oreilly.com/][Atlas]] publishing system.

  • [[file:bang-bang.org][bang-bang]] :: #+name: module-summary Implement the =!!= (last command), =!$= (last argument of last command), ~!*~ (all arguments) and =!= (nth argument of last command) shortcuts in Elvish.

  • [[file:dir.org][dir]] :: #+name: module-summary Keep and move through the directory history, including a graphical chooser, similar to Elvish's Location mode, but showing a chronological directory history instead of a weighted one.

  • [[file:git-summary.org][git-summary]] :: #+name: module-summary Display a status summary of a user-defined list of git repositories.

  • [[file:git-vcsh.org][git-vcsh]] :: #+name: module-summary Simple wrapper to call =vcsh= when the current directory is managed by it. I don't use it anymore, so it may be broken.

  • [[file:iterm2.org][iterm2]] :: #+name: module-summary This library implements iTerm2's [[https://iterm2.com/documentation-shell-integration.html][Shell Integration]] for the [[https://elv.sh/][Elvish]] shell.

  • [[file:lazy-vars.org][lazy-vars]] :: #+name: module-summary A module that allows defining environment variables that are only evaluated when needed.

  • [[file:leanpub.org][leanpub]] :: #+name: module-summary This module provides some interfaces to the [[https://leanpub.com/help/api][LeanPub API]].

  • [[file:long-running-notifications.org][long-running-notifications]] :: #+name: module-summary Produce notifications for long-running commands in Elvish.

  • [[file:nix.org][nix]] :: #+name: module-summary Functions to set up the Nix environment variables for Elvish.

  • [[file:opsgenie.org][opsgenie]] :: #+name: module-summary This module implements a few common operations for the [[https://docs.opsgenie.com/docs/api-overview][OpsGenie API]] in Elvish.

  • [[file:prompt-hooks.org][prompt-hooks]] :: #+name: module-summary Convenience functions to add hooks to the prompt hook lists.

  • [[file:proxy.org][proxy]] :: #+name: module-summary Manipulation of proxy-related environment variables (including auto-setting/unsetting based on a user-defined test) for [[http://elvish.io][Elvish]].

  • [[file:semver.org][semver]] :: #+name: module-summary Comparison of semantic version numbers, as described in [[https://semver.org/#spec-item-11][the Semantic Versioning specification]].

  • [[file:spinners.org][spinners]] :: #+name: module-summary Functions to print different types of progress spinners for use in Elvish scripts.

  • [[file:terminal-title.org][terminal-title]] :: #+name: module-summary Sets the terminal title dynamically using ANSI escape codes. By default the current directory is shown, and the name of the current command while one is executing.

  • [[file:test.org][test]] :: #+name: module-summary A very simplistic test framework for Elvish.

  • [[file:tinytex.org][tinytex]] :: #+name: module-summary Convenience functions for [[https://yihui.org/tinytex/][TinyTeX]].

  • [[file:tty.org][tty]] :: #+name: module-summary Functions for terminal ANSI code manipulation/interaction in Elvish.

  • [[file:util.org][util]] :: #+name: module-summary Various utility functions. :END: