summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAmin Bandali <bandali@gnu.org>2019-04-14 15:36:58 -0400
committerAmin Bandali <bandali@gnu.org>2019-04-14 15:36:58 -0400
commitd99f86cd913e15a2dc5792ca382fb5d4b2abeb7b (patch)
tree097c1014a250822e3671aaf26810b959d91b58a0
parentedb9a03a2fb953b707f286a6d944e6cf0b8fae82 (diff)
downloadconfigs-d99f86cd913e15a2dc5792ca382fb5d4b2abeb7b.tar.gz
configs-d99f86cd913e15a2dc5792ca382fb5d4b2abeb7b.tar.xz
configs-d99f86cd913e15a2dc5792ca382fb5d4b2abeb7b.zip
bash: various tweaks
- new include helper for checking if arg is a regular and readable file, then sourcing it - set VISUAL editor - fix prompt to show an additional character when abbreviated folder’s name starts with a dot
-rw-r--r--.bash_profile9
-rw-r--r--.bashrc26
-rw-r--r--.profile15
3 files changed, 33 insertions, 17 deletions
diff --git a/.bash_profile b/.bash_profile
index d5f7cc9..f41056d 100644
--- a/.bash_profile
+++ b/.bash_profile
@@ -1,2 +1,7 @@
-[[ -f ~/.profile ]] && . ~/.profile
-[[ -f ~/.bashrc ]] && . ~/.bashrc
+include () {
+ [[ -f "$1" && -r "$1" ]] && source "$1"
+}
+
+include ~/.profile
+include ~/.nix-profile/etc/profile.d/nix.sh
+include ~/.bashrc
diff --git a/.bashrc b/.bashrc
index cce2dc8..f4fa270 100644
--- a/.bashrc
+++ b/.bashrc
@@ -1,15 +1,26 @@
+# If not running interactively, don't do anything else
+[[ $- != *i* ]] && return
+
+# i-beam cursor
+# echo -e "\033[5 q" # blinking
+echo -e "\033[6 q" # non-blinking
+
# various bash tweaks
shopt -s histappend
shopt -s cmdhist
HISTSIZE=
HISTFILESIZE=
HISTCONTROL=ignoreboth
-HISTIGNORE='ls:l:s:bg:fg:history'
+HISTIGNORE='ls:l:s:g:[bf]g:history'
HISTTIMEFORMAT='%F %T '
stty stop ""
# aliases
alias ls='ls --color=auto'
+alias l='ls -lh' # long format and human-readable sizes
+alias ll='l -A' # long format, all files
+alias g='git'
+include /usr/share/bash-completion/completions/git && __git_complete g _git
alias mpv="mpv --ytdl-format mp4"
alias mv="mv -iv"
alias cp="cp -iv"
@@ -24,16 +35,13 @@ aur() {
cd ${1}
}
-# i-beam cursor
-# echo -e "\033[5 q" # blinking
-echo -e "\033[6 q" # non-blinking
-
-
-# If not running interactively, don't do anything else
-[[ $- != *i* ]] && return
+# fzf
+include /usr/share/fzf/key-bindings.bash
+include /usr/share/fzf/completion.bash
+# from https://unix.stackexchange.com/a/55935
a_prompt() {
- cwd=$(pwd | sed -e "s!$HOME!~!" | sed -re "s!([^/])[^/]+/!\1/!g")
+ cwd=$(sed -e "s:$HOME:~:" -e "s:\(\.\?[^/]\)[^/]*/:\1/:g" <<<$PWD)
printf $cwd
}
PS1="\u@\h \$(a_prompt)> "
diff --git a/.profile b/.profile
index 1875805..3d0b45c 100644
--- a/.profile
+++ b/.profile
@@ -1,3 +1,5 @@
+export VISUAL="emacsclient -c"
+
export PATH="$HOME/.local/bin:$HOME/.cabal/bin:$HOME/.cargo/bin:$HOME/.elan/bin${PATH:+:}$PATH"
export XDG_CONFIG_HOME="$HOME/.config"
@@ -7,11 +9,12 @@ export XDG_DATA_DIRS="/usr/local/share:/usr/share"
export MAILDIR="$HOME/mail"
export CVS_RSH="ssh"
-export GUIX_LOCPATH="$HOME/.guix-profile/lib/locale"
-export PATH="$HOME/.config/guix/current/bin${PATH:+:}$PATH"
-export SSL_CERT_DIR="$HOME/.guix-profile/etc/ssl/certs"
-export SSL_CERT_FILE="$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt"
-export GIT_SSL_CAINFO="$SSL_CERT_FILE"
+if [ -x "$(command -v guix)" ]; then
+ export GUIX_LOCPATH="$HOME/.guix-profile/lib/locale"
+ export PATH="$HOME/.config/guix/current/bin${PATH:+:}$PATH"
+ export SSL_CERT_DIR="$HOME/.guix-profile/etc/ssl/certs"
+ export SSL_CERT_FILE="$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt"
+ export GIT_SSL_CAINFO="$SSL_CERT_FILE"
+fi
export NIXPKGS="$HOME/src/git/nixpkgs"
-if [ -e $HOME/.nix-profile/etc/profile.d/nix.sh ]; then . $HOME/.nix-profile/etc/profile.d/nix.sh; fi