aboutsummaryrefslogtreecommitdiff
path: root/shellrc.d
diff options
context:
space:
mode:
authorKarel Kočí <cynerd@email.cz>2018-08-12 18:37:31 +0200
committerKarel Kočí <cynerd@email.cz>2018-08-12 18:37:31 +0200
commita55cffa8b3cbc02e2b021ed25e67203d337c36bb (patch)
tree8ccc7d7fd3a8423af46a77c488511589142fc08b /shellrc.d
parent8720b8f7bb072a861dcc5b4be1c97b02f0912a9e (diff)
downloadshellrc-a55cffa8b3cbc02e2b021ed25e67203d337c36bb.tar.gz
shellrc-a55cffa8b3cbc02e2b021ed25e67203d337c36bb.tar.bz2
shellrc-a55cffa8b3cbc02e2b021ed25e67203d337c36bb.zip
Move some definitions around and add --desktop optionv0.5.2
Diffstat (limited to 'shellrc.d')
-rw-r--r--shellrc.d/alias24
-rw-r--r--shellrc.d/common129
-rw-r--r--shellrc.d/desktop49
-rw-r--r--shellrc.d/function66
-rw-r--r--shellrc.d/git29
-rw-r--r--shellrc.d/less10
-rw-r--r--shellrc.d/xorg34
7 files changed, 129 insertions, 212 deletions
diff --git a/shellrc.d/alias b/shellrc.d/alias
new file mode 100644
index 0000000..78dcafe
--- /dev/null
+++ b/shellrc.d/alias
@@ -0,0 +1,24 @@
+# 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 ip='ip -c'
+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'
+alias watch='watch -n 1 -c -t -d'
+
+# 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
diff --git a/shellrc.d/common b/shellrc.d/common
deleted file mode 100644
index 8a30f3b..0000000
--- a/shellrc.d/common
+++ /dev/null
@@ -1,129 +0,0 @@
-# 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 ip='ip -c'
-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'
-alias watch='watch -n 1 -c -t -d'
-
-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
-}
-
-# Generate random hex number of given lenght
-genhex() {
- if [ -z "$1" ]; then
- echo "Size is required as first argument!" >&2
- return 1
- fi
- tr -dc 0-9A-F < /dev/urandom | head -c "$1" | xargs
-}
-
-# Automatic branch merger (merge branch, push it to server and remove branch)
-# Expects name of the branch as argument
-# It fails if it's not fast forward merge and if there is fixup! commit.
-gitbmerge() {
- (
- set -e
- if [ -n "$(git log --grep="^fixup\!" HEAD.."$1")" ]; then
- echo "First squash fixups!"
- exit 1
- fi
- 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 HEAD
-gitbnew() {
- git branch "$1" HEAD
- 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
-}
-
-# Chroot to bash to given path
-chroot-bash() {
- sudo chroot "$1" /bin/bash
-}
-
-# Run command with inotifywait
-# First argument has to be files then -- is expected and everything else
-# is command to be executed when file changes.
-inrun () {
- (
- set -e
- local TMPFS="$(mktemp --tmpdir inrun.XXXXXXXX)"
- trap "rm '$TMPFS'; trap '' EXIT; exit 0" EXIT INT QUIT TERM ABRT
- while [ $# -gt 0 -a "$1" != "--" ]; do
- echo "$1" >> "$TMPFS"
- shift
- done
- if [ $# -le 1 ]; then
- echo "Usage: inrun FILE.. -- COMMAND"
- return 1
- fi
- shift
- while true; do
- inotifywait -qe close_write --fromfile "$TMPFS" || true
- "$@" || true
- done
- )
-}
diff --git a/shellrc.d/desktop b/shellrc.d/desktop
deleted file mode 100644
index 52ca258..0000000
--- a/shellrc.d/desktop
+++ /dev/null
@@ -1,49 +0,0 @@
-# vim: ft=sh:
-# This is handy only on desktop and is useless on server
-
-alias mutt='neomutt'
-alias sdcv='sdcv -c'
-
-# Following section is applicable for any desktop but only for graphics##########
-# TODO add check for wayland
-[ -z "$DISPLAY" ] && return
-
-alias feh='feh --magick-timeout 10 -.'
-
-
-# This function should not be called externaly
-# It expects PID of surf instace as first argument and all other arguments should
-# be command to be called before kill is sent.
-__insurf_callback() {
- local SPID=$1
- shift
- "$@"
- echo kill $SPID SIGHUP
- kill -s SIGHUP $SPID || exit 1
-}
-
-# Same as inrun but it opens first argument it founds in surf and then reloads
-# that instance automatically.
-insurf() {
- (
- set -e
- # Run surf
- surf "$1" &
- local SPID=$!
- trap "kill $SPID; trap '' EXIT; exit 0" EXIT INT QUIT TERM ABRT
- # Insert our callback
- local ISFIRST=true
- for ARG in "$@"; do
- if $ISFIRST; then
- shift $#
- ISFIRST=false
- fi
- set "$@" "$ARG"
- if [ "$ARG" = "--" ]; then
- set "$@" "__insurf_callback" "$SPID"
- fi
- done
- # Run inrun
- inrun "$@"
- )
-}
diff --git a/shellrc.d/function b/shellrc.d/function
new file mode 100644
index 0000000..56e648a
--- /dev/null
+++ b/shellrc.d/function
@@ -0,0 +1,66 @@
+# vim: ft=sh:
+
+# 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
+}
+
+# Generate random hex number of given lenght
+genhex() {
+ if [ -z "$1" ]; then
+ echo "Size is required as first argument!" >&2
+ return 1
+ fi
+ tr -dc 0-9A-F < /dev/urandom | head -c "$1" | xargs
+}
+
+# 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
+}
+
+# Chroot to bash to given path
+chroot-bash() {
+ sudo chroot "$1" /bin/bash
+}
+
+# Run command with inotifywait
+# First argument has to be files then -- is expected and everything else
+# is command to be executed when file changes.
+inrun () {
+ (
+ set -e
+ local TMPFS="$(mktemp --tmpdir inrun.XXXXXXXX)"
+ trap "rm '$TMPFS'; trap '' EXIT; exit 0" EXIT INT QUIT TERM ABRT
+ while [ $# -gt 0 -a "$1" != "--" ]; do
+ echo "$1" >> "$TMPFS"
+ shift
+ done
+ if [ $# -le 1 ]; then
+ echo "Usage: inrun FILE.. -- COMMAND"
+ return 1
+ fi
+ shift
+ while true; do
+ inotifywait -qe close_write --fromfile "$TMPFS" || true
+ "$@" || true
+ done
+ )
+}
diff --git a/shellrc.d/git b/shellrc.d/git
new file mode 100644
index 0000000..47edae5
--- /dev/null
+++ b/shellrc.d/git
@@ -0,0 +1,29 @@
+# vim: ft=sh:
+
+# Automatic branch merger (merge branch, push it to server and remove branch)
+# Expects name of the branch as argument
+# It fails if it's not fast forward merge and if there is fixup! commit.
+gitbmerge() {
+ (
+ set -e
+ if [ -n "$(git log --grep="^fixup\!" HEAD.."$1")" ]; then
+ echo "First squash fixups!"
+ exit 1
+ fi
+ 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 HEAD
+gitbnew() {
+ git branch "$1" HEAD
+ local NW="$(git rev-parse --show-toplevel)-$1"
+ git worktree add "$NW" $1
+ cd "$NW"
+ git submodule update --init --recursive
+}
diff --git a/shellrc.d/less b/shellrc.d/less
new file mode 100644
index 0000000..d2490a5
--- /dev/null
+++ b/shellrc.d/less
@@ -0,0 +1,10 @@
+# vim: ft=sh:
+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"
diff --git a/shellrc.d/xorg b/shellrc.d/xorg
deleted file mode 100644
index be9ef69..0000000
--- a/shellrc.d/xorg
+++ /dev/null
@@ -1,34 +0,0 @@
-# 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 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 ~/xshot_$(date +%F_%H%M%S_%N).png
-}
-xshot-screen() {
- import -screen ~/xshot_$(date +%F_%H%M%S_%N).png
-}