{"id":15148713,"url":"https://github.com/qbit/ohmyksh","last_synced_at":"2025-07-14T12:35:08.148Z","repository":{"id":53323771,"uuid":"279994181","full_name":"qbit/ohmyksh","owner":"qbit","description":"A framework for OpenBSD's ksh","archived":false,"fork":false,"pushed_at":"2021-06-21T14:16:10.000Z","size":131,"stargazers_count":184,"open_issues_count":0,"forks_count":9,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-04-06T22:51:20.738Z","etag":null,"topics":["ksh","ohmyksh","openbsd","shell"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/qbit.png","metadata":{"files":{"readme":"README.org","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-07-15T22:29:09.000Z","updated_at":"2025-04-06T09:41:08.000Z","dependencies_parsed_at":"2022-09-03T10:22:27.476Z","dependency_job_id":null,"html_url":"https://github.com/qbit/ohmyksh","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/qbit/ohmyksh","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qbit%2Fohmyksh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qbit%2Fohmyksh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qbit%2Fohmyksh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qbit%2Fohmyksh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/qbit","download_url":"https://codeload.github.com/qbit/ohmyksh/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qbit%2Fohmyksh/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265292436,"owners_count":23742063,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ksh","ohmyksh","openbsd","shell"],"created_at":"2024-09-26T13:21:58.024Z","updated_at":"2025-07-14T12:35:07.905Z","avatar_url":"https://github.com/qbit.png","language":"Shell","funding_links":[],"categories":["OpenBSD Provisioning"],"sub_categories":["Interviews with OpenBSD developers"],"readme":"#+TITLE: ohmyksh\n\n** About\n\nHave your cake and eat it too!\n\n~ohmyksh~ is a framework for expanding OpenBSD's [[https://man.openbsd.org/ksh][ksh]]. It offers:\n\n- completions :: for common things like [[https://man.openbsd.org/man][man]] pages, [[https://man.openbsd.org/ssh][ssh]] ~known_hosts~ and ~git~ (and\n  ~got~!) commands. \n- extensions :: to import bulk functionality, including git-prompt, OpenBSD\n  specific tooling, disabling color.. etc. \n- prompts :: a decent selection of useful, minimal prompts.\n  \n\n** Completions\n\n| Name   | Completes                              |\n|--------+----------------------------------------|\n| [[file:completions/git.org][git]]    | add, fetch...                          |\n| [[file:completions/got.org][got]]    | add, blame...                          |\n| [[file:completions/gopass.org][gopass]] | audit, config...                       |\n| [[file:completions/man.org][man]]    | man pages                              |\n| [[file:completions/mpc.org][mpc]]    | play, load, toggle...                  |\n| [[file:completions/rc.org][rc]]     | OpenBSD rc scripts and rc commands     |\n| [[file:completions/ssh.org][ssh]]    | ssh known hosts                        |\n| [[file:completions/vmd.org][vmd]]    | vmctl commands and VM names            |\n| [[file:completions/ogvt.org][ogvt]]   | reminders for ogvt (-pub, -sig, -file) |\n\n** Extensions\n\n| Name       | Description                                                             |\n|------------+-------------------------------------------------------------------------|\n| [[file:extensions/fonts.org][fonts]]      | Load fonts from common locations.                                       |\n| [[file:extensions/fzf.org][fzf]]        | Set of interactive wrappers for things like packages and shell history. |\n| [[file:extensions/git-prompt.org][git-prompt]] | A port of git-prompt for KSH.                                           |\n| [[file:extensions/got.org][got]]        | Adds PS1 support for got, as well as a few helper functions.            |\n| [[file:extensions/k.org][k]]          | A tool to quickly change directories.                                   |\n| [[file:extensions/keychain.org][keychain]]   | Wrapper for [[https://www.funtoo.org/Keychain][Funtoo's Keychain]] utility.                                  |\n| [[file:extensions/nocolor.org][nocolor]]    | Disable terminal color options for many tools.                          |\n| [[file:extensions/openbsd.org][openbsd]]    | A set of tools for working with the OpenBSD source trees.               |\n| [[file:extensions/pkgup.org][pkgup]]      | Utility to speed up OpenBSD' [[https://man.openbsd.org/pkg_add][pkg_add(1)]].                                |\n\n\n** Prompts\n\n| Name       | Example                       | Extensions used |\n|------------+-------------------------------+-----------------|\n| [[file:prompts/q.org][q]]          | ~qbit@litr[0]:~$~             | git-prompt, got |\n| [[file:prompts/plain.org][plain]]      | ~litr:~/src/ohmyksh/prompts$~ | -               |\n| [[file:prompts/og-openbsd.org][og-openbsd]] | ~$~                           | -               |\n| [[file:prompts/9.org][9]]          | ~%~                           | -               |\n\n** Example usage\n\n#+begin_src shell\n  # ohmyksh needs to know where it lives, so we tell it via this env var:\n  OHMYKSH_DIR=${HOME}/src/ohmyksh\n\n  # Now we can load everything up!\n  . ${OHMYKSH_DIR}/ohmy.ksh\n\n  # All the paths we use (in order!)\n  set -A my_paths -- \\\n          /usr/ports/infrastructure/bin \\\n          ~/bin \\\n          ~/go/bin \\\n          /usr/local/plan9/bin\n\n  paths \"${my_paths[@]}\"\n\n  # Load our various extensions\n  load_extension fonts\n  load_extension k\n  load_extension nocolor\n  load_extension openbsd\n\n  # Load handy completions for various things\n  load_completion ssh\n  load_completion vmd\n  load_completion rc\n  load_completion gopass\n  load_completion git\n\n  alias vi=vim\n\n  # the q prompt auto-loads the git-prompt extension\n  set_prompt q\n#+end_src\n\n** Contributing\n\nContributions can be sent in via Github PRs or via emailing a patch to\n[[~qbit/ohmyksh@lists.sr.ht][~qbit/ohmyksh@lists.sr.ht]].\n\nIf you do send in a contribution, please include a .org file which describes the\nfeature set. The org syntax is available [[https://orgmode.org/quickstart.html][here]], however, one will likely be able\nto just copy an existing file and modify it.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqbit%2Fohmyksh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqbit%2Fohmyksh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqbit%2Fohmyksh/lists"}