From 485e5ca03ca14462cbd7d984534f7da02d2fa205 Mon Sep 17 00:00:00 2001 From: Mike Hostetler Date: Tue, 30 Mar 2010 13:14:10 -0500 Subject: [PATCH] try to configure strange functions --- lib/strange-terminals.zsh | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 lib/strange-terminals.zsh diff --git a/lib/strange-terminals.zsh b/lib/strange-terminals.zsh new file mode 100644 index 000000000..4a39d4297 --- /dev/null +++ b/lib/strange-terminals.zsh @@ -0,0 +1,39 @@ +#-*- sh -*- + +# From http://zshwiki.org/home/zle/bindkeys + +if [ "$STRANGE_TERMINAL" = "true" ]; then + +autoload zkbd +function zkbd_file() { + [[ -f ~/.zkbd/${TERM}-${VENDOR}-${OSTYPE} ]] && printf '%s' ~/".zkbd/${TERM}-${VENDOR}-${OSTYPE}" && return 0 + [[ -f ~/.zkbd/${TERM}-${DISPLAY} ]] && printf '%s' ~/".zkbd/${TERM}-${DISPLAY}" && return 0 + return 1 +} + +[[ ! -d ~/.zkbd ]] && mkdir ~/.zkbd +keyfile=$(zkbd_file) +ret=$? +if [[ ${ret} -ne 0 ]]; then + zkbd + keyfile=$(zkbd_file) + ret=$? +fi +if [[ ${ret} -eq 0 ]] ; then + source "${keyfile}" +else + printf 'Failed to setup keys using zkbd.\n' +fi +unfunction zkbd_file; unset keyfile ret + +# setup key accordingly +[[ -n "${key[Home]}" ]] && bindkey "${key[Home]}" beginning-of-line +[[ -n "${key[End]}" ]] && bindkey "${key[End]}" end-of-line +[[ -n "${key[Insert]}" ]] && bindkey "${key[Insert]}" overwrite-mode +[[ -n "${key[Delete]}" ]] && bindkey "${key[Delete]}" delete-char +[[ -n "${key[Up]}" ]] && bindkey "${key[Up]}" up-line-or-history +[[ -n "${key[Down]}" ]] && bindkey "${key[Down]}" down-line-or-history +[[ -n "${key[Left]}" ]] && bindkey "${key[Left]}" backward-char +[[ -n "${key[Right]}" ]] && bindkey "${key[Right]}" forward-char + +fi \ No newline at end of file