Skip to content

Commit

Permalink
Initial dotfiles rework.
Browse files Browse the repository at this point in the history
  • Loading branch information
derpaschi committed Dec 1, 2016
1 parent 8e63c69 commit 3dde85a
Show file tree
Hide file tree
Showing 33 changed files with 888 additions and 2 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
git/gitconfig.local.symlink
82 changes: 82 additions & 0 deletions Brewfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
cask_args appdir: '/Applications'

tap 'caskroom/cask'
tap 'caskroom/fonts'
tap 'caskroom/versions'

tap 'homebrew/bundle'
tap 'homebrew/completions'
tap 'homebrew/core'
tap 'homebrew/dupes'
tap 'homebrew/php'
tap 'homebrew/services'
tap 'homebrew/versions'

brew 'ansible'
brew 'assh'
brew 'coreutils'
brew 'curl'
brew 'go'
brew 'grc'
brew 'docker'
brew 'docker-machine'
brew 'docker-compose'
brew 'imagemagick'
brew 'libgit2'
brew 'openssl'
brew 'mas'
brew 'node'
brew 'readline'
brew 'ruby-build'
brew 'rbenv'
brew 'python'
brew 'tmate'
brew 'unrar'
brew 'wget'
brew 'zsh'
brew 'zsh-completions'
brew 'suspicious-package'
brew 'quicklook-json'
brew 'qlmarkdown'
brew 'qlstephen'
brew 'qlcolorcode'
brew 'p4mergetool'

brew 'homebrew/completions/brew-cask-completion'
brew 'homebrew/dupes/grep'
brew 'homebrew/dupes/make'
brew 'homebrew/dupes/ncurses'
brew 'homebrew/dupes/nano'
brew 'homebrew/dupes/unzip'
brew 'homebrew/dupes/whois'
brew 'homebrew/php/php56'
brew 'homebrew/php/php56-xdebug'
brew 'homebrew/php/php70'
brew 'homebrew/php/php70-imagick'
brew 'homebrew/php/php70-xdebug'
brew 'homebrew/php/php71'

cask '1password'
cask 'cleanmymac'
cask 'dropbox'
cask 'firefox'
cask 'franz'
cask 'google-chrome'
cask 'google-drive'
cask 'gpgtools'
cask 'phpstorm'
cask 'poedit'
cask 'sequel-pro'
cask 'slack'
cask 'skype'
cask 'sublime-text'
cask 'transmit'
cask 'tower'
cask 'vagrant'
cask 'virtualbox'
cask 'vlc'

mas 'Xcode', id: 497799835
mas 'Pages', id: 409201541
mas 'Harvest', id: 506189836
mas 'iA Writer', id: 775737590
21 changes: 21 additions & 0 deletions LICENSE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
The MIT License

Copyright (c) Zach Holman, http://zachholman.com

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
24 changes: 22 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,22 @@
# dotfiles
My dotfiles.
# Paschi's dotfiles

Your dotfiles are how you personalize your system. These are mine. They are basically forked from
[Holman](https://github.com/holman/dotfiles)' great dotfiles. See the description for detailed infos.

## install

Run this:

```sh
git clone https://github.com/hubersen/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
script/bootstrap
```

## thanks

Thank's to all of your dotfiles. Mine where built out of yours.

[Holman](https://github.com/holman/dotfiles)
[Paul Millr](https://github.com/paulmillr/dotfiles)
[Pascal Birchler](https://github.com/swissspidy/dotfiles)
21 changes: 21 additions & 0 deletions bin/dot
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#!/bin/sh
#
# dot
#
# `dot` handles installation, updates, things like that. Run it periodically
# to make sure you're on the latest and greatest.
export ZSH=$HOME/.dotfiles

# Set macOS defaults
$ZSH/macos/set-defaults.sh

# Install homebrew
$ZSH/homebrew/install.sh 2>&1

# Upgrade homebrew
echo "› brew update"
brew update

# Install software
echo "$ZSH/script/install"
$ZSH/script/install
16 changes: 16 additions & 0 deletions bin/e
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#!/bin/sh
#
# Quick shortcut to an editor.
#
# This means that as I travel back and forth between editors, hey, I don't have
# to re-learn any arcane commands. Neat.
#
# USAGE:
#
# $ e
# # => opens the current directory in your editor
#
# $ e .
# $ e /usr/local
# # => opens the specified directory in your editor
exec "$EDITOR" "${1:-.}"
5 changes: 5 additions & 0 deletions bin/set-defaults
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/bin/sh
#
# Sets macOS defaults by running $ZSH/macos/set-defaults.sh.

exec $ZSH/macos/set-defaults.sh
30 changes: 30 additions & 0 deletions functions/extract
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
#!/bin/sh
#
# Usage: extract <file>
# Description: extracts archived files / mounts disk images
# Note: .dmg/hdiutil is macOS-specific.
#
# credit: http://nparikh.org/notes/zshrc.txt
extract () {
if [ -f $1 ]; then
case $1 in
*.tar.bz2) tar -jxvf $1 ;;
*.tar.gz) tar -zxvf $1 ;;
*.bz2) bunzip2 $1 ;;
*.dmg) hdiutil mount $1 ;;
*.gz) gunzip $1 ;;
*.tar) tar -xvf $1 ;;
*.tbz2) tar -jxvf $1 ;;
*.tgz) tar -zxvf $1 ;;
*.zip) unzip $1 ;;
*.ZIP) unzip $1 ;;
*.pax) cat $1 | pax -r ;;
*.pax.Z) uncompress $1 --stdout | pax -r ;;
*.rar) unrar x $1 ;;
*.Z) uncompress $1 ;;
*) echo "'$1' cannot be extracted/mounted via extract()" ;;
esac
else
echo "'$1' is not a valid file"
fi
}
8 changes: 8 additions & 0 deletions git/aliases.zsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
alias glog="git log --graph --pretty=format:'%Cred%h%Creset %an: %s - %Creset %C(yellow)%d%Creset %Cgreen(%cr)%Creset' --abbrev-commit --date=relative"

# Remove `+` and `-` from start of diff lines; just rely upon color.
alias gd='git diff --color | sed "s/^\([^-+ ]*\)[-+ ]/\\1/" | less -r'

alias gc='git commit'
alias gca='git commit -a'
alias gco='git checkout'
9 changes: 9 additions & 0 deletions git/completion.zsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Uses git's autocompletion for inner commands. Assumes an install of git's
# bash `git-completion` script at $completion below (this is where Homebrew
# tosses it, at least).
completion='$(brew --prefix)/share/zsh/site-functions/_git'

if test -f $completion
then
source $completion
fi
130 changes: 130 additions & 0 deletions git/gitconfig.symlink
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
[alias]
c = commit -am
up = pull
p = push
s = status
co = checkout
cp = cherry-pick
df = diff --color --color-words --abbrev
l = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --

# Show the diff between the latest commit and the current state
d = !"git diff-index --quiet HEAD -- || clear; git --no-pager diff --patch-with-stat"

# See https://johnblackbourn.com/git-changelog-generator
changelog = "!_() { t=$(git describe --abbrev=0 --tags); git log ${t}..HEAD --no-merges --pretty=format:'* %s'; }; _"

# Save patch file to Desktop
patch = "!f() { \
git add . && git diff --cached > ~/Desktop/$1.diff; \
}; f"

# Find commits by source code.
cc = "!f() { \
git log --pretty=custom --decorate --date=short -S\"$1\"; \
}; f"

# Find commits by commit message.
cm = "!f() { \
git log --pretty=custom --decorate --date=short --grep=\"$1\"; \
}; f"

# Remove the tag with the specified tag name if exists and tag the latest commit with that name.
retag = "!f() { \
git tag -d "$1" &> /dev/null; \
git tag $1; \
}; f"
[color]
ui = always

[color "diff"]
meta = yellow bold
commit = green bold
frag = magenta bold
old = red bold
new = green bold
whitespace = red reverse

[color "diff-highlight"]
oldNormal = red bold
oldHighlight = "red bold 52"
newNormal = "green bold"
newHighlight = "green bold 22"

[color "branch"]
current = yellow reverse
local = yellow
remote = green

[color "status"]
added = yellow
changed = green
untracked = cyan

[commit]
gpgsign = true

[core]
attributesfile = ~/.gitattributes
excludesfile = ~/.gitignore
autocrlf = false
editor = nano
pager = diff-so-fancy | less --tabs=4 -RFX

[diff]
noprefix = true
mnemonicprefix = false
compactionHeuristic = true
tool = p4mergetool

[difftool "p4mergetool"]
cmd = /Applications/p4merge.app/Contents/Resources/launchp4merge $LOCAL $REMOTE

[fetch]
prune = true

[gpg]
program = /usr/local/bin/gpg_wrap

[help]
# correct typos
autocorrect = 1

[merge]
tool = p4mergetool

[mergetool "p4mergetool"]
cmd = /Applications/p4merge.app/Contents/Resources/launchp4merge $PWD/$BASE $PWD/$REMOTE $PWD/$LOCAL $PWD/$MERGED
trustExitCode = false

[mergetool]
keepBackup = false

[pretty]
custom = "%C(magenta)%h%C(red)%d %C(yellow)%ar %C(green)%s %C(yellow)(%an)"
# │ │ │ │ └─ author name
# │ │ │ └─ message
# │ │ └─ date (relative)
# │ └─ decorations (branch, heads or tags)
# └─ hash (abbreviated)

[push]
# push easily. http://stackoverflow.com/a/23918418/89484
default = current
followTags = true

[rebase]
autostash = true

[stash]
showPatch = true

[user]
# Don't guess the user's identity.
# https://github.com/git/git/blob/90f7b16b3adc78d4bbabbd426fb69aa78c714f71/Documentation/config.txt#L2847-L2855
useConfigOnly = true

[include]
# use separate file for username / github token / etc.
# at the end so it can override any of the above configs
path = ~/.gitconfig.local
18 changes: 18 additions & 0 deletions git/gitignore.symlink
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Linux
*~

# macOS
._*
.DS_Store
.Trashes

# Intellj
.idea

# Windows
Thumbs.db

# Miscellaneous
*.pyc
node_modules
npm-debug.log
Loading

0 comments on commit 3dde85a

Please sign in to comment.