# # .kshrc - oksh - Public domain Korn shell startup file # # See also oksh(1) # Don't do anything if we don't have a prompt (not an interactive shell) [[ $- != *i* ]] && return || [ -z "$PS1" ] && return # Uncomment this to enable the builtin vi(1) command line editor in sh(1), # e.g. ESC to go into visual mode. # set -o vi # Don't let \^{}d logout set -o ignoreeof # Export all set -o allexport # Setup history HISTFILE=$HOME/.ksh_history HISTSIZE=10000 HISTCONTROL=ignoredups:ignorespace # Some useful aliases # If btop is installed then alias top to btop [ -e /usr/local/bin/btop ] && alias top="/usr/local/bin/btop" alias ls='ls --color=auto -hv' alias config='/usr/local/bin/git --git-dir=$HOME/.cfg/ --work-tree=$HOME' command -v bat > /dev/null && alias cat='bat --paging=never' alias wanip='dig @resolver4.opendns.com myip.opendns.com +short' # Alias to stop foot terminal confusing ssh if [ "$TERM" = "foot" ]; then alias ssh='TERM=linux ssh' fi # 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\] $ " COLORTERM="truecolor" EDITOR="hx" VISUAL="hx" STARSHIP_CONFIG=~/.config/starship/config.toml BROWSER="qutebrowser" XDG_CONFIG_HOME="$HOME/.config" WEECHAT_HOME="$XDG_CONFIG_HOME/weechat" MOZ_ENABLE_WAYLAND=1 XDG_SESSION_TYPE=wayland GDK_BACKEND=wayland # export QT_QPA_PLATFORM=wayland # export XKB_DEFAULT_LAYOUT=us # export LANG="en_US.UTF-8" # export LC_ALL="en_US.UTF-8" TERMINAL="foot" SAL_USE_VCLPLUGIN=gtk3 # Search path for cd(1) CDPATH=:$HOME # Always add below to allow gpg-agent to work correctly GPG_TTY=$(tty) # Enable the use of ssh-agent pkill -f ssh-agent if ! pgrep -u "$USER" ssh-agent > /dev/null; then ssh-agent -t 1h > "$XDG_RUNTIME_DIR/ssh-agent.env" fi if [ ! -f "$SSH_AUTH_SOCK" ]; then . "$XDG_RUNTIME_DIR/ssh-agent.env" >/dev/null fi # 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 set -A complete_pkg -- autoremove clean install search update upgrade version # Git completion set -A complete_git -- \ $(git --list-cmds=main) \ $(git config --get-regexp ^alias\. | awk -F '[\. ]' '{ print $2 }') set -A complete_config -- add commit diff push status set -A complete_service -- onereload onerestart onestop restart start status stop set -A complete_zfs -- clone create diff get jail list mount promote receive set send share snapshot upgrade set -A complete_zpool -- add attach checkpoint clear create detach export get history import iostat list offline \ online scrub set split status upgrade # Turn off export all set +o allexport if [ "$(tty)" = "/dev/ttyv0" ]; then exec dbus-run-session river > /dev/null 2>&1 fi