Initial checkin

This commit is contained in:
2015-08-21 02:14:05 -07:00
commit d7ebb8e0d2
15 changed files with 395 additions and 0 deletions

2
fish/.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
fish_history
fishd.*

View File

@@ -0,0 +1,5 @@
function __fish_adb_devices
adb devices | tail -n +2 | cut -f 1
end
complete -c adb -n '__fish_contains_opt -s s' -a '(__fish_adb_devices)' -d 'Device' -f

32
fish/config.fish Normal file
View File

@@ -0,0 +1,32 @@
# ============
# Basics, etc…
# ============
# Default browser
set -g -x EDITOR "emacsclient"
# Add ~/bin to PATH
set -g -x PATH ~/bin $PATH
# =========
# Functions
# =========
function ec
emacsclient -n $argv
end
# IP addresses
function ip
curl icanhazip.com
end
# edit config.fish (this file)
function cf
ec ~/.config/fish/config.fish
end
# reload your Fish config
function src
source ~/.config/fish/config.fish; and clear
end

View File

@@ -0,0 +1,26 @@
function fish_prompt
# $status gets nuked as soon as something else is run, e.g. set_color
# so it has to be saved asap.
set -l last_status $status
fish_prompt_colors
# Clear the line because fish seems to emit the prompt twice. The initial
# display, then when you press enter.
# printf "\033[K"
# Current Directory
# 1st sed for colourising forward slashes
# 2nd sed for colourising the deepest path (the 'm' is the last char in the
# ANSI colour code that needs to be stripped)
printf $c1
printf (prompt_pwd | sed "s,/,$c0/$c1,g" | sed "s,\(.*\)/[^m]*m,\1/$c3,")
if test ! $last_status = "0"
printf $ce
else
printf $c4
end
printf " > "
printf $c4
end

View File

@@ -0,0 +1,10 @@
function fish_prompt_colors
# c0 to c4 progress from dark to bright
# ce is the error colour
set -g c0 (set_color 005284)
set -g c1 (set_color 0075cd)
set -g c2 (set_color 009eff)
set -g c3 (set_color 6dc7ff)
set -g c4 (set_color ffffff)
set -g ce (set_color $fish_color_error)
end

View File

@@ -0,0 +1,41 @@
# prints "ARG1:ARG2" with appropriate colors
function section
printf ", "
printf $c1
printf $argv[1]
printf $c0
printf ":"
printf $c3
printf $argv[2]
printf $c0
end
function machine_tag
hostname | cut -f1 -d. - | tr '[a-z]' '[A-Z]'
end
function fish_right_prompt
# Current time
printf $c0
printf "["
printf (date "+$c2%H$c0:$c2%M")
# Show last execution time
if test $CMD_DURATION
if test $CMD_DURATION -gt (math "1000 * 2")
set secs (math "$CMD_DURATION / 1000")
section took {$secs}s
end
end
printf $c0
printf "]"
if set -q SSH_CLIENT
printf "["
printf $c1
printf (machine_tag)
printf $c0
printf "]"
end
end

35
fish/rvm.fish Normal file
View File

@@ -0,0 +1,35 @@
function rvm --description='Ruby enVironment Manager'
# run RVM and capture the resulting environment
set --local env_file (mktemp -t rvm.fish.XXXXXXXXXX)
bash -c 'source ~/.rvm/scripts/rvm; rvm "$@"; status=$?; env > "$0"; exit $status' $env_file $argv
# apply rvm_* and *PATH variables from the captured environment
and eval (grep '^rvm\|^[^=]*PATH\|^GEM_HOME' $env_file | grep -v '_clr=' | sed '/^[^=]*PATH/y/:/ /; s/^/set -xg /; s/=/ /; s/$/ ;/; s/(//; s/)//')
# clean up
rm -f $env_file
end
function __handle_rvmrc_stuff --on-variable PWD
# Source a .rvmrc file in a directory after changing to it, if it exists.
# To disable this fature, set rvm_project_rvmrc=0 in $HOME/.rvmrc
if test "$rvm_project_rvmrc" != 0
set -l cwd $PWD
while true
if contains $cwd "" $HOME "/"
if test "$rvm_project_rvmrc_default" = 1
rvm default 1>/dev/null 2>&1
end
break
else
if begin; test -s ".rvmrc"; or test -s ".ruby-version"; or test -s ".ruby-gemset"; end
eval "rvm reload" > /dev/null
break
else
set cwd (dirname "$cwd")
end
end
end
set -e cwd
end
end