over-env/etc/zsh/zshrc
2018-09-22 17:33:49 +02:00

223 lines
6.1 KiB
Bash

bindkey -e # emacs mode
alias ls="ls --classify --color --group-directories-first --quoting-style=literal"
alias l="ls --human-readable -l"
alias ll="l --almost-all"
alias grep="grep --text --color=auto"
alias pull_website="wget --no-parent --recursive --page-requisites --convert-links --html-extension --no-clobber"
alias ..="cd .."
alias htop="htop --delay=3"
alias O=xdg-open
alias gits="git status"
alias gita="git add"
alias gitc="git commit"
alias gitp="git push"
alias gitl="git log --shortstat --graph"
alias gitd="git diff --word-diff"
alias Y="noglob youtube-dl --no-check-certificate -f 'bestvideo[height<=1080]+bestaudio/best[height<=1080]'"
alias Y0="noglob youtube-dl --no-check-certificate -f 0"
alias Yall="noglob youtube-dl --no-check-certificate -o \"%(autonumber)s-%(title)s.%(ext)s\""
alias Ytune="noglob youtube-dl --no-check-certificate -x --audio-format vorbis --audio-quality 4"
alias units="units -v"
alias usystemctl="systemctl --user"
alias battery="upower -i /org/freedesktop/UPower/devices/battery_BAT0"
alias pp=python
alias ppp=python3
# apparently this is the only way of setting GNU Screen to UTF-8
alias screen="screen -U"
# Edit the current command line in $EDITOR
export VISUAL="nano"
autoload -U edit-command-line
zle -N edit-command-line
bindkey '\C-e' edit-command-line
notify () {
notify-send "Task finished" "Terminal $(tty) is idle."
}
mkcd () {
mkdir -p "$1" && cd "$1"
}
mkv-fixtitles () {
for arg in "$@"
do
title="${arg%%.[mM][kK][vV]}"
mkvpropedit "$arg" --set "title=$title" --edit track:v1 --delete name > /dev/null
if [ $? -ne 0 ]; then
echo "$arg failed"
fi
done
}
psg () { ps axu | grep -v grep | grep -i $* } # hledání v běžících procesech
pskill () {
pids=($(psg $1|awk '{print $2}'))
for pid in $pids; do
echo "Killing $pid..."
kill $pid
done
}
psm () {
pid=(${=$(psg $1|grep -o --color=no -E "[0-9]+")})
echo "Found pid=${pid[1]}."
scanmem -p ${pid[1]}
}
zres () {
. /etc/zsh/zshrc
hash -r
}
# kill GNU Screen pages in the specified range
kill_screens () {
for p in {$1..$2}
do
screen -p $p -X stuff "exit\n"
done
}
# winetricks tools
wt-prefix() {
export WINEPREFIX="$HOME/.local/share/wineprefixes/$1"
grep "#arch=win32" "${WINEPREFIX}/system.reg" > /dev/null
if [[ $? -eq 0 ]]; then
export WINEARCH="win32"
else
unset WINEARCH
fi
}
wt-goto_c() {
cd $WINEPREFIX/drive_c
}
wt-list_prefixes() {
ls $* $HOME/.local/share/wineprefixes/
}
cds() {
cd /mnt/storage/$USER/$1
}
http-dir() {
echo "Serving $PWD on 0.0.0.0:55555"
/usr/sbin/thttpd -T utf-8 -D -d . -p 55555 -l -
}
swap-files() {
TMP=.swap-files.tmp
mv "$1" "$TMP" && mv "$2" "$1" && mv "$TMP" "$2"
}
function die () {
echo "died during ${1}"
exit 1
}
function tomp4 () {
__TOMP4_INPUT="${1}"
__TOMP4_OUTPUT="${1%%.*}.mp4"
ffmpeg -i "file:${__TOMP4_INPUT}" -codec:v copy -codec:a copy "${__TOMP4_OUTPUT}"
}
function toTelegram () {
over-video --container mp4 --video x264 --video-preset slow --video-quality 22 --no-normalize --audio vorbis --move-source "" +F "scale=1280:trunc(ow/a/2)*2" +A "${@}"
}
function mkvoid () {
__MKVOID_TARGET="$1"
__MKVOID_PATH="${__MKVOID_TARGET:P}"
__MKVOID_DIR="${__MKVOID_PATH:h}"
__MKVOID_NAME="${__MKVOID_PATH:t}"
__MKVOID_ID="/dev/shm/void/${__MKVOID_PATH:l:gs/\///:gs/ //}"
mkdir -p "/dev/shm/void" || die "mkdir void"
mkdir "${__MKVOID_ID}" || die "mkdir shm"
mkdir -p "${__MKVOID_DIR}" || die "mkdir fs"
ln -s "${__MKVOID_ID}" "${__MKVOID_PATH}" || die "ln"
pushd "${__MKVOID_PATH}" > /dev/null || die "pushd"
OVER_PROMPT_VOIDS="$OVER_PROMPT_VOIDS:$__MKVOID_NAME" zsh
popd > /dev/null
while true; do
fuser -s "${__MKVOID_PATH}"
if [[ $? == 1 ]]; then
break
else
echo -n ">>> Waiting for other processes to abandon this void.\r"
fi
sleep 5
done
rm -f "${__MKVOID_PATH}" || die "rm link"
rm -rf "${__MKVOID_ID}" || die "rm void"
}
# history including search
HISTFILE=~/.history
HISTSIZE=10000000
SAVEHIST=10000000
setopt EXTENDED_HISTORY # Write the history file in the ":start:elapsed;command" format.
setopt HIST_EXPIRE_DUPS_FIRST # Expire duplicate entries first when trimming history.
setopt HIST_IGNORE_DUPS # Don't record an entry that was just recorded again.
setopt HIST_IGNORE_ALL_DUPS # Delete old recorded entry if new entry is a duplicate.
setopt HIST_FIND_NO_DUPS # Do not display a line previously found.
setopt HIST_IGNORE_SPACE # Don't record an entry starting with a space.
setopt HIST_SAVE_NO_DUPS # Don't write duplicate entries in the history file.
setopt HIST_REDUCE_BLANKS # Remove superfluous blanks before recording entry.
setopt HIST_VERIFY # Don't execute immediately upon history expansion.
bindkey '\e[A' history-beginning-search-backward # completion from history with Up/Down keys
bindkey '\e[B' history-beginning-search-forward #
setopt EXTENDED_GLOB
unsetopt NO_CLOBBER # prevents cat < file > file
unsetopt CORRECTALL # hell no
setopt NO_BEEP # hell no
unsetopt equals # allows me to use strings like =this without escaping
export ZLE_REMOVE_SUFFIX_CHARS=$' \t\n;&' # don't remove these chars after completion
# File completion
setopt AUTOLIST
setopt NO_LIST_AMBIGUOUS # list files immediately
setopt LIST_PACKED
zmodload -i zsh/complist # colors
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
zstyle ':completion::complete:*' use-cache 1
zstyle ':completion:*' special-dirs true
autoload -U compinit
compinit
autoload colors zsh/terminfo
# app-shells/over-env
source /usr/lib/over/env/prompt-init
export PYTHONSTARTUP="/usr/lib/over/env/python-startup.py"
# keyboard stuff
bindkey "\e[1~" beginning-of-line
bindkey "\e[2~" quoted-insert
bindkey "\e[3~" delete-char
bindkey "\e[4~" end-of-line
bindkey "\e[5~" beginning-of-history
bindkey "\e[6~" end-of-history
bindkey "\e[7~" beginning-of-line
bindkey "\e[8~" end-of-line
bindkey "\e[H" beginning-of-line
bindkey "\e[F" end-of-line
bindkey "\eOH" beginning-of-line
bindkey "\eOF" end-of-line
bindkey "\eOd" backward-word
bindkey "\eOc" forward-word
# paludis default options
export CAVE_OPTIONS="--log-level warning"
export CAVE_RESOLVE_OPTIONS="--reinstall-scm weekly --show-descriptions new --continue-on-failure if-satisfied"