Merge branch 'master' of github.com:glenux/ansible-role-glenux-bash

This commit is contained in:
Glenn Y. Rolland 2022-11-20 15:30:32 +01:00
commit 31e4aa01bd
35 changed files with 506 additions and 89 deletions

View file

@ -1,70 +1,110 @@
### ALIASES SUDO
alias apt-get='sudo apt-get'
alias apt-cache='sudo apt-cache'
alias dpkg='sudo dpkg'
alias photo_dl='sudo gphoto2 --auto-detect -P'
alias gnux_dvd='sudo /home/warbrain/bin/gnux_dvd'
alias svnforget='svn st | egrep '\''^(\!|\?).*\.(cpp|cc|am|h|hh|hxx|tex|png)$'\'''
## ALIASES
alias atodo='todo -G'
alias tdg='todo -G'
alias be='bundle exec'
alias ls='ls --color=auto -F'
alias makepatch='LC_ALL=C TZ=UTC0 diff -Naur '
alias timidity='timidity -Oe'
alias synaptic='gksu synaptic'
alias sl='ls'
#alias cmake='colormake'
alias music123='esddsp music123'
alias xdu='du > ~/.tmp/du.out && xdu -n -c 7 ~/.tmp/du.out'
alias gnux_bgfiles='find -exec du -sh "{}" \; | egrep [0-9]M | sort -n | tail -n 11 | head -n 10'
alias fr='file-roller'
alias mp3blaster='esddsp mp3blaster'
alias ll='ls -lh'
alias llla='ls -la | less'
alias lsd="ls -F | egrep '\/$'"
alias speech='esddsp festival --tts'
alias gvimr='gvim --remote-tab'
alias grep='grep --color'
## SERVERS SSH
alias host_dptmaths='ssh -X -C ssh.dptmaths.ens-cachan.fr -l rolland'
alias host_shamox='ssh -X -c arcfour -C -p 22 shamox.ath.cx -l warbrain'
alias host_darby='ssh -X -c arcfour -C darby -l warbrain'
alias host_daka='ssh -X -c arcfour -C daka -l warbrain'
# pass 'noir'
alias tunnel_murlock='ssh -L8882:localhost:8888 bewan@murlock.hd.free.fr -N'
#alias diades='ssh -X -c arcfour -C diades.glenux.net -l warbrain'
#alias dungeon='ssh -X -c blowfish -C dungeon -l warbrain'
#alias djeke='ssh -X -c blowfish -C djeke -l warbrain'
#alias sword='ssh -X -c blowfish -C sword.ath.cx -l warbrain'
alias ykhoo='ssh -X -c blowfish -C ykhoo.ath.cx -l warbrain'
alias daneel='ssh -X -c blowfish -C daneel.glenux.net -l warbrain'
alias ef='LD_PRELOAD=libefence.so.0.0 '
# ## ALIASES SUDO
## MOLLY-GUARD
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias divx='find /cdrom -name \*.[Aa][Vv][Ii] -o -name \*.[oO][Gg][Mm] -ok mplayer \-fs \-x 512 \-y 300 {} \;'
#alias ip='/sbin/ifconfig eth0 | grep adr | sed -e "s/^.*adr://" |sed -e "s/ Bcast.*//" '
## BROWSING FILESYSTEM
alias ls='$( if hash exa 2>&1 >/dev/null; then echo exa ; else ls ; fi ) -F --group-directories-first '
alias sl='ls'
alias ll='ls -lh'
alias llla='ls -la | less'
alias lsd="ls -F | egrep '\/$'"
alias xdu='du > ~/.tmp/du.out && xdu -n -c 7 ~/.tmp/du.out'
alias iexplore='xdg-open .'
alias rmplayer="mplayer -ao esd -nocache"
alias cat='$( if hash batcat 2>&1 >/dev/null ; then echo batcat ; else echo cat ; fi )'
alias bat='$( if hash batcat 2>&1 >/dev/null ; then echo batcat ; else echo cat ; fi )'
alias filter_video="egrep -i '\.(avi|mov|mpe?g|mkv|wmv|rm)$'"
alias filter_audio="egrep -i '\.(wav|flac|mp3|aac|m4a|ogg|wma)$'"
## FILES FILTERING
alias filter_video="egrep -i '\.(avi|mov|mpe?g|mkv|wmv|rm|mp4)$'"
alias filter_audio="egrep -i '\.(wav|flac|mp3|aac|m4a|ogg|wma|opus|ape)$'"
alias filter_image="egrep -i '\.(jpe?g|png|xcf(.gz)|eps|svg|gif)$'"
alias filter_imageart="egrep -i '\.(xcf(.gz)?|psd|ora|svg)$'"
alias filter_archive="egrep -i '\.(tar\.)?(gz|bz2|7z|tgz|zip|rar|ace|zoo|arj|lha)$'"
alias filter_document="egrep -i '\.(txt|pdf|ps|sxw|odt|doc|rtf)$'"
alias filter_document="egrep -i '\.(txt|pdf|ps|sxw|odt|doc|docx|xls|xlsx|rtf)$'"
alias pwgen="pwgen -B 10 14"
alias http_serve="python -m SimpleHTTPServer 5001"
alias scp="BINARY_SSH=scp $HOME/bin/ssh"
alias rsync="BINARY_SSH=rsync $HOME/bin/ssh"
## DEVELOPMENT
alias be='bundle exec'
alias pe='pipenv run'
alias dcp='docker-compose'
alias preload_efence='LD_PRELOAD=libefence.so.0.0 '
alias svnforget='svn st | egrep '\''^(\!|\?).*\.(cpp|cc|am|h|hh|hxx|tex|png)$'\'''
## MULTIMEDIA
alias photo_dl='sudo gphoto2 --auto-detect -P'
alias rmplayer="mplayer -ao esd -nocache"
alias timidity='timidity -Oe'
alias music123='esddsp music123'
alias speech='esddsp festival --tts'
alias paria='aria2c -k 2M -x 10 -s 10'
## HOSTING
alias dokku='/usr/bin/ssh dokku@apps.glenux.net'
alias ge="ghostwriter"
## PRODUCTIVITY
alias atodo='todo -G'
alias tdg='todo -G'
alias makepatch='LC_ALL=C TZ=UTC0 diff -Naur '
#alias cmake='colormake'
alias gnux_bgfiles='find -exec du -sh "{}" \; | egrep [0-9]M | sort -n | tail -n 11 | head -n 10'
alias gvimr='gvim --remote-tab'
alias grep='grep --color'
## SERVERS SSH
# pass 'noir'
#alias ip='/sbin/ifconfig eth0 | grep adr | sed -e "s/^.*adr://" |sed -e "s/ Bcast.*//" '
alias pwgen="pwgen -s -n -B 24 30"
alias http_serve='$( if hash python3 ; then echo python3 -m http.server 5001 ; else echo python2 -m SimpleHTTPServer 5001 ; fi )'
# alias scp="BINARY_SSH=scp $HOME/bin/ssh"
# alias rsync="BINARY_SSH=rsync $HOME/bin/ssh"
alias fuck='$(thefuck $(fc -ln -1))'
alias baloostatus='balooctl status 2>/dev/null |grep Indexed |awk -v p=200 "{print int(p * \$2/\$4)/p; }"'
alias docker_ip="docker inspect -f '{{ .NetworkSettings.IPAddress}}'"
alias ctrlc='xclip -selection clipboard -i'
alias ctrlv='xclip -selection clipboard -o'
alias vimfm=vifm
alias mkhash='head -c 1000 /dev/urandom |sha256sum |cut -c1-9'
alias dotenv='eval "$(sed -e "/^[[:space:]]*$/d" -e "s/^/export /" < .env)"'
alias rot13="tr 'A-Za-z' 'N-ZA-Mn-za-m'"
alias proxy_nextformation_etoile='http_proxy=http://172.16.102.254:3128 https_proxy=http://172.16.102.254:3128 no_proxy=127.0.0.1,localhost'
alias proxy_nextformation_firmingillot8='http_proxy=http://172.16.108.254:3128 https_proxy=http://172.16.108.254:3128 no_proxy=127.0.0.1,localhost'
alias proxy_nextformation_firmingillot9='http_proxy=http://172.16.109.254:3128 https_proxy=http://172.16.109.254:3128 no_proxy=127.0.0.1,localhost'
alias proxy_local8080='http_proxy=socks5://localhost:8080 https_proxy=socks5://localhost:8080'
alias diff_code='diff --color=always -Nur -x node_modules'
alias mkemail='echo "$(date +"%Y").$(cat /dev/urandom | tr -dc "a-z0-9" | head -c 8)@glenux.net"'
alias pouet="echo pouet"
alias reddit=tuir
alias ebook=epr
alias tt=timew
alias ttd='timew day :week :id'
alias tts='timew sum :week :id'
alias xc-libreoffice="libreoffice \"-env:UserInstallation=file://$HOME/.config/libreoffice/4/xopetotec\""
alias unlock_screen='kill -9 $(pgrep [k]screenlocker)'
alias unfmt="awk '{printf \"%s \",$0} /^$/{print \"\n\"} END{print \"\"}'"
alias cast='go-chromecast --first'
alias edit_goyo="EDITOR=goyo RAND_EDITOR=goyo"
alias edit_ghostwriter="EDITOR=ghostwriter RAND_EDITOR=ghostwriter"
alias khal_report="khal list 2021-06-01 2021-12-01 --format ' {start-time} .. {end-time} {title}'"
alias vpn_stop="nmcli connect down \$(nmcli connect show --active |awk '/wireg/ {print \$1; }' )"
alias vpn_start_rand="nmcli connect up \$(nmcli connect |awk '/wireg/ {print \$1; }' |shuf -n1)"
alias vpn_status="nmcli connection show --active | awk '/wireguard/ { print \$1; }'"

View file

@ -11,8 +11,13 @@
if [ -d "$HOME/.bashrc.d" ]; then
for script in $(find "$HOME/.bashrc.d/" -name '*.sh' |sort -n) ; do
# echo "Loading `basename \"$script\"`..." # >&2
. $script
. "$script"
done
fi
case "$(hostname)" in
dilong) export LIBVA_DRIVER_NAME=i965
;;
*) ;;
esac

View file

@ -8,3 +8,6 @@ if [ -d "$HOME/bin" ] ; then
export PATH="$HOME/bin:$PATH"
fi
if [ -d "$HOME/.local/bin" ] ; then
export PATH="$HOME/.local/bin:$PATH"
fi

View file

@ -0,0 +1,9 @@
# HAS_WINPTY="${HAS_WINPTY:-}"
# export HAS_WINPTY
# # Force shell restart in case winpty is not set
# if [ -z "$HAS_WINPTY" ]; then
# HAS_WINPTY=1
# exec winpty $SHELL
# fi

View file

@ -0,0 +1,9 @@
#!/bin/sh
###
# Set up Multi-language (asdf) environment
#
if [ -d "$HOME/.asdf" ] && [ -f "$HOME/.asdf/asdf.sh" ]; then
. "$HOME/.asdf/asdf.sh"
. "$HOME/.asdf/completions/asdf.bash"
fi

View file

@ -5,7 +5,8 @@
#
if hash opam > /dev/null 2>&1 ; then
eval $(opam config env)
# OPAM configuration
. /home/warbrain/.opam/opam-init/init.sh > /dev/null 2> /dev/null || true
fi
# OPAM configuration
#. /home/warbrain/.opam/opam-init/init.sh > /dev/null 2> /dev/null || true

View file

@ -0,0 +1,15 @@
#!/bin/sh
###
# Set up Android environment
#
ANDROIDDIR="$HOME/src/Android"
if [ -d "$ANDROIDDIR" ]; then
export PATH=$ANDROIDDIR/Sdk/platform-tools:$ANDROIDDIR/Sdk/tools:$PATH
fi
if [ -d "$HOME/android-sdk-linux" ]; then
export PATH="$HOME/android-sdk-linux/build-tools/19.1.0:$PATH"
export PATH="$HOME/android-sdk-linux/tools:$PATH"
export ANDROID_HOME="$HOME/android-sdk-linux/"
fi

View file

@ -0,0 +1,14 @@
# Change tab behaviour
# - inline completion (menu-complete)
# - of simple suggestion (complete) => default
# bind TAB:menu-complete
case "${-:-}" in
*i*) # This shell is interactive
bind TAB:complete
;;
*) # This shell is not interactive
;;
esac

View file

@ -0,0 +1,6 @@
#!/bin/sh
export DEBEMAIL="glenux@glenux.net"
export DEBFULLNAME="Glenn Y. Rolland"
export buildArea=$HOME/debian/build-area

View file

@ -0,0 +1,20 @@
#!/bin/sh
##
# Set up Go environment
#
if hash go > /dev/null 2>&1; then
if [ -d "$HOME/bin" ]; then
export GOPATH="$HOME/src/Go"
export PATH="$GOPATH/bin:$PATH"
# For QT
export CGO_CXXFLAGS_ALLOW=".*"
export CGO_LDFLAGS_ALLOW=".*"
export CGO_CFLAGS_ALLOW=".*"
export QT_DIR=/usr/lib/x86_64-linux-gnu/qt5
export QT_PKG_CONFIG=true
fi
fi

View file

@ -0,0 +1,11 @@
#!/bin/sh
##
# Set up OCaml environment
#
#if hash opam > /dev/null 2>&1 ; then
# eval $(opam config env)
#fi
# OPAM configuration
#. /home/warbrain/.opam/opam-init/init.sh > /dev/null 2> /dev/null || true

View file

@ -0,0 +1,16 @@
#!/bin/sh
###
# Set up Ruby environment
#
#export PATH=/var/lib/gems/1.8/bin:$PATH
if [ -s "$HOME/.rbenv/bin/rbenv" ]; then
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
fi
SONARPATH="/usr/local/sonar-scanner-3.3.0.1492-linux"
if [ -d "$SONARPATH" ]; then
export PATH="$PATH:$SONARPATH/bin"
fi

View file

@ -1,4 +1,6 @@
# Disable ansible cowsay
export ANSIBLE_NOCOWS=1
if hash ansible > /dev/null 2>&1 ; then
export ANSIBLE_NOCOWS=1
fi

View file

@ -0,0 +1,46 @@
# Install one or more versions of specified language
# e.g. `vmi rust` # => fzf multimode, tab to mark, enter to install
# if no plugin is supplied (e.g. `vmi<CR>`), fzf will list them for you
# Mnemonic [V]ersion [M]anager [I]nstall
asdf_install() {
local lang="$1"
local versions=""
if [ -z "$lang" ]; then
lang=$(asdf plugin-list | fzf)
fi
if [ -n "$lang" ]; then
versions=$(asdf list-all "$lang" | fzf -m)
if [ -n "$versions" ]; then
for version in $versions; do
asdf install "$lang" "$version"
done
fi
fi
}
# Remove one or more versions of specified language
# e.g. `vmi rust` # => fzf multimode, tab to mark, enter to remove
# if no plugin is supplied (e.g. `vmi<CR>`), fzf will list them for you
# Mnemonic [V]ersion [M]anager [C]lean
asdf_clean() {
local lang="$1"
local versions=""
if [ -z "$lang" ]; then
lang=$(asdf plugin-list | fzf)
fi
if [ -n "$lang" ]; then
versions="$(asdf list "$lang" | fzf -m)"
if [ -n "$versions" ]; then
for version in $versions; do
asdf uninstall "$lang" "$version"
done
fi
fi
}
. $HOME/.asdf/asdf.sh

View file

@ -1,6 +1,6 @@
# Help darcs on network mounts
if hash darcs >/dev/null 2>&1 ; then
export DARCS_SLOPPY_LOCKS=1
if hash darcs > /dev/null 2>&1 ; then
export DARCS_SLOPPY_LOCKS=1
fi

View file

@ -0,0 +1,41 @@
WP_UID="${WP_UID:-"$(id -u)"}"
WP_GID="${WP_GID:-"$(id -g)"}"
export WP_UID
export WP_GID
docker_tags () {
request="$1"
repo="$(echo "$request" | awk '{split($0,a,"/"); print a[1];}')"
name="$(echo "$request" | awk '{split($0,a,"/"); print a[2];}')"
# >&2 echo "repo: $repo"
# >&2 echo "name: $name"
if [ -z "$name" ]; then
# >&2 echo "Using 'library' as repository name"
name="$repo"
repo="library"
fi
>&2 echo "Looking for $repo/$name"
# Initial URL
url="https://registry.hub.docker.com/v2/repositories/$repo/$name/tags/?page_size=100"
(
# Keep looping until the variable URL is empty
while [ ! -z "$url" ]; do
# >&2 echo "$url"
# Every iteration of the loop prints out a single dot to show progress as it got through all the pages (this is inline dot)
>&2 printf "."
# Curl the URL and pipe the output to Python. Python will parse the JSON and print the very first line as the next URL (it will leave it blank if there are no more pages)
# then continue to loop over the results extracting only the name; all will be stored in a variable called content
content="$(curl -s "$url" | python -c 'import sys, json; data = json.load(sys.stdin); print(data.get("next", "") or ""); print("\n".join([x["name"] for x in data["results"]]))')"
# Let's get the first line of content which contains the next URL for the loop to continue
url="$(echo "$content" | head -n 1)"
# Print the content without the first line (yes +2 is counter intuitive)
echo "$content" | tail -n +2
done;
# Finally break the line of dots
>&2 echo
) | cut -d '-' -f 1 | sort --version-sort --unique;
}

View file

@ -8,3 +8,6 @@ for pager in vim nano emacs ; do
fi
done
export EDITOR="vim"
export MARKDOWN_DOC_EDITOR="ghostwriter"
export MARKDOWN_SLIDES_EDITOR="Marp"

View file

@ -0,0 +1,5 @@
if hash fzf >/dev/null 2>&1 ; then
export FZF_DEFAULT_OPTS='--height 40% --layout=reverse --border'
fi

View file

@ -0,0 +1,13 @@
# Go forward in Git commit hierarchy, towards particular commit
# Usage:
# gofwd v1.2.7
# Does nothing when the parameter is not specified.
gitfwd() {
git checkout "$(git rev-list --topo-order HEAD.."$*" | tail -1)"
}
# Go back in Git commit hierarchy
# Usage:
# goback
alias gitback='git checkout HEAD~'

View file

@ -5,5 +5,5 @@
#export GREP_COLORS
# disable deprecated variable
export GREP_OPTIONS=
unset GREP_OPTIONS

View file

@ -0,0 +1,9 @@
KONSOLE_PROFILE_NAME=""
if hash qdbus 2>&1 >/dev/null ; then
if [ -n "$KONSOLE_DBUS_SERVICE" ] && [ -n "$KONSOLE_DBUS_SESSION" ]; then
KONSOLE_PROFILE_NAME="$(qdbus $KONSOLE_DBUS_SERVICE $KONSOLE_DBUS_SESSION profile)"
fi
fi
export KONSOLE_PROFILE_NAME

View file

@ -0,0 +1,2 @@
export EMAIL=glenux@glenux.net

View file

@ -0,0 +1,5 @@
MOZ_TOKEN_FILE="$HOME/.config/mozilla-vpn/token"
if [ -f "$MOZ_TOKEN_FILE" ]; then
. "$MOZ_TOKEN_FILE"
fi

View file

@ -0,0 +1,7 @@
#!/bin/sh
# NCDU
if hash ncdu 2> /dev/null ; then
export NCDU_SHELL=bash
fi

View file

@ -0,0 +1,6 @@
# added by travis gem
if [ -f "$HOME/.travis/travis.sh" ]; then
. "$HOME/.travis/travis.sh"
fi

View file

@ -0,0 +1,5 @@
if [ -f "$HOME/.config/trello/glenux" ]; then
. "$HOME/.config/trello/glenux"
fi

View file

@ -0,0 +1,4 @@
export VIM_NOTES_TEMPLATE="$HOME/.vim/templates/vim-notes"
export VIM_NOTES_DIR="$HOME/Documents/GlenuxCloud/Notes"

View file

@ -7,13 +7,56 @@
ps1_show() {
local format=$1
local fun=$2
local str=$($fun)
local str=""
str=$($fun)
if [ ! -z "$str" ]; then
printf "$format\n" "$str"
fi
}
ps1_timetracking() {
local active_tracking=""
local active_tags_count=""
local active_tags=""
local current_tag=""
local bar_icon=""
local dom_prefix=""
# exit if timew is not installed
if ! hash timew > /dev/null 2>&1 ; then
return 0
fi
# exit if no active tracking
active_tracking="$(timew get dom.active)"
if [ "$active_tracking" -eq 1 ]; then
bar_icon="[▶]"
dom_prefix="dom.active"
else
bar_icon="[■]"
dom_prefix="dom.tracked.1"
fi
active_tags_count="$(timew get "$dom_prefix.tag.count")"
if [ "$active_tags_count" -gt 0 ]; then
suffix=""
active_tags=""
if [ "$active_tags_count" -gt 1 ] && [ "$active_tracking" -eq 0 ]; then
# Bug when accessing multiple tags on non-active tasks
suffix="…"
active_tags_count=1
fi
for tagidx in $(seq 1 "$active_tags_count") ; do
current_tag="$(timew get "$dom_prefix.tag.$tagidx")"
active_tags="$active_tags,$current_tag"
done
active_tags="$(echo "$active_tags" |cut -c2-)$suffix"
else
active_tags="(tag?)"
fi
echo "$bar_icon $active_tags "
}
ps1_vcs_branch() {
local vcs=""
local vcs_branch=""
@ -22,39 +65,53 @@ ps1_vcs_branch() {
local vcs_root_url=""
local vcs_branch_url=""
{
if hash git && git rev-parse; then
vcs='git'
vcs_branch=$(git branch |sed -n "s/\* \(.*\)/\1/p")
elif hash hg && hg -q status; then
vcs='hg'
vcs_branch=$(hg branch)
elif hash svn && svn info; then
vcs='svn'
vcs_root_path=$(LANG=C LC_ALL=C svn info |sed -n 's/^Working Copy Root Path: //p')
vcs_root_url=$(cd "$vcs_root" ; LANG=C LC_ALL=C svn info |sed -n 's/^Repository Root: //p')
vcs_branch_url=$(cd "$vcs_root" ; LANG=C LC_ALL=C svn info |sed -n 's/^URL: //p')
vcs_branch=$(echo "$vcs_branch_url" |sed "s#^$vcs_root_url/##")
fi
} >/dev/null 2>&1
if hash git > /dev/null 2>&1 && git rev-parse > /dev/null 2>&1; then
vcs="git"
vcs_branch=$(git symbolic-ref --short -q HEAD 2>/dev/null)
vcs_branch=${vcs_branch:-(detached head)}
elif hash hg > /dev/null 2>&1 && hg -q status > /dev/null 2>&1; then
vcs="hg"
vcs_branch=$(hg branch)
elif hash svn > /dev/null 2>&1 && svn info > /dev/null 2>&1; then
vcs="svn"
# vcs_root_path=$(LANG=C LC_ALL=C svn info |sed -n "s/^Working Copy Root Path: //p")
vcs_root_url=$(cd "$vcs_root" || return ; LANG=C LC_ALL=C svn info |sed -n "s/^Repository Root: //p")
vcs_branch_url=$(cd "$vcs_root" || return ; LANG=C LC_ALL=C svn info |sed -n "s/^URL: //p")
vcs_branch=$(echo "$vcs_branch_url" |sed "s#^$vcs_root_url/##")
fi
if [ -z "$vcs" ]; then
echo ""
else
echo "$vcs:$vcs_branch"
echo "$vcs $vcs_branch"
fi
}
#export PS1=" \t [#\#]\n[\u@\h \w]\\$ "
#PS1='\[\033[1;32m\][\t|\d]\[\033[1;33m\][\u@\h] \[\033[0;36m\]\w\$\[\033[0m\]\n '
PS1="${ps1_context:-}"
PS1=$PS1"▪ \[\e[1;0m\]\w\[\e[0m\] "
PS1="$ps1_context ."
PS1=$PS1": \[\e[1;33m\]\w\[\e[0m\] :"
PS1=$PS1"\`ps1_show ': \[\e[1;34m\]%s\[\e[0m\] :' ps1_vcs_branch\`" # vcs branch
PS1=$PS1": \[\e[0;32m\]\t\[\e[0m\] :"
#PS1=$PS1": \[\e[1;34m\]#\#\[\e[0m\] :" #command count
PS1=$PS1": \[\e[0;31m\]\u@\h " #username
PS1=$PS1"("`uname -m`")\[\e[0m\] :" # architecture
PS1=$PS1":.\n\$ "
# Include VCS Info (eval at each line)
# shellcheck disable=SC2089
PS1=$PS1"\$(ps1_show '▪ \[\e[1;34m\]%s\[\e[0m\] ' ps1_vcs_branch)" # vcs branch
# Include DATETIME
# PS1=$PS1"▪ \[\e[0;32m\]\t\[\e[0m\] "
# Include TIME TRACKING (timewarrior)
PS1=$PS1"\$(ps1_show '▪ \[\e[1;32m\]%s\[\e[0m\] ' ps1_timetracking)" # timetracking
# Include command count
# PS1=$PS1": \[\e[1;34m\]#\#\[\e[0m\] :"
# Include USERNAME
PS1=$PS1"▪ \[\e[0;31m\]\u@\h "
# Include ARCHITECTURE (eval only once)
PS1=$PS1"($(uname -m))\[\e[0m\] "
PS1=$PS1"\n\$ "
# shellcheck disable=SC2090
export PS1

View file

@ -1,3 +1,10 @@
export HISTSIZE=10000
export HISTFILESIZE=10000
# don't put duplicate lines in the history. See bash(1) for more options
export HISTCONTROL=ignoredups
export HISTCONTROL=ignoredups:erasedups
shopt -s histappend
# Reload history on each command
#PROMPT_COMMAND="history -n; history -w; history -c; history -r; $PROMPT_COMMAND"

View file

@ -0,0 +1,17 @@
_cht_complete()
{
local cur prev opts
_get_comp_words_by_ref -n : cur
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
opts="$(curl -s cheat.sh/:list)"
if [ ${COMP_CWORD} = 1 ]; then
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
__ltrim_colon_completions "$cur"
fi
return 0
}
complete -F _cht_complete cht.sh

View file

@ -0,0 +1,5 @@
if hash helm >/dev/null 2>&1 ; then
eval "$(helm completion bash)"
fi

View file

@ -0,0 +1,5 @@
if hash kind >/dev/null 2>&1 ; then
eval "$(kind completion bash)"
fi

View file

@ -0,0 +1,5 @@
if hash kompose >/dev/null 2>&1 ; then
eval "$(kompose completion bash)"
fi

View file

@ -0,0 +1,5 @@
if hash kubectl >/dev/null 2>&1 ; then
eval "$(kubectl completion bash)"
fi

View file

@ -0,0 +1,19 @@
# completion programmable sur les URLs qui vont bien
# mpv
# complete -W " 'mms://vip7.yacast.fr/encoderouifm'
# 'mms://vipbu.yacast.fr/encoderouifm'
# 'mms://vip2.yacast.fr/encoderfun1'
# 'mms://vipbu.yacast.fr/encoderfun'
# 'mms://vip1.yacast.fr/encodernrj'
# 'mms://vipbu.yacast.fr/encodernrj'
# 'mms://vip1.yacast.fr/encodernostalgie'
# " mpv
#
_complete_mpv() {
COMPREPLY=()
}
complete -o default -o nospace -F _complete_mpv mpv