feat(*): initial commit
This commit is contained in:
43
README.md
Normal file
43
README.md
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|

|
||||||
|
|
||||||
|
# Rack Lin's dotfiles
|
||||||
|
|
||||||
|
I am using [GNU Stow](https://www.gnu.org/software/stow/) - a symlink farm manager to manage dotfiles.
|
||||||
|
|
||||||
|
**Warning**: Don’t blindly use my settings unless you know what that entails. Use at your own risk!
|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
Make sure you have installed all of the following prerequisites on your development machine:
|
||||||
|
- [GNU Stow](https://www.gnu.org/software/stow/) > 2.3.0 that support new `--dotfiles` option
|
||||||
|
- [z for fish](https://github.com/jethrokuan/z) - Directory jumping
|
||||||
|
- [Exa](https://the.exa.website/) - `ls` replacement
|
||||||
|
- [ghq](https://github.com/x-motemen/ghq) - Local Git repository organizer
|
||||||
|
- [fzf](https://github.com/junegunn/fzf) - is a general-purpose command-line fuzzy finder.
|
||||||
|
|
||||||
|
## Contents
|
||||||
|
|
||||||
|
- git config
|
||||||
|
- zsh config
|
||||||
|
- [oh-my-zsh](https://github.com/ohmyzsh/ohmyzsh)
|
||||||
|
- [powerlevel10k theme](https://github.com/romkatv/powerlevel10k)
|
||||||
|
- tmux config
|
||||||
|
- MacOSX config
|
||||||
|
|
||||||
|
## How to use
|
||||||
|
|
||||||
|
### git
|
||||||
|
Let’s stow git setting,
|
||||||
|
`stow --dotfiles -vSt ~ git`
|
||||||
|
That’s it! we have successfully created a symlink for `.gitconfig` ,and a symlink for `.gitignore_global`
|
||||||
|
|
||||||
|
### zsh
|
||||||
|
`stow --dotfiles -vSt ~ zsh`
|
||||||
|
|
||||||
|
### tmux
|
||||||
|
`stow --dotfiles -vSt ~ tmux`
|
||||||
|
|
||||||
|
|
||||||
|
## About me
|
||||||
|
|
||||||
|
- [Twitter](https://twitter.com/racklin)
|
||||||
|
- [github](https://github.com/racklin)
|
||||||
29
git/dot-gitconfig
Executable file
29
git/dot-gitconfig
Executable file
@@ -0,0 +1,29 @@
|
|||||||
|
[user]
|
||||||
|
name = Rack Lin
|
||||||
|
email = racklin@gmail.com
|
||||||
|
[color]
|
||||||
|
diff = auto
|
||||||
|
status = auto
|
||||||
|
branch = auto
|
||||||
|
[alias]
|
||||||
|
zip = archive --format=zip HEAD
|
||||||
|
|
||||||
|
[branch "master"]
|
||||||
|
remote = origin
|
||||||
|
merge = master
|
||||||
|
[core]
|
||||||
|
excludesfile = /Users/rack/.gitignore_global
|
||||||
|
fileMode = false
|
||||||
|
ignorecase = false
|
||||||
|
[difftool "sourcetree"]
|
||||||
|
cmd = opendiff \"$LOCAL\" \"$REMOTE\"
|
||||||
|
path =
|
||||||
|
[mergetool "sourcetree"]
|
||||||
|
cmd = /Applications/SourceTree.app/Contents/Resources/opendiff-w.sh \"$LOCAL\" \"$REMOTE\" -ancestor \"$BASE\" -merge \"$MERGED\"
|
||||||
|
trustExitCode = true
|
||||||
|
[github]
|
||||||
|
user = racklin@gmail.com
|
||||||
|
[ghq]
|
||||||
|
root = ~/.ghq
|
||||||
|
[init]
|
||||||
|
defaultBranch = master
|
||||||
50
git/dot-gitignore_global
Executable file
50
git/dot-gitignore_global
Executable file
@@ -0,0 +1,50 @@
|
|||||||
|
*.o
|
||||||
|
\#*#
|
||||||
|
*#
|
||||||
|
.#*
|
||||||
|
.*~
|
||||||
|
*~
|
||||||
|
.DS_Store
|
||||||
|
*.sw[po]
|
||||||
|
tags
|
||||||
|
TAGS
|
||||||
|
.svn
|
||||||
|
*.dSYM
|
||||||
|
*.log
|
||||||
|
*.dvi
|
||||||
|
*.aux
|
||||||
|
*.elc
|
||||||
|
.zshrc.local
|
||||||
|
.python-version
|
||||||
|
samples
|
||||||
|
.netrwhist
|
||||||
|
.bundle
|
||||||
|
/vendor/bundle
|
||||||
|
Gemfile.lock
|
||||||
|
node_modules
|
||||||
|
bower_components
|
||||||
|
|
||||||
|
# Xcode
|
||||||
|
build/
|
||||||
|
*.pbxuser
|
||||||
|
!default.pbxuser
|
||||||
|
*.mode1v3
|
||||||
|
!default.mode1v3
|
||||||
|
*.mode2v3
|
||||||
|
!default.mode2v3
|
||||||
|
*.perspectivev3
|
||||||
|
!default.perspectivev3
|
||||||
|
xcuserdata
|
||||||
|
*.xccheckout
|
||||||
|
*.moved-aside
|
||||||
|
DerivedData
|
||||||
|
*.hmap
|
||||||
|
*.ipa
|
||||||
|
*.xcuserstate
|
||||||
|
*.xcworkspace/xcshareddata
|
||||||
|
|
||||||
|
# Atom.io
|
||||||
|
.atom/packages/save-session
|
||||||
|
.atom/compile-cache
|
||||||
|
.atom/storage
|
||||||
|
|
||||||
BIN
images/screenshot-1.png
Normal file
BIN
images/screenshot-1.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.8 MiB |
86
tmux/dot-tmux.conf
Normal file
86
tmux/dot-tmux.conf
Normal file
@@ -0,0 +1,86 @@
|
|||||||
|
set -g default-terminal "xterm-256color"
|
||||||
|
#set -ga terminal-overrides ",*256col*:Tc"
|
||||||
|
set -ga terminal-overrides ",xterm-256color:Tc"
|
||||||
|
# action key
|
||||||
|
unbind C-b
|
||||||
|
set-option -g prefix C-t
|
||||||
|
set-option -g repeat-time 0
|
||||||
|
|
||||||
|
#### Key bindings
|
||||||
|
|
||||||
|
set-window-option -g mode-keys vi
|
||||||
|
|
||||||
|
#bind t send-key C-t
|
||||||
|
# Reload settings
|
||||||
|
bind r source-file ~/.tmux.conf \; display "Reloaded!"
|
||||||
|
# Open current directory
|
||||||
|
bind o run-shell "open #{pane_current_path}"
|
||||||
|
bind -r e kill-pane -a
|
||||||
|
|
||||||
|
# vim-like pane switching
|
||||||
|
bind -r k select-pane -U
|
||||||
|
bind -r j select-pane -D
|
||||||
|
bind -r h select-pane -L
|
||||||
|
bind -r l select-pane -R
|
||||||
|
|
||||||
|
# Moving window
|
||||||
|
bind-key -n C-S-Left swap-window -t -1 \; previous-window
|
||||||
|
bind-key -n C-S-Right swap-window -t +1 \; next-window
|
||||||
|
|
||||||
|
# Resizing pane
|
||||||
|
bind -r C-k resize-pane -U 5
|
||||||
|
bind -r C-j resize-pane -D 5
|
||||||
|
bind -r C-h resize-pane -L 5
|
||||||
|
bind -r C-l resize-pane -R 5
|
||||||
|
|
||||||
|
#### basic settings
|
||||||
|
|
||||||
|
set-option -g status-justify "left"
|
||||||
|
#set-option utf8-default on
|
||||||
|
#set-option -g mouse-select-pane
|
||||||
|
set-window-option -g mode-keys vi
|
||||||
|
#set-window-option -g utf8 on
|
||||||
|
# look'n feel
|
||||||
|
set-option -g status-fg cyan
|
||||||
|
set-option -g status-bg black
|
||||||
|
set -g pane-active-border-style fg=colour166,bg=default
|
||||||
|
set -g window-style fg=colour10,bg=default
|
||||||
|
set -g window-active-style fg=colour12,bg=default
|
||||||
|
set-option -g history-limit 64096
|
||||||
|
|
||||||
|
set -sg escape-time 10
|
||||||
|
|
||||||
|
#### COLOUR
|
||||||
|
|
||||||
|
# default statusbar colors
|
||||||
|
set-option -g status-style bg=colour235,fg=colour136,default
|
||||||
|
|
||||||
|
# default window title colors
|
||||||
|
set-window-option -g window-status-style fg=colour244,bg=colour234,dim
|
||||||
|
|
||||||
|
# active window title colors
|
||||||
|
set-window-option -g window-status-current-style fg=colour166,bg=default,bright
|
||||||
|
|
||||||
|
# pane border
|
||||||
|
set-option -g pane-border-style fg=colour235 #base02
|
||||||
|
set-option -g pane-active-border-style fg=colour136,bg=colour235
|
||||||
|
|
||||||
|
# message text
|
||||||
|
set-option -g message-style bg=colour235,fg=colour166
|
||||||
|
|
||||||
|
# pane number display
|
||||||
|
set-option -g display-panes-active-colour colour33 #blue
|
||||||
|
set-option -g display-panes-colour colour166 #orange
|
||||||
|
|
||||||
|
# clock
|
||||||
|
set-window-option -g clock-mode-colour colour64 #green
|
||||||
|
|
||||||
|
# allow the title bar to adapt to whatever host you connect to
|
||||||
|
set -g set-titles on
|
||||||
|
set -g set-titles-string "#T"
|
||||||
|
|
||||||
|
# import
|
||||||
|
if-shell "uname -s | grep -q Darwin" "source ~/.tmux.conf.osx"
|
||||||
|
|
||||||
|
# Powerline
|
||||||
|
source ~/.tmux.powerline.conf
|
||||||
2
tmux/dot-tmux.conf.osx
Normal file
2
tmux/dot-tmux.conf.osx
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
# sync clipboard
|
||||||
|
set-option -g default-command "which reattach-to-user-namespace > /dev/null && reattach-to-user-namespace -l $SHELL || $SHELL"
|
||||||
21
tmux/dot-tmux.powerline.conf
Normal file
21
tmux/dot-tmux.powerline.conf
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
# vim: ft=tmux
|
||||||
|
|
||||||
|
if-shell 'test -z "$POWERLINE_CONFIG_COMMAND"' 'set-environment -g POWERLINE_CONFIG_COMMAND powerline-config'
|
||||||
|
|
||||||
|
# Don't version-check for this core functionality -- anything too old to
|
||||||
|
# support these options likely won't work well with powerline
|
||||||
|
set -g status on
|
||||||
|
set -g status-interval 2
|
||||||
|
set -g status-left-length 60
|
||||||
|
set -g status-left '#[fg=colour235,bg=colour252,bold] #S #[fg=colour252,bg=colour238,nobold]#[fg=colour245,bg=colour238,bold] #(whoami) #[fg=colour238,bg=colour234,nobold]'
|
||||||
|
|
||||||
|
set -g status-right-length 150
|
||||||
|
set -g status-right '#[fg=colour59]#[fg=colour255,bg=colour59] #[fg=colour254,bold]#[fg=colour16,bg=colour254,bold] #h '
|
||||||
|
|
||||||
|
set -g window-status-separator '#[fg=colour244,bg=colour234] '
|
||||||
|
set -g window-status-format "#[fg=colour244,bg=colour234] #I #[fg=colour240] #[default,bg=colour234]#W "
|
||||||
|
set -g window-status-current-format "#[fg=colour234,bg=colour31]#[fg=colour117,bg=colour31] #I #[fg=colour231,bold]#W #[fg=colour31,bg=colour234,nobold]"
|
||||||
|
|
||||||
|
|
||||||
|
# load powerline
|
||||||
|
if-shell 'env "$POWERLINE_CONFIG_COMMAND" tmux setup' '' 'run-shell "powerline-config tmux setup"'
|
||||||
10
zsh/dot-config-osx.zsh
Normal file
10
zsh/dot-config-osx.zsh
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# Add HomeBrew PATH
|
||||||
|
export PATH=/opt/homebrew/bin:$PATH
|
||||||
|
|
||||||
|
# EXA
|
||||||
|
[ -x /opt/homebrew/bin/exa ] && alias ll="exa -l -g --icons"
|
||||||
|
|
||||||
|
# PHP
|
||||||
|
export PATH="/opt/homebrew/opt/php/bin:$PATH"
|
||||||
|
export PATH="/opt/homebrew/opt/php/sbin:$PATH"
|
||||||
|
|
||||||
17
zsh/dot-fzf.zsh
Normal file
17
zsh/dot-fzf.zsh
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
# Setup fzf
|
||||||
|
# ---------
|
||||||
|
if [[ ! "$PATH" == */opt/homebrew/opt/fzf/bin* ]]; then
|
||||||
|
export PATH="${PATH:+${PATH}:}/opt/homebrew/opt/fzf/bin"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# using fd instead of find
|
||||||
|
export FZF_DEFAULT_COMMAND='fd --type f --hidden --follow --exclude .git'
|
||||||
|
|
||||||
|
# Auto-completion
|
||||||
|
# ---------------
|
||||||
|
[[ $- == *i* ]] && source "/opt/homebrew/opt/fzf/shell/completion.zsh" 2> /dev/null
|
||||||
|
|
||||||
|
# Key bindings
|
||||||
|
# ------------
|
||||||
|
source "/opt/homebrew/opt/fzf/shell/key-bindings.zsh"
|
||||||
|
|
||||||
1741
zsh/dot-p10k.zsh
Normal file
1741
zsh/dot-p10k.zsh
Normal file
File diff suppressed because it is too large
Load Diff
125
zsh/dot-zshrc
Normal file
125
zsh/dot-zshrc
Normal file
@@ -0,0 +1,125 @@
|
|||||||
|
# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
|
||||||
|
# Initialization code that may require console input (password prompts, [y/n]
|
||||||
|
# confirmations, etc.) must go above this block; everything else may go below.
|
||||||
|
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
|
||||||
|
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If you come from bash you might have to change your $PATH.
|
||||||
|
export PATH=$HOME/bin:/usr/local/bin:$PATH
|
||||||
|
|
||||||
|
# Path to your oh-my-zsh installation.
|
||||||
|
export ZSH="$HOME/.oh-my-zsh"
|
||||||
|
|
||||||
|
# Set name of the theme to load --- if set to "random", it will
|
||||||
|
# load a random theme each time oh-my-zsh is loaded, in which case,
|
||||||
|
# to know which specific one was loaded, run: echo $RANDOM_THEME
|
||||||
|
# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
|
||||||
|
#ZSH_THEME="agnoster"
|
||||||
|
ZSH_THEME="powerlevel10k/powerlevel10k"
|
||||||
|
|
||||||
|
# Set list of themes to pick from when loading at random
|
||||||
|
# Setting this variable when ZSH_THEME=random will cause zsh to load
|
||||||
|
# a theme from this variable instead of looking in $ZSH/themes/
|
||||||
|
# If set to an empty array, this variable will have no effect.
|
||||||
|
# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" )
|
||||||
|
|
||||||
|
# Uncomment the following line to use case-sensitive completion.
|
||||||
|
# CASE_SENSITIVE="true"
|
||||||
|
|
||||||
|
# Uncomment the following line to use hyphen-insensitive completion.
|
||||||
|
# Case-sensitive completion must be off. _ and - will be interchangeable.
|
||||||
|
# HYPHEN_INSENSITIVE="true"
|
||||||
|
|
||||||
|
# Uncomment the following line to disable bi-weekly auto-update checks.
|
||||||
|
# DISABLE_AUTO_UPDATE="true"
|
||||||
|
|
||||||
|
# Uncomment the following line to automatically update without prompting.
|
||||||
|
# DISABLE_UPDATE_PROMPT="true"
|
||||||
|
|
||||||
|
# Uncomment the following line to change how often to auto-update (in days).
|
||||||
|
# export UPDATE_ZSH_DAYS=13
|
||||||
|
|
||||||
|
# Uncomment the following line if pasting URLs and other text is messed up.
|
||||||
|
# DISABLE_MAGIC_FUNCTIONS="true"
|
||||||
|
|
||||||
|
# Uncomment the following line to disable colors in ls.
|
||||||
|
# DISABLE_LS_COLORS="true"
|
||||||
|
|
||||||
|
# Uncomment the following line to disable auto-setting terminal title.
|
||||||
|
# DISABLE_AUTO_TITLE="true"
|
||||||
|
|
||||||
|
# Uncomment the following line to enable command auto-correction.
|
||||||
|
# ENABLE_CORRECTION="true"
|
||||||
|
|
||||||
|
# Uncomment the following line to display red dots whilst waiting for completion.
|
||||||
|
# Caution: this setting can cause issues with multiline prompts (zsh 5.7.1 and newer seem to work)
|
||||||
|
# See https://github.com/ohmyzsh/ohmyzsh/issues/5765
|
||||||
|
# COMPLETION_WAITING_DOTS="true"
|
||||||
|
|
||||||
|
# Uncomment the following line if you want to disable marking untracked files
|
||||||
|
# under VCS as dirty. This makes repository status check for large repositories
|
||||||
|
# much, much faster.
|
||||||
|
# DISABLE_UNTRACKED_FILES_DIRTY="true"
|
||||||
|
|
||||||
|
# Uncomment the following line if you want to change the command execution time
|
||||||
|
# stamp shown in the history command output.
|
||||||
|
# You can set one of the optional three formats:
|
||||||
|
# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
|
||||||
|
# or set a custom format using the strftime function format specifications,
|
||||||
|
# see 'man strftime' for details.
|
||||||
|
# HIST_STAMPS="mm/dd/yyyy"
|
||||||
|
|
||||||
|
# Would you like to use another custom folder than $ZSH/custom?
|
||||||
|
# ZSH_CUSTOM=/path/to/new-custom-folder
|
||||||
|
|
||||||
|
# Which plugins would you like to load?
|
||||||
|
# Standard plugins can be found in $ZSH/plugins/
|
||||||
|
# Custom plugins may be added to $ZSH_CUSTOM/plugins/
|
||||||
|
# Example format: plugins=(rails git textmate ruby lighthouse)
|
||||||
|
# Add wisely, as too many plugins slow down shell startup.
|
||||||
|
plugins=(git)
|
||||||
|
|
||||||
|
source $ZSH/oh-my-zsh.sh
|
||||||
|
|
||||||
|
# User configuration
|
||||||
|
|
||||||
|
# export MANPATH="/usr/local/man:$MANPATH"
|
||||||
|
|
||||||
|
# You may need to manually set your language environment
|
||||||
|
# export LANG=en_US.UTF-8
|
||||||
|
|
||||||
|
# Preferred editor for local and remote sessions
|
||||||
|
# if [[ -n $SSH_CONNECTION ]]; then
|
||||||
|
# export EDITOR='vim'
|
||||||
|
# else
|
||||||
|
# export EDITOR='mvim'
|
||||||
|
# fi
|
||||||
|
|
||||||
|
# Compilation flags
|
||||||
|
# export ARCHFLAGS="-arch x86_64"
|
||||||
|
|
||||||
|
# Set personal aliases, overriding those provided by oh-my-zsh libs,
|
||||||
|
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
|
||||||
|
# users are encouraged to define aliases within the ZSH_CUSTOM folder.
|
||||||
|
# For a full list of active aliases, run `alias`.
|
||||||
|
#
|
||||||
|
# Example aliases
|
||||||
|
# alias zshconfig="mate ~/.zshrc"
|
||||||
|
# alias ohmyzsh="mate ~/.oh-my-zsh"
|
||||||
|
|
||||||
|
# FZF
|
||||||
|
[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
|
||||||
|
|
||||||
|
# GHQ and FZF
|
||||||
|
alias ghqcd="cd \$(ghq list --full-path | fzf)"
|
||||||
|
|
||||||
|
# OS SPECIFIC SETTINGS
|
||||||
|
case "$(uname)" in
|
||||||
|
Darwin)
|
||||||
|
[ -f ~/.config-osx.zsh ] && source ~/.config-osx.zsh
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
|
||||||
|
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
|
||||||
Reference in New Issue
Block a user