aboutsummaryrefslogtreecommitdiff
path: root/.bashrc
diff options
context:
space:
mode:
authorMiquel Sabaté Solà <msabate@suse.com>2019-08-22 18:30:24 +0200
committerMiquel Sabaté Solà <msabate@suse.com>2019-08-22 18:30:24 +0200
commit4ead9be4468d8d58c027bf6e6616e3b4d6e727eb (patch)
tree18ab19fd5213c9d302b165eafa46a6f1f8902e75 /.bashrc
parent04f4a7df197ce327f36b666869a1ca2f09934e58 (diff)
downloaddotfiles-4ead9be4468d8d58c027bf6e6616e3b4d6e727eb.tar.gz
dotfiles-4ead9be4468d8d58c027bf6e6616e3b4d6e727eb.zip
Complete re-structuring so it's easier to install
Signed-off-by: Miquel Sabaté Solà <msabate@suse.com>
Diffstat (limited to '.bashrc')
-rw-r--r--.bashrc151
1 files changed, 151 insertions, 0 deletions
diff --git a/.bashrc b/.bashrc
new file mode 100644
index 0000000..cd3ee78
--- /dev/null
+++ b/.bashrc
@@ -0,0 +1,151 @@
+##
+# Locale.
+
+# Set LC_ALL always to UTF-8.
+if [ "$(locale -a | grep ca_ES.utf8)" != "" ]; then
+ export LC_ALL=ca_ES.utf8
+else
+ if [ "$(locale -a | grep en_US.utf8)" != "" ]; then
+ export LC_ALL=en_US.utf8
+ else
+ echo "[Warning] Could not set up a proper locale." \
+ "There is probably something missing on your host machine..."
+ fi
+fi
+
+##
+# Basics.
+
+# Beautifying ls command.
+alias ls='ls --group-directories-first --time-style=+"%d.%m.%Y %H:%M" --color=auto -F'
+alias ll='ls -l --group-directories-first --time-style=+"%d.%m.%Y %H:%M" --color=auto -F'
+alias la='ls -la --group-directories-first --time-style=+"%d.%m.%Y %H:%M" --color=auto -F'
+alias lisa='ls -lisa --group-directories-first --time-style=+"%d.%m.%Y %H:%M" --color=auto -F'
+
+# Alias related to cd
+alias ..='cd ..'
+alias cd..='cd ..'
+
+##
+# Utility functions.
+
+# Sources the given file if it really exists.
+source_maybe() {
+ if [ -f "$1" ]; then
+ source "$1"
+ fi
+}
+
+##
+# Editors & terminals.
+
+# Set GNU Emacs as the default editor. You can find this `emacsclient-a-nw`
+# executable in the `bin` directory of my dotfiles. That being said, in the
+# `bin` directory there is a globally installed script called `e`. This is the
+# script that will be called most of the times from the CLI for reaching out to
+# the default editor.
+export EDITOR=emacsclient-a-nw
+export VISUAL=emacsclient-a-nw
+alias vi=vim
+
+# Alias xdg-open to just xo
+alias xo=xdg-open
+
+# We want a full-fledged 256-color terminal.
+TERM=xterm-256color
+
+# Set the LESS and the PAGER environment variables.
+export LESS="FSRX"
+export PAGER=less
+
+# git thingies.
+source_maybe "$HOME/.gitcompletion.sh"
+alias gti=git
+
+# Setting up PS1.
+PS1='\u:\w$(__git_ps1 "\[\033[0;32m\]@%s\[\033[0m\]\]") $ '
+
+##
+# Programming languages and environments.
+
+# Rake completion
+if [ -f "$HOME/.rake_completion" ]; then
+ complete -C "$HOME/.rake_completion" -o default rake
+fi
+
+# Alias bundle exec
+alias be='bundle exec'
+
+# After experimenting with GCC & Clang, I'm sticking with GCC.
+export CC=/usr/bin/gcc
+export CXX=/usr/bin/g++
+
+# Go things
+export GOROOT_BOOTSTRAP=/opt/go
+export GOROOT=$HOME/Projects/go
+export GOPATH=$HOME/Projects/golang
+export PATH=$GOROOT/bin:$PATH:$GOPATH/bin
+
+##
+# Misc.
+
+# The g utility. See: https://github.com/mssola/g
+source_maybe "$HOME/.g.sh"
+source_maybe "$HOME/.gcompletion.sh"
+
+# Complete the `docker` command if possible.
+source_maybe "$HOME/.dockercompletion.sh"
+
+# Add the `bin` dir to the path if possible. See:
+# https://github.com/mssola/dotfiles.
+if [ -d "$HOME/bin" ]; then
+ export PATH=$HOME/bin:$PATH
+fi
+
+# Some packages install inside of ~/.local/bin
+export PATH=$HOME/.local/bin:$PATH
+
+# Some other misc. alias.
+alias iosc="osc -A https://api.suse.de"
+alias ag='ag --nocolor --path-to-ignore ~/.agignore'
+alias random_string="cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 64 | head -n 1"
+
+# Cargo environment.
+source_maybe "$HOME/.cargo/env"
+
+# SUSE
+export SALT_DIR="$HOME/Projects/kubic-project/salt"
+export SALT_PATH="$HOME/Projects/kubic-project/salt"
+
+export NODE_VERSION="8"
+
+# Finally RVM requires it to be the last thing on the PATH for whatever reason.
+[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
+export PATH="$PATH:$HOME/.rvm/bin"
+
+##
+# Lastly I had some problems with the GPG agent recently. So I copied a solution
+# from https://github.com/jessfraz/dotfiles
+
+# Use a tty for gpg
+GPG_TTY=$(tty)
+export GPG_TTY
+
+# Start the gpg-agent if not already running
+if ! pgrep -x -u "${USER}" gpg-agent >/dev/null 2>&1; then
+ gpg-connect-agent /bye >/dev/null 2>&1
+ gpg-connect-agent updatestartuptty /bye >/dev/null
+fi
+
+# Set SSH to use gpg-agent
+unset SSH_AGENT_PID
+if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then
+ export SSH_AUTH_SOCK="/run/user/$UID/gnupg/S.gpg-agent.ssh"
+fi
+
+# Add alias for ssh to update the tty
+alias ssh="gpg-connect-agent updatestartuptty /bye >/dev/null; ssh"
+
+# Handy alias for the ip command
+alias ip="ip --color"
+alias ipb="ip --color --brief"