Compare commits

...

11 Commits

16 changed files with 127 additions and 54 deletions

View File

@ -6,7 +6,7 @@
- clean: ['~']
- link:
~/.bashrc: bash/rc
~/.bashrc: bash/bashrc
~/.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: X11/Xresources
~/.Xresources.src: X11/Xresources.src
~/.Xresources.d/urxvt: urxvt/Xresources
~/.config/user-dirs.dirs: X11/user-dirs.dirs
~/.config/awesome: awesome
@ -37,5 +37,10 @@
~/.ssh/keys/:
mode: 0700
#- shell:
# - git submodules update # after linking ~/.gitconfig
- 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

View File

@ -1,10 +0,0 @@
# Give a fortune cookie
if [[ $(command -v fortune) ]]
then
if [[ $(command -v cowsay) ]]
then
fortune -so | cowsay -n
else
fortune -so
fi
fi

View File

@ -1,3 +0,0 @@
#LOL
alias shrug="echo '¯\_(ツ)_/¯'"
alias pinguin="echo 🐧"

View File

@ -30,11 +30,11 @@ if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
fi
# Load main things
if [ -d "$DOTBASH/bash.d" ]; then
for f in colours aliases history prompt_command password-store
if [ -d "$DOTBASH/bashrc.d" ]; then
for f in colours.bash aliases.bash history.bash prompt_command.bash password-store.bash network.bash
do
if [ -r "$DOTBASH/bash.d/$f" ]; then
source "$DOTBASH/bash.d/$f"
if [ -r "$DOTBASH/bashrc.d/$f" ]; then
source "$DOTBASH/bashrc.d/$f"
fi
done
fi
@ -44,6 +44,12 @@ if [ -r "$DOTBASH/$HOSTNAME.bashrc" ]; then
source "$DOTBASH/$HOSTNAME.bashrc"
fi
if [ -r "$HOME/.bashrc.local" ]; then
source "$HOME/.bashrc.local"
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"

View File

@ -8,6 +8,7 @@ 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
@ -17,12 +18,19 @@ 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) ]]; then
if command -v vim > /dev/null; 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"
@ -33,7 +41,12 @@ 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 🐧"

View File

@ -52,28 +52,42 @@ function vte_thing() {
export PROMPT_COMMAND=__prompt_command
function __colored_hostname() {
local HOST="${1:-$HOSTNAME}"
function __PS1_hostname() {
# returns a formatted hostname
local color="${2:-$(color)}"
local PS1
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"
# 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
fi
echo "$PS1"
@ -131,7 +145,7 @@ function __prompt_command() {
PS1+="@"
if color ; then
PS1+="$(__colored_hostname)"
PS1+="$(__PS1_hostname)"
else
PS1+="\h"
fi

View File

@ -1,13 +1,18 @@
# ~/.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}"
echo $LOGINSTRING > $LOGINHISTORY
if [ -w "${LOGINHISTORY}" ]; then
echo "$(date) ${USER}@${HOSTNAME}" >> $LOGINHISTORY
fi
unset LOGINHISTORY
fi

45
bin/Xresources-preprocess Executable file
View File

@ -0,0 +1,45 @@
#!/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

View File

@ -13,7 +13,3 @@ 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

View File

@ -40,7 +40,9 @@ then
fi
# if this is BASH source BASHRC
if [ "$BASH" ] && [ -f $DOTFILES/bash/rc ]
DOTBASHRC="$DOTFILES/bash/bashrc"
if [ "$BASH" ] && [ -r "$DOTBASHRC" ]
then
source $DOTFILES/bash/rc
source "$DOTBASHRC"
fi
unset DOTBASHRC