summaryrefslogtreecommitdiffstats
path: root/sh/.config
diff options
context:
space:
mode:
Diffstat (limited to 'sh/.config')
-rw-r--r--sh/.config/sh/aliases50
-rw-r--r--sh/.config/sh/cdhist.sh174
-rw-r--r--sh/.config/sh/env26
-rw-r--r--sh/.config/sh/functions14
m---------sh/.config/sh/fzf0
5 files changed, 264 insertions, 0 deletions
diff --git a/sh/.config/sh/aliases b/sh/.config/sh/aliases
new file mode 100644
index 0000000..2afadbb
--- /dev/null
+++ b/sh/.config/sh/aliases
@@ -0,0 +1,50 @@
+# improvements to common commands {{{
+alias ls="exa --group-directories-first --time-style=long-iso --git --color-scale"
+alias ll="ls -l"
+alias grep="grep --color=auto"
+alias rm="rm -i"
+alias cp="cp -i"
+alias mv="mv -i"
+alias bc="bc -lq"
+alias hx="helix"
+type forkprove >/dev/null 2>&1 && alias prove="forkprove"
+type tput >/dev/null 2>&1 && alias reset="tput reset"
+# }}}
+# games {{{
+alias nao="ssh nethack@alt.org"
+alias cao="env TERM=screen-256color /usr/bin/ssh -C -i \$HOME/.ssh/cao_key joshua@crawl.akrasiac.org"
+alias cdo="ssh -C -i \$HOME/.ssh/cao_key crawl@crawl.develz.org"
+alias hearthstone="wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Hearthstone/Hearthstone.exe"
+# }}}
+# termcast {{{
+alias tc="telnet termcast.org"
+# }}}
+# shells {{{
+alias partofme='ssh doy@partofme'
+alias tozt="ssh doy@tozt.net"
+# }}}
+# tmux sessions {{{
+alias main='tmux new -As main'
+alias chat='tmux new -As chat'
+alias work='tmux new -As work'
+alias docs='tmux new -As docs'
+alias misc='tmux new -As misc'
+# }}}
+# other {{{
+alias vim=helix
+alias pm="find lib -type f"
+# alias v="vim --cmd 'let g:startify_disable_at_vimenter = 1' -c 'call feedkeys(\"t\")'"
+alias v='helix "$(git ls-files | fzf)"'
+# alias g="vim --cmd 'let g:startify_disable_at_vimenter = 1' -c 'call feedkeys(\"ff\")'"
+alias utc="env TZ=UTC date"
+alias pd="perldoc"
+alias pc="p | xclip -l 1"
+alias svim="vim -i NONE -u NONE -U NONE --noplugin --cmd 'set noswapfile' --cmd 'set nobackup' --cmd 'set nomodeline' --cmd 'set noexrc'"
+alias wifi="sudo systemctl restart iwd"
+alias debian="podman run --rm -itv "${HOME}:${HOME}" docker.io/debian:stable bash"
+alias ubuntu="podman run --rm -itv "${HOME}:${HOME}" docker.io/ubuntu:latest bash"
+alias alpine="podman run --rm -itv "${HOME}:${HOME}" docker.io/alpine:latest sh"
+alias arch="podman run --rm -itv "${HOME}:${HOME}" docker.io/archlinux:latest sh"
+# }}}
+
+# vim:ft=sh:fdm=marker
diff --git a/sh/.config/sh/cdhist.sh b/sh/.config/sh/cdhist.sh
new file mode 100644
index 0000000..d67d2e9
--- /dev/null
+++ b/sh/.config/sh/cdhist.sh
@@ -0,0 +1,174 @@
+### cdhist.sh
+###
+### Copyright (c) 2001 Yusuke Shinyama <yusuke at cs . nyu . edu>
+###
+### Permission to use, copy, modify, distribute this software and
+### its documentation for any purpose is hereby granted, provided
+### that existing copyright notices are retained in all copies and
+### that this notice is included verbatim in any distributions.
+### This software is provided ``AS IS'' without any express or implied
+### warranty.
+###
+
+### WARNING: THIS SCRIPT IS FOR GNU BASH ONLY!
+
+### What is this?
+###
+### Cdhist adds 'web-browser like history' to your bash shell.
+### Every time you change the current directory it records the directory
+### you can go back by simply typing a short command such as '-' or '+',
+### just like clicking web-browsers's 'back' button.
+### It's more convenient than using directory stacks when
+### you walk around two or three directories.
+###
+
+### Usage
+###
+### Just call this file from your .bashrc script.
+### The following commands are added.
+###
+### cd [pathname]
+### Go to the given directory, or your home directory if
+### pathname is omitted. This overrides the original command.
+### You can use it by typing '\cd'.
+###
+### + [n]
+### 'Forward' button. Go to the n'th posterior directory in the history.
+### Go to the next directory if the number is omitted.
+###
+### - [n]
+### 'Back' button. Go to the n'th prior directory in the history.
+### Go to the previous directory if the number is omitted.
+###
+### = [n]
+### Show histories with directory numbers.
+###
+### A directory number shows the index to the current directory
+### in the history. The current directory always has directory number 0.
+### For prior directories, a negative number is given.
+### For posterior directories, a positive number is given.
+###
+### cdhist_reset
+### Clear the cd history.
+###
+
+### Example
+###
+### /home/yusuke:$ . cdhist.sh
+### /home/yusuke:$ cd /tmp
+### /tmp:$ cd /usr/bin
+### /usr/bin:$ cd /etc
+### /etc:$ -
+### /usr/bin:$ -
+### /tmp:$ +
+### /usr/bin:$ =
+### -2 ~
+### -1 /tmp
+### 0:/usr/bin
+### 1 /etc
+### /usr/bin:$ - 2
+### /home/yusuke:$
+###
+
+
+CDHIST_CDQMAX=10
+declare -a CDHIST_CDQ
+
+function cdhist_reset {
+ CDHIST_CDQ=("$PWD")
+}
+
+function cdhist_disp {
+ echo "$*" | sed "s $HOME ~ g"
+}
+
+function cdhist_add {
+ CDHIST_CDQ=("$1" "${CDHIST_CDQ[@]}")
+}
+
+function cdhist_del {
+ [[ -n $ZSH_VERSION ]] && setopt localoptions && setopt ksharrays
+ local i=${1-0}
+ if [ ${#CDHIST_CDQ[@]} -le 1 ]; then return; fi
+ for ((; i<${#CDHIST_CDQ[@]}-1; i++)); do
+ CDHIST_CDQ[$i]="${CDHIST_CDQ[$((i+1))]}"
+ done
+ unset CDHIST_CDQ[$i]
+}
+
+function cdhist_rot {
+ [[ -n $ZSH_VERSION ]] && setopt localoptions && setopt ksharrays
+ local i q
+ declare -a q
+ for ((i=0; i<$1; i++)); do
+ q[$i]="${CDHIST_CDQ[$(((i+$1+$2)%$1))]}"
+ done
+ for ((i=0; i<$1; i++)); do
+ CDHIST_CDQ[$i]="${q[$i]}"
+ done
+}
+
+function cdhist_cd {
+ [[ -n $ZSH_VERSION ]] && setopt localoptions && setopt ksharrays
+ local i f=0
+ builtin cd "$@" || return 1
+ for ((i=0; i<${#CDHIST_CDQ[@]}; i++)); do
+ if [ "${CDHIST_CDQ[$i]}" = "$PWD" ]; then f=1; break; fi
+ done
+ if [ $f -eq 1 ]; then
+ cdhist_rot $((i+1)) -1
+ elif [ ${#CDHIST_CDQ[@]} -lt $CDHIST_CDQMAX ]; then
+ cdhist_add "$PWD"
+ else
+ cdhist_rot ${#CDHIST_CDQ[@]} -1
+ CDHIST_CDQ[0]="$PWD"
+ fi
+}
+
+function cdhist_history {
+ [[ -n $ZSH_VERSION ]] && setopt localoptions && setopt ksharrays
+ local i d
+ if [ $# -eq 0 ]; then
+ for ((i=${#CDHIST_CDQ[@]}-1; 0<=i; i--)); do
+ cdhist_disp " $i ${CDHIST_CDQ[$i]}"
+ done
+ elif [ "$1" -lt ${#CDHIST_CDQ[@]} ]; then
+ d=${CDHIST_CDQ[$1]}
+ if builtin cd "$d"; then
+ cdhist_rot $(($1+1)) -1
+ else
+ cdhist_del $1
+ fi
+ cdhist_disp "${CDHIST_CDQ[@]}"
+ fi
+}
+
+function cdhist_forward {
+ [[ -n $ZSH_VERSION ]] && setopt localoptions && setopt ksharrays
+ cdhist_rot ${#CDHIST_CDQ[@]} -${1-1}
+ if ! builtin cd "${CDHIST_CDQ[0]}"; then
+ cdhist_del 0
+ fi
+ cdhist_disp "${CDHIST_CDQ[@]}"
+}
+
+function cdhist_back {
+ [[ -n $ZSH_VERSION ]] && setopt localoptions && setopt ksharrays
+ cdhist_rot ${#CDHIST_CDQ[@]} ${1-1}
+ if ! builtin cd "${CDHIST_CDQ[0]}"; then
+ cdhist_del 0
+ fi
+ cdhist_disp "${CDHIST_CDQ[@]}"
+}
+
+
+if [ ${#CDHIST_CDQ[@]} = 0 ]; then cdhist_reset; fi
+
+
+### Aliases
+###
+
+function cd { cdhist_cd "$@"; }
+function + { cdhist_forward "$@"; }
+function - { cdhist_back "$@"; }
+function = { cdhist_history "$@"; }
diff --git a/sh/.config/sh/env b/sh/.config/sh/env
new file mode 100644
index 0000000..33b33ec
--- /dev/null
+++ b/sh/.config/sh/env
@@ -0,0 +1,26 @@
+GPG_TTY=$(tty)
+export GPG_TTY
+export MANPAGER="$HOME/.bin/vimmanpager"
+export PERLDOC_PAGER="$HOME/.bin/vimmanpager"
+EDITOR=$(command -v helix)
+export EDITOR
+ssh="${HOME}/.bin/$(hostname)/ssh"
+if [ -x "$ssh" ]; then
+ export GIT_SSH="$ssh"
+ export RSYNC_RSH="$ssh"
+fi
+if type sudo-askpass >/dev/null 2>&1; then
+ SUDO_ASKPASS=$(command -v sudo-askpass)
+ export SUDO_ASKPASS
+fi
+export TEXINPUTS=".:$HOME/.config/tex:"
+export LESS='-QR'
+export PERL_CPANM_OPT="-q --mirror http://mirrors.kernel.org/cpan/ --mirror http://cpan.metacpan.org/ --prompt"
+export FZF_DEFAULT_OPTS="--reverse --inline-info --bind=tab:down,shift-tab:up,change:top,ctrl-space:toggle"
+export FZF_DEFAULT_COMMAND="rg --hidden -l ."
+export FANCY_PROMPT_COLORS="user_doy=bright_blue,host_mz-doy1=bright_white,host_tozt=bright_yellow,host_partofme=magenta,host_mail=green,host_hornet=red"
+export PASSWORD_STORE_X_SELECTION=primary
+type brew >/dev/null 2>&1 && export PATH="/usr/local/opt/coreutils/libexec/gnubin:/usr/local/opt/findutils/libexec/gnubin:/usr/local/sbin:$PATH"
+type brew >/dev/null 2>&1 && export MANPATH="/usr/local/opt/coreutils/libexec/gnuman:/usr/local/opt/findutils/libexec/gnuman:$MANPATH"
+
+# vim:ft=sh:
diff --git a/sh/.config/sh/functions b/sh/.config/sh/functions
new file mode 100644
index 0000000..b64c4cf
--- /dev/null
+++ b/sh/.config/sh/functions
@@ -0,0 +1,14 @@
+function perldoc {
+ # XXX bash specific
+ if type cpandoc >/dev/null 2>&1; then
+ cpandoc "$@"
+ else
+ command perldoc "$@"
+ fi
+}
+
+function cdu {
+ cd "$(git root)" || return
+}
+
+# vim:ft=sh:
diff --git a/sh/.config/sh/fzf b/sh/.config/sh/fzf
new file mode 160000
+Subproject 352ea072269dfe2a3c429785a95a2f22887ccda