summaryrefslogtreecommitdiff
path: root/.config/ksh/ksh.kshrc
blob: d7e9c8ef6beb9cef086a331968920cf9c70ac193 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
if SOME_VARIABLE=`push.sh 2>/dev/null`
then	eval "$SOME_VARIABLE"
else	echo "push.sh not installed" >&2; exit 1
fi

..() { set -- ".." "$@"; for up; do cd $up; done; }

lfcd () {
    tmp="$(mktemp -uq)"
    trap 'rm -f $tmp >/dev/null 2>&1 && trap - HUP INT QUIT TERM PWR EXIT' HUP INT QUIT TERM PWR EXIT
    lf -last-dir-path="$tmp" "$@"
    if [ -f "$tmp" ]; then
        dir="$(cat "$tmp")"
        [ -d "$dir" ] && [ "$dir" != "$(pwd)" ] && cd "$dir"
    fi
}
clear-screen-saving-contents-in-scrollback() {
    oksh -c 'printf "\e[H\e[22J"'
}
# Loses kill buffer which is a bit sad.
bind -m ^L="^E ^A^K clear-screen-saving-contents-in-scrollback^J^Y^B^D"
bind -m ^O=' mcd^J'
bind -m ^X^F=' REPLY="$(vis-open .)"; [ -z "$REPLY" ] || cd "$REPLY"^J'
bind -m ^Z='kb^J'

# Emacs mode clear chops off multline prompts.
export PS1="$(hostname):\$(pwd-short)\$(prompt-git)\$(prompt-tf)\n jobs(\j) # "

export HISTFILE="$HOME/.history"
export HISTCONTROL=ignorespace
export HISTSIZE=100000
export FCEDIT='kak'

[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc" ] && . "${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc"
[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutenvrc" ] && . "${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutenvrc"
[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/shell/aliasrc" ] && . "${XDG_CONFIG_HOME:-$HOME/.config}/shell/aliasrc"
[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/shell/zshnameddirrc" ] && . "${XDG_CONFIG_HOME:-$HOME/.config}/shell/zshnameddirrc"

set -o emacs
[ -f /run/.containerenv ] && ! [ -z "$PNSH_KAK_AUTOSTART" ] && {
    eval "set -- $PNSH_KAK_AUTOSTART"
    kak "$@"
}