aboutsummaryrefslogtreecommitdiff
path: root/.kshrc
diff options
context:
space:
mode:
authorJustine Smithies <justine@openbsd-desktop.localdomain>2025-10-07 20:15:19 +0100
committerJustine Smithies <justine@openbsd-desktop.localdomain>2025-10-07 20:15:19 +0100
commit3531e0908e6c106666320c9c773aa80ce10db87b (patch)
tree9310e57ee42245f6684de220e9b557a9d064cb3f /.kshrc
Initial commit
Diffstat (limited to '.kshrc')
-rw-r--r--.kshrc88
1 files changed, 88 insertions, 0 deletions
diff --git a/.kshrc b/.kshrc
new file mode 100644
index 0000000..d5c5119
--- /dev/null
+++ b/.kshrc
@@ -0,0 +1,88 @@
+#
+# .kshrc - ksh - Korn shell startup file
+#
+# See also ksh(1)
+
+# Set vi mode
+set -o vi
+
+# If helpers exist
+_exists() {
+ type $1 > /dev/null 2>&1
+}
+
+# Don't let \^{}d logout
+set -o ignoreeof
+
+# Export all
+set -o allexport
+
+# Setup history
+HISTFILE=$HOME/.ksh_history
+HISTSIZE=10000
+HISTCONTROL=ignoredups:ignorespace:erasedups
+
+# Some useful aliases
+
+# If btop is installed then alias top to btop
+_exists btop && alias top='/usr/local/bin/btop'
+
+# If bat exists then alias cat to bat
+_exists bat && alias cat='bat --paging=never'
+
+# Use colorls if it's installed, plain old ls otherwise
+_exists colorls && alias ls='colorls -G'
+
+alias config='/usr/local/bin/git --git-dir=$HOME/.cfg/ --work-tree=$HOME'
+
+# Simple, lightweight git prompt for oksh: if inside a git repo, adds the
+# branch name to PS1.
+__get_current_git_branch_name() {
+ branch_name="$(git rev-parse --abbrev-ref HEAD 2>/dev/null)" && \
+ [ -n "$branch_name" ] && \
+ echo -en " $branch_name"
+}
+
+# Set prompt: ``username@hostname directory $ ''
+PS1="\[\e[1;32m\]\u@\h \[\e[1;34m\]\w\[\e[0m\] \[\e[1;31m\]\$(__get_current_git_branch_name)\[\e[0m\] $ "
+
+export LANG="en_US.UTF-8"
+export LC_ALL="en_US.UTF-8"
+
+# Pager
+if _exists less; then
+ PAGER=less
+ LESSHISTFILE=-
+ # -I ignore case
+ # -R colored output
+ # -X don't clear on exit
+ # -Ps string prompt
+ # LESS='-IRXPs %lt-%lb (%Pt-%Pb \%) ░ %bt-%bbb ░ %f ░▒▓'
+ LESS='-IRX'
+ export PAGER LESSHISTFILE LESS
+fi
+
+#coloured man pages
+man() {
+ sh -c "man '$@' | col -bx | bat -l man"
+}
+
+# Completions
+
+# Display possible interfaces on this machine for ifconfig
+set -A complete_ifconfig_1 -- $(ifconfig | grep ^[a-z] | cut -d: -f1)
+
+# Remote access
+_SSH_HOSTS=$(awk '/^host/{ print $2 }' ~/.ssh/config)
+set -A complete_ssh -- $_SSH_HOSTS
+
+# Git completion
+set -A complete_git -- \
+ $(git --list-cmds=main) \
+ $(git config --get-regexp ^alias\. | awk -F '[\. ]' '{ print $2 }')
+
+# OpenBSD rc scripts and rc commands
+set -A complete_rcctl_1 -- disable enable get ls order set restart start stop
+set -A complete_rcctl_2 -- $(rcctl ls all)
+
+