Go to file
2021-03-11 21:26:21 +00:00
.static/css add doc for k 2021-03-11 16:29:03 +00:00
completions expand completion docs 2021-03-11 15:40:09 +00:00
extensions flesh out docs 2021-03-11 21:26:21 +00:00
lib simplify got-push by switching to "got info" 2020-09-15 18:17:16 +00:00
prompts flesh out docs 2021-03-11 21:26:21 +00:00
.gitignore ignore cache 2020-07-16 08:09:00 -06:00
LICENSE initial 2020-07-15 16:28:24 -06:00
ohmy.ksh flesh out some more fzf features 2020-08-29 02:58:09 +00:00
README.org flesh out docs 2021-03-11 21:26:21 +00:00

ohmyksh

About

Have your cake and eat it too!

ohmyksh is a framework for expanding OpenBSD's ksh. It offers:

completions
for common things like man pages, ssh known_hosts and git (and got!) commands.
extensions
to import bulk functionality, including git-prompt, OpenBSD specific tooling, disabling color.. etc.
prompts
a decent selection of useful, minimal prompts.

Completions

Name Completes
git add, fetch…
got add, blame…
gopass audit, config…
man man pages
mpc play, load, toggle…
rc OpenBSD rc scripts and rc commands
ssh ssh known hosts
vmd vmctl commands and VM names

Extensions

Name Description
fonts Load fonts from common locations.
fzf -
git-prompt A port of git-prompt for KSH.
got Adds PS1 support for got, as well as a few helper functions.
k A tool to quickly change directories.
keychain Wrapper for Funtoo's Keychain utility.
nocolor Disable terminal color options for many tools.
openbsd A set of tools for working with the OpenBSD source trees.
pkgup Utility to speed up OpenBSD' pkg_add(1).

Prompts

Name Example Extensions used
q qbit@litr[0]:~$ git-prompt, got
plain litr:~/src/ohmyksh/prompts$ -
og-openbsd $ -
9 % -

Example usage

  # ohmyksh needs to know where it lives, so we tell it via this env var:
  OHMYKSH_DIR=${HOME}/src/ohmyksh

  # Now we can load everything up!
  . ${OHMYKSH_DIR}/ohmy.ksh

  # All the paths we use (in order!)
  set -A my_paths -- \
          /usr/ports/infrastructure/bin \
          ~/bin \
          ~/go/bin \
          /usr/local/plan9/bin

  paths "${my_paths[@]}"

  # Load our various extensions
  load_extension fonts
  load_extension k
  load_extension nocolor
  load_extension openbsd

  # Load handy completions for various things
  load_completion ssh
  load_completion vmd
  load_completion rc
  load_completion gopass
  load_completion git

  alias vi=vim

  # the q prompt auto-loads the git-prompt extension
  set_prompt q