# # ~/.bashrc.kuba # # If not running interactively, don't do anything [[ $- != *i* ]] && return # Convenient helper function source_existing() { [ -f "$1" ] && source "$1" } export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8 export KRB5_CONFIG=".etcfiles/krb5.conf" export EDITOR="vim" export OMPI_MCA_opal_cuda_support=0 alias dotfiles="/usr/bin/git --git-dir=$HOME/.dotfiles.git --work-tree=$HOME" alias dvim="GIT_WORK_TREE='/home/kuba' GIT_DIR='/home/kuba/.dotfiles.git/' vim" alias ls='ls --color=auto' source_existing /usr/share/bash-completion/bash_completion # Make tab-completion work for dotfiles exactly as for git # First we need to load the completion for git (this is done the first time # one types `git ` in the console). _completion_loader git # Running `complete -p git` yields the following # complete -o bashdefault -o default -o nospace -F __git_wrap__git_main git # So we do complete -o bashdefault -o default -o nospace -F __git_wrap__git_main dotfiles # Define a OS X-like open command open() { command xdg-open "$@" > /dev/null 2>&1 & } # Inspect .npz files npz_py_str="$(cat << EOM from sys import argv import numpy as np try: import matplotlib.pyplot as plt print('Imported matplotlib.pyplot as plt') except ImportError: pass class Wrap: def __init__(self, fname): n = np.load(fname, allow_pickle=True) files = n.files globs = globals() print('Contains files', files) for f in files: setattr(self, f, n[f]) globs[f] = n[f] archive = Wrap(argv[1]) print('Global namespace populated with "archive" and all files') EOM )" npz_preview() { if [ $# -lt 1 ]; then echo "Please specify file to open as argument" return fi python -ic "$npz_py_str" "$1" } rsync_wrap() { cmd="rsync -a -R -r --copy-links --exclude .git --exclude __pycache__ --progress" if [ $# == 0 ]; then echo "Usage rsync_wrap [...] Useful for synchronizing repositories Calls $cmd [...]" return fi $cmd $@ } rsync_wrap_huge() { cmd="rsync -a -R -r --copy-links --size-only --exclude .git --exclude __pycache__ --progress" if [ $# == 0 ]; then echo "Usage rsync_wrap_huge [...] Useful for synchronizing repositories. Does not do checksum Calls $cmd [...]" return fi $cmd $@ } # Source git prompt source_existing ~/scripts/git-prompt.sh source_existing ~/.bash_prompt.kuba if command -v xclip &> /dev/null; then alias selc="xclip -sel primary -i" alias selv="xclip -sel primary -o" alias clipc="xclip -sel clip -i" alias clipv="xclip -sel clip -o" fi # Activate python virtualenv source_existing ~/.python-venv.kuba/bin/activate complete -o default -C "python ~/.python-venv.kuba/lib/python3.9/site-packages/myqueue/complete.py" mq complete -o bashdefault -C snakemake-bash-completion snakemake if [ -z "$DONT_LOAD_LMOD" ]; then if [ -e /usr/share/lmod/lmod/init/profile ]; then # Source lmod module setup . /usr/share/lmod/lmod/init/profile module use "$HOME/.modules.kuba/" module use "$HOME/git/auto-venv-setup/lmod-modules/" fi fi