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_hostsandgit(andgot!) commands. - extensions
- to import bulk functionality, including git-prompt, OpenBSD specific tooling, disabling color.. etc.
- prompts
- a decent selection of useful, minimal prompts.
| 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 |
| ogvt | reminders for ogvt (-pub, -sig, -file) |
| Name | Description |
|---|---|
| fonts | Load fonts from common locations. |
| fzf | Set of interactive wrappers for things like packages and shell history. |
| 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). |
| Name | Example | Extensions used |
|---|---|---|
| q | qbit@litr[0]:~$ | git-prompt, got |
| plain | litr:~/src/ohmyksh/prompts$ | - |
| og-openbsd | $ | - |
| 9 | % | - |
# 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 qContributions can be sent in via Github PRs or via emailing a patch to ~qbit/[email protected].
If you do send in a contribution, please include a .org file which describes the feature set. The org syntax is available here, however, one will likely be able to just copy an existing file and modify it.