diff --git a/.install.conf.yaml b/.install.conf.yaml index 7ce9793..4c7ff40 100644 --- a/.install.conf.yaml +++ b/.install.conf.yaml @@ -6,7 +6,7 @@ - clean: ['~'] - link: - ~/.bashrc: bash/bashrc + ~/.bashrc: bash/rc ~/.bash_profile: bash/profile ~/.config/git/config: git/config ~/.config/git/ignore_global: git/ignore @@ -27,7 +27,7 @@ ~/.vimrc: vim/vimrc ~/.xinitrc: X11/xinitrc ~/.xprofile: X11/xprofile - ~/.Xresources.src: X11/Xresources.src + ~/.Xresources: X11/Xresources ~/.Xresources.d/urxvt: urxvt/Xresources ~/.config/user-dirs.dirs: X11/user-dirs.dirs ~/.config/awesome: awesome @@ -37,10 +37,5 @@ ~/.ssh/keys/: mode: 0700 -- shell: - - - command: ./bin/Xresources-preprocess - description: Preprocess Xresources.src so that xrdb doesn't have to. - stderr: true - - [chmod 600 ./ssh/config, Ensure ./ssh/config only read/writable for owner] -# - git submodules update # after linking ~/.gitconfig +#- shell: +# - git submodules update # after linking ~/.gitconfig diff --git a/X11/Xresources.src b/X11/Xresources similarity index 100% rename from X11/Xresources.src rename to X11/Xresources diff --git a/bash/bashrc.d/aliases.bash b/bash/bash.d/aliases similarity index 76% rename from bash/bashrc.d/aliases.bash rename to bash/bash.d/aliases index 44e024c..88f5da7 100644 --- a/bash/bashrc.d/aliases.bash +++ b/bash/bash.d/aliases @@ -8,7 +8,6 @@ if [ -x /usr/bin/dircolors ]; then alias grep='grep --color=auto' alias fgrep='fgrep --color=auto' alias egrep='egrep --color=auto' - alias ip='ip --color=auto' fi # some more ls aliases @@ -18,19 +17,12 @@ alias la='ls -A' alias lla='ll -A' alias l='ls -CF' -# make mkdir nicer -alias mkdir='mkdir -p -v' - # Use vim if possible instead of vi -if command -v vim > /dev/null; then +if [[ $(command -v vim) ]]; then alias vi='vim' else alias vim='vi' fi -alias e="${EDITOR:-vi}" - -# Alias expansion in sudo arguments -alias sudo='sudo ' # Reload bashrc alias bashreload="source ~/.bashrc" @@ -41,12 +33,7 @@ alias pc='python -ic "from __future__ import division; from math import *"' # Moving around alias ~='cd ~' alias ..='cd ..' -alias ...='cd ../../' # Computer control alias blank='sleep 1s && xset dpms force off' alias lock='blank; xscreensaver-command --lock' - -# whatever -alias shrug="echo '¯\_(ツ)_/¯'" -alias pinguin="echo 🐧" diff --git a/bash/bashrc.d/colours.bash b/bash/bash.d/colours similarity index 100% rename from bash/bashrc.d/colours.bash rename to bash/bash.d/colours diff --git a/bash/bash.d/fortune b/bash/bash.d/fortune new file mode 100644 index 0000000..21b8679 --- /dev/null +++ b/bash/bash.d/fortune @@ -0,0 +1,10 @@ +# Give a fortune cookie +if [[ $(command -v fortune) ]] +then + if [[ $(command -v cowsay) ]] + then + fortune -so | cowsay -n + else + fortune -so + fi +fi diff --git a/bash/bashrc.d/gpg-agent.bash b/bash/bash.d/gpg-agent similarity index 100% rename from bash/bashrc.d/gpg-agent.bash rename to bash/bash.d/gpg-agent diff --git a/bash/bashrc.d/history.bash b/bash/bash.d/history similarity index 100% rename from bash/bashrc.d/history.bash rename to bash/bash.d/history diff --git a/bash/bash.d/lol b/bash/bash.d/lol new file mode 100644 index 0000000..7b64c3e --- /dev/null +++ b/bash/bash.d/lol @@ -0,0 +1,3 @@ +#LOL +alias shrug="echo '¯\_(ツ)_/¯'" +alias pinguin="echo 🐧" diff --git a/bash/bashrc.d/network.bash b/bash/bash.d/network.bash similarity index 100% rename from bash/bashrc.d/network.bash rename to bash/bash.d/network.bash diff --git a/bash/bashrc.d/password-store.bash b/bash/bash.d/password-store similarity index 100% rename from bash/bashrc.d/password-store.bash rename to bash/bash.d/password-store diff --git a/bash/bashrc.d/prompt_command.bash b/bash/bash.d/prompt_command similarity index 89% rename from bash/bashrc.d/prompt_command.bash rename to bash/bash.d/prompt_command index 8c6e3ee..0d961a1 100644 --- a/bash/bashrc.d/prompt_command.bash +++ b/bash/bash.d/prompt_command @@ -52,42 +52,28 @@ function vte_thing() { export PROMPT_COMMAND=__prompt_command -function __PS1_hostname() { - # returns a formatted hostname +function __colored_hostname() { + local HOST="${1:-$HOSTNAME}" local color="${2:-$(color)}" - - # no colours? no need to run - if ! color ; then - echo "\h"; - return - fi - - local HOST="${1:-$HOSTNAME}" local PS1 - local NOMATCH - local func_extension="__PS1_hostname_extended" - # check selected hostnames - case "${HOST%%.*}" in - 'locksmith') PS1+="${Pur}\h${RCol}";; - 'bladesmith') PS1+="${Yel}\h${RCol}";; - 'gunsmith') PS1+="${Red}\h${RCol}";; - 'goldsmith') PS1+="${IYel}\h${RCol}";; - *) NOMATCH=1;; - esac - - if [ -n "${NOMATCH}" ]; then - if [ x$(type -t "$func_extension") = xfunction ]; then - NOMATCH=$($func_extension "$@") - fi - - # extended colouring - if [ -z "${NOMATCH}" ]; then - PS1+="${NOMATCH}" - # default colouring - else - PS1+="${Blu}${On_Whi}\h${RCol}"; - fi + if color ; then + case "${HOSTNAME%%.*}" in + 'esson') PS1+="${IGre}\h${RCol}";; + 'tinsmith') PS1+="${Gre}\h${RCol}";; + 'blacksmith') PS1+="${Blu}\h${RCol}";; + 'locksmith') PS1+="${Pur}\h${RCol}";; + 'bladesmith') PS1+="${Yel}\h${RCol}";; + 'gunsmith') PS1+="${Red}\h${RCol}";; + 'goldsmith') PS1+="${IYel}\h${RCol}";; + 'lilo'*) PS1+="${BWhi}\h${RCol}";; + 'hg'*) PS1+="${BRed}\h${RCol}";; + 'gouda'|'bunnik'|'houten'|'zandberg'|'bussum'|'baarn') PS1+="${Gre}${On_Whi}HEF:${Blu}${On_Whi}\h${RCol}";; + 'messier'*) PS1+="${Blu}Astro:${Red}\h${RCol}";; + *) PS1+="${Blu}${On_Whi}\h${RCol}";; + esac + else + PS1+="\h" fi echo "$PS1" @@ -145,7 +131,7 @@ function __prompt_command() { PS1+="@" if color ; then - PS1+="$(__PS1_hostname)" + PS1+="$(__colored_hostname)" else PS1+="\h" fi diff --git a/bash/profile b/bash/profile index 05704bc..071474b 100644 --- a/bash/profile +++ b/bash/profile @@ -1,18 +1,13 @@ # ~/.bash_profile [ -z "$DOTFILES" ] && source "$HOME/.profile" -# Always source local bash_profiles [ -r "$HOME/.bash_profile.local" ] && source "$HOME/.bash_profile.local" -[ -r "$HOME/.local/bash_profile" ] && source "$HOME/.local/bash_profile" if shopt -q login_shell then # This is a bash login shell LOGINHISTORY=~/.login.history + LOGINSTRING="$(date) ${USER}@${HOSTNAME}" - if [ -w "${LOGINHISTORY}" ]; then - echo "$(date) ${USER}@${HOSTNAME}" >> $LOGINHISTORY - fi - - unset LOGINHISTORY + echo $LOGINSTRING > $LOGINHISTORY fi diff --git a/bash/bashrc b/bash/rc similarity index 66% rename from bash/bashrc rename to bash/rc index 9b2ff9f..43f0b49 100644 --- a/bash/bashrc +++ b/bash/rc @@ -30,11 +30,11 @@ if [ -f /etc/bash_completion ] && ! shopt -oq posix; then fi # Load main things -if [ -d "$DOTBASH/bashrc.d" ]; then - for f in colours.bash aliases.bash history.bash prompt_command.bash password-store.bash network.bash +if [ -d "$DOTBASH/bash.d" ]; then + for f in colours aliases history prompt_command password-store do - if [ -r "$DOTBASH/bashrc.d/$f" ]; then - source "$DOTBASH/bashrc.d/$f" + if [ -r "$DOTBASH/bash.d/$f" ]; then + source "$DOTBASH/bash.d/$f" fi done fi @@ -44,12 +44,6 @@ if [ -r "$DOTBASH/$HOSTNAME.bashrc" ]; then source "$DOTBASH/$HOSTNAME.bashrc" fi -# Always source a local bashrc -[ -r "$HOME/.bashrc.local" ] && source "$HOME/.bashrc.local" - -# Use the local(ly linked) bashrc.private -[ -r "$HOME/.local/bashrc.private" ] && source "$HOME/.local/bashrc.private" - - -# Also check in .local for a bashrc -[ -r "$HOME/.local/bashrc" ] && source "$HOME/.local/bashrc" +if [ -r "$HOME/.bashrc.local" ]; then + source "$HOME/.bashrc.local" +fi diff --git a/bin/Xresources-preprocess b/bin/Xresources-preprocess deleted file mode 100755 index d44c3ad..0000000 --- a/bin/Xresources-preprocess +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/sh - -# Use the precompiler to allow for `xrdb -nocpp -merge ~/.Xresources`. -# Inspiration from https://github.com/dolmen/Xresources.edit/blob/1be4f5601b3d4e8befa043386288c64e724ed746/Xresources.edit - -fname=.Xresources -ext=src -force= - -# Initial setup: move $fname to $fname.$ext -if [ ! -f "$HOME/$fname.$ext" ]; then - cat "$HOME/$fname" > "$HOME/$fname.$ext" - - # Make $fname non-writable to discourage direct editing - chmod a-wx "$HOME/$fname" -fi - -# Check mtime -if [ -f "$HOME/$fname" -a "$HOME/$fname" -nt "$HOME/$fname.$ext" ]; then - { - echo "~/$fname is more recent than ~/$fname.$ext" - echo "You have to fix this manually." - echo "e.g. touch ~/$fname.$ext" - } >&2 - exit 1 -fi - - -# Run cpp and save the result as ~/$fname -[ -e "$HOME/$fname" ] && chmod u+w "$HOME/$fname" - -{ - echo '! *************************************************' - echo "! Do not edit ~/$fname, but ~/$fname.$ext" - echo '! *************************************************' - echo '! vim:set ft=xdefaults:' - echo '!' -} > "$HOME/$fname" - -cpp "$HOME/$fname.$ext" | tee -a "$HOME/$fname" -res=$? - -# Make $fname non-writable to discourage direct editing -chmod a-wx "$HOME/$fname" -exit $res diff --git a/install.sh b/install.sh index e27aea9..070ab92 100755 --- a/install.sh +++ b/install.sh @@ -13,3 +13,7 @@ git pull || echo "Pulling from remote failed" git submodule update --init --recursive "${DOTBOT_DIR}" "${BASEDIR}/${DOTBOT_DIR}/${DOTBOT_BIN}" -d "${BASEDIR}" -c "${CONFIG}" "${@}" + + +# Make sure ssh/config is only read/writable for owner +chmod 600 ssh/config diff --git a/profiles/main.sh b/profiles/main.sh index 9544c7b..77a7cce 100644 --- a/profiles/main.sh +++ b/profiles/main.sh @@ -40,9 +40,7 @@ then fi # if this is BASH source BASHRC -DOTBASHRC="$DOTFILES/bash/bashrc" -if [ "$BASH" ] && [ -r "$DOTBASHRC" ] +if [ "$BASH" ] && [ -f $DOTFILES/bash/rc ] then - source "$DOTBASHRC" + source $DOTFILES/bash/rc fi -unset DOTBASHRC