diff options
author | Karel Kočí <cynerd@email.cz> | 2018-01-26 15:02:07 +0100 |
---|---|---|
committer | Karel Kočí <cynerd@email.cz> | 2018-01-26 15:26:36 +0100 |
commit | 47d3b6fc1966df43b37751165d6fa4229904c0fa (patch) | |
tree | cccb190aad69ed1afb93654922575a95e7745d03 /shellrc.d | |
download | shellrc-5ca54ae410284b679e1de070dcf74e04bcc5c3f8.tar.gz shellrc-5ca54ae410284b679e1de070dcf74e04bcc5c3f8.tar.bz2 shellrc-5ca54ae410284b679e1de070dcf74e04bcc5c3f8.zip |
Initial commitv0.1
Diffstat (limited to 'shellrc.d')
-rw-r--r-- | shellrc.d/common | 84 | ||||
-rw-r--r-- | shellrc.d/desktop | 4 | ||||
-rw-r--r-- | shellrc.d/xorg | 34 |
3 files changed, 122 insertions, 0 deletions
diff --git a/shellrc.d/common b/shellrc.d/common new file mode 100644 index 0000000..ce744ea --- /dev/null +++ b/shellrc.d/common @@ -0,0 +1,84 @@ +# vim: ft=sh: + +alias ls='ls --color=auto' +eval $(dircolors -b) +alias ll='ls -lh' +alias df='df -h' +alias du='du -h' +alias grep='grep --color=auto' +alias git='LANG=en_GB git' +alias gdb='gdb -q' +alias cgdb='cgdb -q' +alias octave='octave-cli -q' +alias ssh='TERM="xterm-256color" ssh' +alias gst='git status' +alias v='vim' + +export LESS=-R +export LESS_TERMCAP_mb=$'\E[1;31m' +export LESS_TERMCAP_md=$'\E[1;36m' +export LESS_TERMCAP_me=$'\E[0m' +export LESS_TERMCAP_se=$'\E[0m' +export LESS_TERMCAP_so=$'\E[01;44;33m' +export LESS_TERMCAP_ue=$'\E[0m' +export LESS_TERMCAP_us=$'\E[1;32m' +[ -x /usr/bin/src-hilite-lesspipe.sh ] && export LESSOPEN="| /usr/bin/src-hilite-lesspipe.sh %s" + +# Systemd aliases if we are running systemd +if pidof systemd >/dev/null 2>/dev/null; then + alias sctl='sudo systemctl' + alias usctl='systemctl --user' + alias jrn='journalctl' + alias ujrn='jrn --user' +fi + + +# Run process in background +tobg() { + "$@" >/dev/null 2>&1 & +} + +# Generate random password (optionally takes length of password as first argument) +genpasswd() { + local l=$1 + [ -n "$l" ] || l=16 + tr -dc A-Za-z0-9_ < /dev/urandom | head -c "$l" | xargs +} + +# Automatic branch merger (merge branch, push it to server and remove branch) +# Expects name of the branch as argument +gitbmerge() { + ( + set -e + local WT="$(git worktree list | sed -nE "/\[$1\]/{s/([^ ]+) .*/\1/p}")" + if [ -n "$WT" ]; then + rm -r "$WT" + git worktree prune + fi + git merge --ff-only "$1" && git push && git branch -d "$1" && git push origin :"$1" + ) +} + +# Create new branch from master +gitbnew() { + git branch "$1" master + local NW="$(git rev-parse --show-toplevel)-$1" + git worktree add "$NW" $1 + cd "$NW" + git submodule update --init --recursive +} + +# Run given command every second +dorepeat() { + while true; do + "$@" + sleep 1 + echo + done +} + +# Clear all ssh control masters +ssh-clear() { + rm -rf ~/.cache/ssh + mkdir -p ~/.cache/ssh +} diff --git a/shellrc.d/desktop b/shellrc.d/desktop new file mode 100644 index 0000000..e669b7d --- /dev/null +++ b/shellrc.d/desktop @@ -0,0 +1,4 @@ +# vim: ft=sh: +# This is handy only on desktop and is useless on server + +alias mutt='neomutt' diff --git a/shellrc.d/xorg b/shellrc.d/xorg new file mode 100644 index 0000000..2326b54 --- /dev/null +++ b/shellrc.d/xorg @@ -0,0 +1,34 @@ +# vim: ft=sh: +# These are utility functions loaded when we are running in Xserver + +[ -z "$DISPLAY" ] && return # Ignore if there is no display set + + +alias feh='feh --magick-timeout 10 -.' + +alias i='i3-msg' + + +# Clip stdin to clipboard +clip() { + # Note: printf as magic to remove trailing new lines + printf %s "$(cat)" | xclip -selection clipboard +} + +# Clip current HEAD hash to clipboard +# Optionally you can pass commit as argument +gitclip() { + [ -n "$1" ] && local CMT="$1" || local CMT=HEAD + git rev-parse "$CMT"| clip +} +# Clip current head message to clipboard +# Optionally you can pass commit as argument +gitmclip() { + [ -n "$1" ] && local CMT="$1" || local CMT=HEAD + git log --format=%B -n 1 "$CMT" | clip +} + +# Make screenshot +xshot() { + import -window "$(xdotool selectwindow)" ~/xshot_$(date +%F_%H%M%S_%N).png +} |