aboutsummaryrefslogtreecommitdiff
path: root/shellrc.d
diff options
context:
space:
mode:
Diffstat (limited to 'shellrc.d')
-rw-r--r--shellrc.d/common84
-rw-r--r--shellrc.d/desktop4
-rw-r--r--shellrc.d/xorg34
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
+}