diff --git a/.aliases b/.aliases
index 3387fa0609e..7bce4b04199 100644
--- a/.aliases
+++ b/.aliases
@@ -1,4 +1,61 @@
#!/usr/bin/env bash
+### Aliases
+
+alias listaliases="alias | sed 's/=.*//'"
+alias listfunctions="declare -f | grep '^[a-z].* ()' | sed 's/{$//'" # show non _prefixed functions
+
+# Dotfiles
+alias dotfiles="atom ~/.dotfiles"
+alias setup="cd ~/.dotfiles/setup"
+alias init="setup; source init.sh"
+alias bootstrap="set -- -f; source ~/.dotfiles/setup/bootstrap.sh"
+alias macos="source ~/.dotfiles/setup/macos"
+
+# CLI shortcuts
+alias g="git"
+alias y='yarn '
+
+## Git
+alias gc="git clone "
+alias ungit="find . -name '.git' -exec rm -rf {} \;" # Remove git from a project
+
+# Yarn
+alias yi='yarn install '
+alias ya='yarn add '
+alias yp='yarn pods'
+alias ys='yarn start'
+alias yt='yarn test'
+alias yr='y; yp; ys'
+alias yrm='ycc; rm -rf node_modules; yi'
+alias ycc='yarn cache clean'
+alias yag='yarn global add'
+
+alias ni='npm install'
+alias nid='npm install --save-dev'
+alias nig='npm install --global'
+alias nt='npm test'
+alias nit='npm install && npm test'
+alias nr='npm run'
+alias ns='npm start'
+alias nrm='rm -rf node_modules && npm install'
+
+alias p="pip"
+alias pi="pip install "
+alias pir="pip install -r requirements.txt"
+
+
+## Networking
+alias ip="curl icanhazip.com"
+#alias ip="dig +short myip.opendns.com @resolver1.opendns.com"
+alias myip="curl http://ipecho.net/plain; echo"
+alias locip="ipconfig getifaddr en0"
+alias ips="ifconfig -a | grep -o 'inet6\? \(addr:\)\?\s\?\(\(\([0-9]\+\.\)\{3\}[0-9]\+\)\|[a-fA-F0-9:]\+\)' | awk '{ sub(/inet6? (addr:)? ?/, \"\"); print }'"
+alias cap="curl -s 'http://captive.apple.com'"
+
+# HTTPie aliases
+alias GET='http'
+alias POST='http POST'
+alias HEAD='http HEAD'
# Easier navigation: .., ..., ...., ....., ~ and -
alias ..="cd .."
@@ -8,12 +65,8 @@ alias .....="cd ../../../.."
alias ~="cd ~" # `cd` is probably faster to type though
alias -- -="cd -"
-# Shortcuts
-alias d="cd ~/Documents/Dropbox"
-alias dl="cd ~/Downloads"
-alias dt="cd ~/Desktop"
-alias p="cd ~/projects"
-alias g="git"
+# copy the working directory path
+alias cpwd='pwd|tr -d "\n"|pbcopy'
# Detect which `ls` flavor is in use
if ls --color > /dev/null 2>&1; then # GNU `ls`
@@ -42,26 +95,27 @@ alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
-# Enable aliases to be sudo’ed
-alias sudo='sudo '
-
-# Get week number
-alias week='date +%V'
-
-# Get macOS Software Updates, and update installed Ruby gems, Homebrew, npm, and their installed packages
-alias update='sudo softwareupdate -i -a; brew update; brew upgrade; brew cleanup; npm install npm -g; npm update -g; sudo gem update --system; sudo gem update; sudo gem cleanup'
+## System commands
-# Google Chrome
-alias chrome='/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome'
-alias canary='/Applications/Google\ Chrome\ Canary.app/Contents/MacOS/Google\ Chrome\ Canary'
+alias logoff="/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend"
+alias reboot='sudo shutdown -r now'
+alias shutdown='sudo shutdown -h now'
+alias dark='darkmode'
+alias light='darkmode'
-# IP addresses
-alias ip="dig +short myip.opendns.com @resolver1.opendns.com"
-alias localip="ipconfig getifaddr en0"
-alias ips="ifconfig -a | grep -o 'inet6\? \(addr:\)\?\s\?\(\(\([0-9]\+\.\)\{3\}[0-9]\+\)\|[a-fA-F0-9:]\+\)' | awk '{ sub(/inet6? (addr:)? ?/, \"\"); print }'"
+# info
+alias displays="system_profiler SPDisplaysDataType"
+alias cpuinfo="sysctl -n machdep.cpu.brand_string"
+alias cpu='top -o cpu' # CPU
+alias mem='top -o rsize' # Memory
+# Disk
+alias df='df -h'
+alias du='du -h'
+alias disk="df -Tha --total"
-# Show active network interfaces
-alias ifactive="ifconfig | pcregrep -M -o '^[^\t:]+:([^\n]|\n\t)*status: active'"
+# Get week number
+alias week='date +%V'
+alias kw='week'
# Flush Directory Service cache
alias flush="dscacheutil -flushcache && killall -HUP mDNSResponder"
@@ -84,41 +138,14 @@ jscbin="/System/Library/Frameworks/JavaScriptCore.framework/Versions/A/Resources
unset jscbin;
# Trim new lines and copy to clipboard
-alias c="tr -d '\n' | pbcopy"
+#alias c="tr -d '\n' | pbcopy"
# Recursively delete `.DS_Store` files
alias cleanup="find . -type f -name '*.DS_Store' -ls -delete"
-# Empty the Trash on all mounted volumes and the main HDD.
-# Also, clear Apple’s System Logs to improve shell startup speed.
-# Finally, clear download history from quarantine. https://mths.be/bum
-alias emptytrash="sudo rm -rfv /Volumes/*/.Trashes; sudo rm -rfv ~/.Trash; sudo rm -rfv /private/var/log/asl/*.asl; sqlite3 ~/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV* 'delete from LSQuarantineEvent'"
-
-# Show/hide hidden files in Finder
-alias show="defaults write com.apple.finder AppleShowAllFiles -bool true && killall Finder"
-alias hide="defaults write com.apple.finder AppleShowAllFiles -bool false && killall Finder"
-
-# Hide/show all desktop icons (useful when presenting)
-alias hidedesktop="defaults write com.apple.finder CreateDesktop -bool false && killall Finder"
-alias showdesktop="defaults write com.apple.finder CreateDesktop -bool true && killall Finder"
-
# URL-encode strings
alias urlencode='python -c "import sys, urllib as ul; print ul.quote_plus(sys.argv[1]);"'
-# Merge PDF files, preserving hyperlinks
-# Usage: `mergepdf input{1,2,3}.pdf`
-alias mergepdf='gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=_merged.pdf'
-
-# Disable Spotlight
-alias spotoff="sudo mdutil -a -i off"
-# Enable Spotlight
-alias spoton="sudo mdutil -a -i on"
-
-# PlistBuddy alias, because sometimes `defaults` just doesn’t cut it
-alias plistbuddy="/usr/libexec/PlistBuddy"
-
-# Airport CLI alias
-alias airport='/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport'
# Intuitive map function
# For example, to list all directories that contain a certain file:
@@ -130,9 +157,8 @@ for method in GET HEAD POST PUT DELETE TRACE OPTIONS; do
alias "${method}"="lwp-request -m '${method}'"
done
-# Stuff I never really use but cannot delete either because of http://xkcd.com/530/
-alias stfu="osascript -e 'set volume output muted true'"
-alias pumpitup="osascript -e 'set volume output volume 100'"
+# Make Grunt print stack traces by default
+command -v grunt > /dev/null && alias grunt="grunt --stack"
# Kill all the tabs in Chrome to free up memory
# [C] explained: http://www.commandlinefu.com/commands/view/402/exclude-grep-from-your-grepped-output-of-ps-alias-included-in-description
@@ -142,7 +168,31 @@ alias chromekill="ps ux | grep '[C]hrome Helper --type=renderer' | grep -v exten
alias afk="/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend"
# Reload the shell (i.e. invoke as a login shell)
-alias reload="exec ${SHELL} -l"
+alias reload='exec ${SHELL} -l'
# Print each PATH entry on a separate line
-alias path='echo -e ${PATH//:/\\n}'
+alias paths='echo -e ${PATH//:/\\n}'
+
+# Convenience
+alias please="sudo"
+alias rl="reload"
+alias ud="update"
+alias sd="bootstrap"
+alias f="finder"
+alias c="clear"
+alias x="exit"
+alias e="x"
+alias quit="exit"
+
+## Typo
+alias sl="ls"
+alias bsh="bash"
+
+## lol
+
+alias shrug="printf '¯\_(ツ)_/¯' | pbcopy"
+alias flipt="printf '(╯°□°)╯︵ ┻━┻' | pbcopy"
+alias fight="printf '(ง'̀-'́)ง' | pbcopy"
+
+# alias wtf='hint'
+alias rtfm='man'
diff --git a/.bash_profile b/.bash_profile
index f79b6145e40..5b7a6e6ad3e 100644
--- a/.bash_profile
+++ b/.bash_profile
@@ -18,6 +18,9 @@ shopt -s histappend;
# Autocorrect typos in path names when using `cd`
shopt -s cdspell;
+# Enable storing directories in variables and cd'ing to them without '$' (check mark())
+shopt -s cdable_vars
+
# Enable some Bash 4 features when possible:
# * `autocd`, e.g. `**/qux` will enter `./foo/bar/baz/qux`
# * Recursive globbing, e.g. `echo **/*.txt`
diff --git a/.bash_prompt b/.bash_prompt
index 74db549f994..0bf943d2a3f 100644
--- a/.bash_prompt
+++ b/.bash_prompt
@@ -16,45 +16,55 @@ prompt_git() {
local branchName='';
# Check if the current directory is in a Git repository.
- git rev-parse --is-inside-work-tree &>/dev/null || return;
+ if [ $(git rev-parse --is-inside-work-tree &>/dev/null; echo "${?}") == '0' ]; then
+
+
+ # check if the current directory is in .git before running git checks
+ if [ "$(git rev-parse --is-inside-git-dir 2> /dev/null)" == 'false' ]; then
+
+ # Ensure the index is up to date.
+ git update-index --really-refresh -q &>/dev/null;
- # Check for what branch we’re on.
# Get the short symbolic ref. If HEAD isn’t a symbolic ref, get a
# tracking remote branch or tag. Otherwise, get the
# short SHA for the latest commit, or give up.
- branchName="$(git symbolic-ref --quiet --short HEAD 2> /dev/null || \
+ branchName="$(git symbolic-ref --quiet --short HEAD 2> /dev/null || \
git describe --all --exact-match HEAD 2> /dev/null || \
- git rev-parse --short HEAD 2> /dev/null || \
- echo '(unknown)')";
-
- # Early exit for Chromium & Blink repo, as the dirty check takes too long.
- # Thanks, @paulirish!
- # https://github.com/paulirish/dotfiles/blob/dd33151f/.bash_prompt#L110-L123
- repoUrl="$(git config --get remote.origin.url)";
- if grep -q 'chromium/src.git' <<< "${repoUrl}"; then
- s+='*';
- else
- # Check for uncommitted changes in the index.
- if ! $(git diff --quiet --ignore-submodules --cached); then
- s+='+';
- fi;
- # Check for unstaged changes.
- if ! $(git diff-files --quiet --ignore-submodules --); then
- s+='!';
- fi;
- # Check for untracked files.
- if [ -n "$(git ls-files --others --exclude-standard)" ]; then
- s+='?';
- fi;
- # Check for stashed files.
- if $(git rev-parse --verify refs/stash &>/dev/null); then
- s+='$';
- fi;
- fi;
+ git rev-parse --short HEAD 2> /dev/null || \
+ echo '(unknown)')";
+
+ # Early exit for Chromium & Blink repo, as the dirty check takes too long.
+ # Thanks, @paulirish!
+ # https://github.com/paulirish/dotfiles/blob/dd33151f/.bash_prompt#L110-L123
+ repoUrl="$(git config --get remote.origin.url)";
+ if grep -q 'chromium/src.git' <<< "${repoUrl}"; then
+ s+='*';
+ else
+ # Check for uncommitted changes in the index.
+ if ! $(git diff --quiet --ignore-submodules --cached); then
+ s+='+';
+ fi;
+ # Check for unstaged changes.
+ if ! $(git diff-files --quiet --ignore-submodules --); then
+ s+='!';
+ fi;
+ # Check for untracked files.
+ if [ -n "$(git ls-files --others --exclude-standard)" ]; then
+ s+='?';
+ fi;
+ # Check for stashed files.
+ if $(git rev-parse --verify refs/stash &>/dev/null); then
+ s+='$';
+ fi;
+ fi;
- [ -n "${s}" ] && s=" [${s}]";
+ [ -n "${s}" ] && s=" [${s}]";
- echo -e "${1}${branchName}${2}${s}";
+ echo -e "${1}${branchName}${2}${s}";
+ fi;
+ else
+ return;
+ fi;
}
if tput setaf 1 &> /dev/null; then
diff --git a/.gitconfig b/.gitconfig
index aaf912d7513..327cf644be8 100644
--- a/.gitconfig
+++ b/.gitconfig
@@ -19,7 +19,7 @@
c = clone --recursive
# Commit all changes.
- ca = !git add ':(exclude,attr:builtin_objectmode=160000)' && git commit -av
+ ca = !git add -Av && git commit -av
# Switch to a branch, creating it if necessary.
go = "!f() { git checkout -b \"$1\" 2> /dev/null || git checkout \"$1\"; }; f"
@@ -65,6 +65,17 @@
# Show the user email for the current repository.
whoami = config user.email
+ # Merge GitHub pull request on top of the current branch or,
+ # if a branch name is specified, on top of the specified branch
+ # rbmr = "!f() { \
+ # declare currentBranch=\"$(git symbolic-ref --short HEAD)\"; \
+ # declare branch=\"${2:-$currentBranch}\"; \
+ # if [ $(printf \"%s\" \"$1\" | grep '^[0-9]\\+$' > /dev/null; printf $?) -eq 0 ]; then \
+ # git fetch origin refs/pull/$1/head:pr/$1 && \
+ # git checkout -B $branch && \
+ # git rebase -i $branch pr/$1
+ # fi \
+ # }; f"
[apply]
@@ -156,6 +167,9 @@
# Make `git push` push relevant annotated tags when pushing branches out.
followTags = true
+[github]
+ user = "ahemed-haneen"
+
# URL shorthands
[url "git@github.com:"]
@@ -180,4 +194,4 @@
[init]
- defaultBranch = main
+ defaultBranch = main
\ No newline at end of file
diff --git a/.zsh_profile b/.zsh_profile
new file mode 100644
index 00000000000..3bf3f88aa3f
--- /dev/null
+++ b/.zsh_profile
@@ -0,0 +1,4 @@
+# Add `~/bin` to the `$PATH`
+export PATH="$HOME/bin:$PATH";
+
+setopt cdablevars;
diff --git a/.zshrc b/.zshrc
new file mode 100644
index 00000000000..834b54f056f
--- /dev/null
+++ b/.zshrc
@@ -0,0 +1,162 @@
+# 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
+
+#!/bin/sh
+# If you come from bash you might have to change your $PATH.
+export PATH=$HOME/bin:/usr/local/bin:$PATH
+export DOTFILES=$HOME/dotfiles
+# 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/robbyrussell/oh-my-zsh/wiki/Themes
+ZSH_THEME="random"
+ZSH_THEME_RANDOM_QUIET=true
+ZSH_DISABLE_COMPFIX="true"
+
+# 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 ~/.oh-my-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.
+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 ~/.oh-my-zsh/plugins/*
+# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
+# Example format: plugins=(rails git textmate ruby lighthouse)
+# Add wisely, as too many plugins slow down shell startup.
+plugins=(brew git pip pod python react-native sudo thefuck)
+
+# Brew Completion
+if type brew &>/dev/null; then
+ FPATH=$(brew --prefix)/share/zsh/site-functions:$FPATH
+fi
+
+
+source $ZSH/oh-my-zsh.sh
+
+source ~/.shell/zsh/.zsh_profile
+source ~/.shell/paths
+source ~/.shell/profile
+source ~/.shell/exports
+source ~/.shell/aliases
+source ~/.shell/functions
+source ~/.extra
+
+# 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`.
+
+alias zshconfig="code ~/.zshrc"
+alias ohmyzsh="code ~/.oh-my-zsh"
+alias theme="echo $RANDOM_THEME"
+alias reload!='. ~/.zshrc'
+
+# source z
+. /usr/local/etc/profile.d/z.sh
+
+# completions
+if type brew &>/dev/null; then
+ FPATH=$(brew --prefix)/share/zsh-completions:$FPATH
+
+ autoload -Uz compinit
+ compinit
+fi
+source /usr/local/share/zsh-autosuggestions/zsh-autosuggestions.zsh
+source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh # Activate plugins
+if [ -f $GOPATH/src/github.com/zquestz/s/autocomplete/s-completion.bash ]; then
+ . $GOPATH/src/github.com/zquestz/s/autocomplete/s-completion.bash
+fi
+# pyenv
+eval "$(pyenv init -)"
+
+
+# tabtab source for yarn package
+# uninstall by removing these lines or running `tabtab uninstall yarn`
+[[ -f /usr/local/lib/node_modules/yarn-completions/node_modules/tabtab/.completions/yarn.zsh ]] && . /usr/local/lib/node_modules/yarn-completions/node_modules/tabtab/.completions/yarn.zsh
+
+eval $(thefuck --alias)
+
+export PATH="/usr/local/opt/openldap/bin:$PATH"
+export PATH="/usr/local/opt/openldap/sbin:$PATH"
+
+export RUBY_CONFIGURE_OPTS="--with-openssl-dir=$(brew --prefix openssl@1.1)"
+
+export NVM_DIR="$HOME/.nvm"
+[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
+[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
+
+
+# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
+[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
\ No newline at end of file
diff --git a/README.md b/README.md
index 6183d97d799..457eec2e1ad 100644
--- a/README.md
+++ b/README.md
@@ -1,17 +1,38 @@
-# Mathias’s dotfiles
+# Ahemed’s dotfiles [](https://travis-ci.com/ahemed-haneen/dotfiles) 
-
+> These are my dotfiles. There are many like them, but these are mine.
+
+Since [dotfiles](https://dotfiles.github.io) are very personal, I would not recommend just installing mine. Take a look and get inspiration, but there are better places to start off from. (such as the repo this one is forked from)
+
+
+
+
+**Table of Contents** _generated with [DocToc](https://github.com/thlorenz/doctoc)_
+
+- [Installation](#installation)
+ - [Using Git and the bootstrap script](#using-git-and-the-bootstrap-script)
+ - [Git-free install](#git-free-install)
+ - [Specify the `$PATH`](#specify-the-path)
+ - [Add custom commands without creating a new fork](#add-custom-commands-without-creating-a-new-fork)
+ - [Sensible macOS defaults](#sensible-macos-defaults)
+ - [Install Homebrew formulae](#install-homebrew-formulae)
+- [Inspiration:](#inspiration)
+- [Feedback](#feedback)
+- [Original Author](#original-author)
+- [Thanks to…](#thanks-to)
+
+
## Installation
-**Warning:** If you want to give these dotfiles a try, you should first fork this repository, review the code, and remove things you don’t want or need. Don’t blindly use my settings unless you know what that entails. Use at your own risk!
+**Warning:** If you want to give these dotfiles a try, you should first fork this repository :heavy_check_mark: , review the code, and remove things you don’t want or need. Don’t blindly use my settings unless you know what that entails. Use at your own risk!
### Using Git and the bootstrap script
You can clone the repository wherever you want. (I like to keep it in `~/Projects/dotfiles`, with `~/dotfiles` as a symlink.) The bootstrapper script will pull in the latest version and copy the files to your home folder.
```bash
-git clone https://github.com/mathiasbynens/dotfiles.git && cd dotfiles && source bootstrap.sh
+git clone https://github.com/ahemed-haneen/dotfiles.git && cd dotfiles && source bootstrap.sh
```
To update, `cd` into your local `dotfiles` repository and then:
@@ -26,15 +47,11 @@ Alternatively, to update while avoiding the confirmation prompt:
set -- -f; source bootstrap.sh
```
-### Git-free install
-
-To install these dotfiles without Git:
+### Oh My Zsh
-```bash
-cd; curl -#L https://github.com/mathiasbynens/dotfiles/tarball/main | tar -xzv --strip-components 1 --exclude={README.md,bootstrap.sh,.osx,LICENSE-MIT.txt}
```
-
-To update later on, just run that command again.
+sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
+```
### Specify the `$PATH`
@@ -55,15 +72,15 @@ My `~/.extra` looks something like this:
```bash
# Git credentials
# Not in the repository, to prevent people from accidentally committing under my name
-GIT_AUTHOR_NAME="Mathias Bynens"
+GIT_AUTHOR_NAME="Haneen Ahemed"
GIT_COMMITTER_NAME="$GIT_AUTHOR_NAME"
git config --global user.name "$GIT_AUTHOR_NAME"
-GIT_AUTHOR_EMAIL="mathias@mailinator.com"
+GIT_AUTHOR_EMAIL="haneenahemed.a@gmail.com"
GIT_COMMITTER_EMAIL="$GIT_AUTHOR_EMAIL"
git config --global user.email "$GIT_AUTHOR_EMAIL"
```
-You could also use `~/.extra` to override settings, functions and aliases from my dotfiles repository. It’s probably better to [fork this repository](https://github.com/mathiasbynens/dotfiles/fork) instead, though.
+You could also use `~/.extra` to override settings, functions and aliases from my dotfiles repository. It’s probably better to [fork the repository](https://github.com/ahemed-haneen/dotfiles/fork) instead, though.
### Sensible macOS defaults
@@ -73,6 +90,8 @@ When setting up a new Mac, you may want to set some sensible macOS defaults:
./.macos
```
+Definitely go through and check each setting before running, this can change some major things!
+
### Install Homebrew formulae
When setting up a new Mac, you may want to install some common [Homebrew](https://brew.sh/) formulae (after installing Homebrew, of course):
@@ -81,14 +100,23 @@ When setting up a new Mac, you may want to install some common [Homebrew](https:
./brew.sh
```
+(aliases)
+
Some of the functionality of these dotfiles depends on formulae installed by `brew.sh`. If you don’t plan to run `brew.sh`, you should look carefully through the script and manually install any particularly important ones. A good example is Bash/Git completion: the dotfiles use a special version from Homebrew.
+## Inspiration:
+
+Where I ~~stole ideas~~ got inspiration from.
+
+- [Matthias](https://mathiasbynens.be/), obviously
+- https://github.com/mathiasbynens/dotfiles
+
## Feedback
Suggestions/improvements
-[welcome](https://github.com/mathiasbynens/dotfiles/issues)!
+[welcome](https://github.com/ahemed-haneen/dotfiles/issues)!
-## Author
+## Original Author
| [](http://twitter.com/mathias "Follow @mathias on Twitter") |
|---|
diff --git a/bootstrap.sh b/bootstrap.sh
index 5894c6c22f2..6451e813b5f 100755
--- a/bootstrap.sh
+++ b/bootstrap.sh
@@ -6,13 +6,25 @@ git pull origin main;
function doIt() {
rsync --exclude ".git/" \
+ --exclude "setup/" \
+ --exclude "docs/" \
--exclude ".DS_Store" \
--exclude ".osx" \
--exclude "bootstrap.sh" \
--exclude "README.md" \
--exclude "LICENSE-MIT.txt" \
+ --exclude ".DS_Store" \
+ --exclude ".github/" \
+ --exclude ".travis.yml" \
-avh --no-perms . ~;
- source ~/.bash_profile;
+ if [ -n "$ZSH_VERSION" ]; then
+ source ~/.zshrc;
+ elif [ -n "$BASH_VERSION" ]; then
+ source ~/.bash_profile;
+ else
+ echo 'unknown shell'
+ fi
+
}
if [ "$1" == "--force" -o "$1" == "-f" ]; then
diff --git a/docs/TODO.md b/docs/TODO.md
new file mode 100644
index 00000000000..376ef533094
--- /dev/null
+++ b/docs/TODO.md
@@ -0,0 +1,82 @@
+# On fresh install...
+
+- Install Command Line Tools: `xcode-select --install`
+
+- clone this project and run the bootstrap script
+
+```bash
+git clone https://github.com/haneen-ahemed/dotfiles.git && cd dotfiles && source bootstrap.sh
+```
+
+- Install [Homebrew](https://brew.sh) and run [brew.sh](https://github.com/haneen-ahemed/dotfiles/blob/master/.brew/brew.sh)
+
+```bash
+/usr/bin/ruby -e "$(curl -fsSL https:/raw.githubusercontent.com/Homebrew/install/master/install)"
+&& cd dotfiles && source brew.sh
+```
+
+
+ - [create access token](https://github.com/settings/tokens/new)
+ - Gist ID is `92968648b5ea54edbee216e87e52c15e`
+
+- run `mackup` if you have used it to back up settings
+
+- [set up ad-blocking](https://jspenguin2017.github.io/uBlockProtector/#extra-installation-steps-for-ublock-origin)
+
+- [Add SSH keys to GitHub](https://github.com/settings/ssh) and [other](https://docs.gitlab.com/ee/gitlab-basics/create-your-ssh-keys.html) version control systems (also [GPG](https://gpgtools.org/))
+
+* init [`spicetify`](https://github.com/khanhas/spicetify-cli/wiki/Basic-Usage)
+
+# init
+
+The init script will:
+
+- Install NVM
+
+ ```bash
+ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
+ ```
+
+- Install [Oh My Zsh](https://ohmyz.sh/)
+
+ ```bash
+ sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
+ ```
+
+ - custom plugins
+ - [zsh-nvm](https://github.com/lukechilds/zsh-nvm#as-an-oh-my-zsh-custom-plugin)
+
+- Install Mac-CLI
+
+ ```bash
+ sh -c "$(curl -fsSL https://raw.githubusercontent.com/guarinogabriel/mac-cli/master/mac-cli/tools/install)"
+ ```
+
+# Adding Apps, Aliases or Functions
+
+To maintain the list of your installed apps, add them to their corresponding place in [`brew.sh`](https://github.com/haneen-ahemed/dotfiles/blob/master/.brew/brew.sh). Aliases and functions can be added to their respective files.
+After changing any of these files, remember to run [`bootstrap.sh`](https://github.com/haneen-ahemed/dotfiles/blob/master/.setup/bootstrap.sh), which can be done most quickly with the alias [`sd`](https://github.com/haneen-ahemed/dotfiles/blob/43094a112e0fd11fbda5eff82b408f3071e2c976/.aliases#L17) (source dotfiles).
+
+# Updating
+
+The [`.aliases`](https://github.com/haneen-ahemed/dotfiles/blob/master/.aliases) include an `update` alias that will run all kinds of updaters. (even shorter: `ud`)
+Alternative: [`mac update`](https://github.com/guarinogabriel/Mac-CLI#general-commands)
+
+# Troubleshooting
+
+- brew permissions broken
+
+```
+sudo chown -R $(whoami) $(brew --prefix)/*
+```
+
+- [SourceTree GPG signing](https://community.atlassian.com/t5/Sourcetree-questions/Why-is-quot-Enable-GPG-key-signing-for-commit-quot-is-greyed-out/qaq-p/249852)
+
+```
+// get current gpg version path
+ls -la /usr/local/bin/gpg
+// symlink gpg2
+ln -s ../Cellar/gnupg/{version}/bin/gpg /usr/local/bin/gpg2
+```
+
+[<- Back](index.md)
diff --git a/docs/_config.yml b/docs/_config.yml
new file mode 100644
index 00000000000..8bbf79438ee
--- /dev/null
+++ b/docs/_config.yml
@@ -0,0 +1 @@
+theme: jekyll-theme-hacker
diff --git a/docs/index.md b/docs/index.md
new file mode 100644
index 00000000000..4d8567e6be9
--- /dev/null
+++ b/docs/index.md
@@ -0,0 +1,12 @@
+# Dennis's dotfiles
+
+This is the GitHub-hosted website for my dotfiles.
+
+Check out the [wiki](https://github.com/dnnsmnstrr/dotfiles/wiki) or [HydroTouch](https://github.com/dnnsmnstrr/dotfiles/tree/master/bettertouchtool/HydroTouch)
+
+If for some reason you want to install my stuff, follow the [TODO](TODO.md)
+
+
+xkcd ([#1806](https://xkcd.com/1806/))
+
+[<- Back to Homepage](https://ahemed-haneen.github.io)
diff --git a/docs/transparent_xkcd.png b/docs/transparent_xkcd.png
new file mode 100644
index 00000000000..5b725fc3450
Binary files /dev/null and b/docs/transparent_xkcd.png differ
diff --git a/setup/Preferences.sublime-settings b/setup/Preferences.sublime-settings
new file mode 100644
index 00000000000..1d190f97d93
--- /dev/null
+++ b/setup/Preferences.sublime-settings
@@ -0,0 +1,41 @@
+{
+ "color_scheme": "Packages/Color Scheme - Default/Solarized (Dark).tmTheme",
+ "default_encoding": "UTF-8",
+ "default_line_ending": "unix",
+ "detect_indentation": false,
+ "draw_white_space": "all",
+ "ensure_newline_at_eof_on_save": false,
+ "file_exclude_patterns":
+ [
+ ".DS_Store",
+ "Desktop.ini",
+ "*.pyc",
+ "._*",
+ "Thumbs.db",
+ ".Spotlight-V100",
+ ".Trashes"
+ ],
+ "folder_exclude_patterns":
+ [
+ ".git",
+ "node_modules"
+ ],
+ "font_face": "Monaco",
+ "font_size": 13,
+ "highlight_modified_tabs": true,
+ "hot_exit": false,
+ "line_padding_bottom": 5,
+ "match_brackets": true,
+ "match_brackets_angle": true,
+ "remember_open_files": false,
+ "rulers":
+ [
+ 80
+ ],
+ "show_encoding": true,
+ "show_line_endings": true,
+ "tab_size": 2,
+ "translate_tabs_to_spaces": false,
+ "trim_trailing_white_space_on_save": true,
+ "word_wrap": true
+}
diff --git a/setup/Solarized Dark xterm-256color.terminal b/setup/Solarized Dark xterm-256color.terminal
new file mode 100644
index 00000000000..46f179d6cd4
--- /dev/null
+++ b/setup/Solarized Dark xterm-256color.terminal
@@ -0,0 +1,160 @@
+
+
+
+
+ BackgroundColor
+
+ YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS
+ AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPECgw
+ LjAxNTkyNDQwNTMxIDAuMTI2NTIwOTE2OCAwLjE1OTY5NjAxMjcAEAGAAtIQERITWiRj
+ bGFzc25hbWVYJGNsYXNzZXNXTlNDb2xvcqISFFhOU09iamVjdF8QD05TS2V5ZWRBcmNo
+ aXZlctEXGFRyb290gAEIERojLTI3O0FITltijY+RlqGqsrW+0NPYAAAAAAAAAQEAAAAA
+ AAAAGQAAAAAAAAAAAAAAAAAAANo=
+
+ BlinkText
+
+ CursorColor
+
+ YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS
+ AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPECcw
+ LjQ0MDU4MDI0ODggMC41MDk2MjkzMDkyIDAuNTE2ODU3OTgxNwAQAYAC0hAREhNaJGNs
+ YXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXllZEFyY2hp
+ dmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KMjpCVoKmxtL3P0tcAAAAAAAABAQAAAAAA
+ AAAZAAAAAAAAAAAAAAAAAAAA2Q==
+
+ Font
+
+ YnBsaXN0MDDUAQIDBAUGGBlYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS
+ AAGGoKQHCBESVSRudWxs1AkKCwwNDg8QVk5TU2l6ZVhOU2ZGbGFnc1ZOU05hbWVWJGNs
+ YXNzI0AqAAAAAAAAEBCAAoADXU1lbmxvLVJlZ3VsYXLSExQVFlokY2xhc3NuYW1lWCRj
+ bGFzc2VzVk5TRm9udKIVF1hOU09iamVjdF8QD05TS2V5ZWRBcmNoaXZlctEaG1Ryb290
+ gAEIERojLTI3PEJLUltiaXJ0dniGi5afpqmyxMfMAAAAAAAAAQEAAAAAAAAAHAAAAAAA
+ AAAAAAAAAAAAAM4=
+
+ FontAntialias
+
+ FontHeightSpacing
+ 1.1000000000000001
+ FontWidthSpacing
+ 1
+ ProfileCurrentVersion
+ 2.02
+ SelectionColor
+
+ YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS
+ AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPECgw
+ LjAzOTM4MDczNjY1IDAuMTYwMTE2NDYzOSAwLjE5ODMzMjc1NjgAEAGAAtIQERITWiRj
+ bGFzc25hbWVYJGNsYXNzZXNXTlNDb2xvcqISFFhOU09iamVjdF8QD05TS2V5ZWRBcmNo
+ aXZlctEXGFRyb290gAEIERojLTI3O0FITltijY+RlqGqsrW+0NPYAAAAAAAAAQEAAAAA
+ AAAAGQAAAAAAAAAAAAAAAAAAANo=
+
+ ShowWindowSettingsNameInTitle
+
+ TerminalType
+ xterm-256color
+ TextBoldColor
+
+ YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS
+ AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPECYw
+ LjUwNTk5MTkzNTcgMC41NjQ4NTgzNzcgMC41NjM2MzY1NDE0ABABgALSEBESE1okY2xh
+ c3NuYW1lWCRjbGFzc2VzV05TQ29sb3KiEhRYTlNPYmplY3RfEA9OU0tleWVkQXJjaGl2
+ ZXLRFxhUcm9vdIABCBEaIy0yNztBSE5bYouNj5SfqLCzvM7R1gAAAAAAAAEBAAAAAAAA
+ ABkAAAAAAAAAAAAAAAAAAADY
+
+ TextColor
+
+ YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS
+ AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPECcw
+ LjQ0MDU4MDI0ODggMC41MDk2MjkzMDkyIDAuNTE2ODU3OTgxNwAQAYAC0hAREhNaJGNs
+ YXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXllZEFyY2hp
+ dmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KMjpCVoKmxtL3P0tcAAAAAAAABAQAAAAAA
+ AAAZAAAAAAAAAAAAAAAAAAAA2Q==
+
+ UseBrightBold
+
+ blackColour
+
+ BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm
+ ZmZmg7JNIT2DkvUjPoO+F0s+AYY=
+
+ blueColour
+
+ BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm
+ ZmZmgyqcAj6DtOHsPoO+RUg/AYY=
+
+ brightBlackColour
+
+ BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm
+ ZmZmg+ZzgjyDs44BPoNahyM+AYY=
+
+ brightBlueColour
+
+ BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm
+ ZmZmg7yT4T6DEXcCP4POUAQ/AYY=
+
+ brightCyanColour
+
+ BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm
+ ZmZmg7CIAT+Dj5oQP4N8ShA/AYY=
+
+ brightGreenColour
+
+ BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm
+ ZmZmgzyujT6DFZy2PoOYFsQ+AYY=
+
+ brightMagentaColour
+
+ BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm
+ ZmZmgxMjsj6D+uazPoNkyTc/AYY=
+
+ brightRedColour
+
+ BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm
+ ZmZmgyfkPT+D/15aPoMgl5Y9AYY=
+
+ brightWhiteColour
+
+ BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm
+ ZmZmg49LfT+D0Dt1P4MGM10/AYY=
+
+ brightYellowColour
+
+ BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm
+ ZmZmg1MTpj6DeHnQPoPQg+A+AYY=
+
+ cyanColour
+
+ BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm
+ ZmZmg4VRFj6DfyESP4PkZwY/AYY=
+
+ greenColour
+
+ BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm
+ ZmZmg9lI5j6DIYkKP4PVjKU8AYY=
+
+ magentaColour
+
+ BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm
+ ZmZmg/4CRz+DBTzdPYMgzt4+AYY=
+
+ name
+ Solarized Dark xterm-256color
+ redColour
+
+ BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm
+ ZmZmg6i7UT+DUATePYMl2hA+AYY=
+
+ type
+ Window Settings
+ whiteColour
+
+ BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm
+ ZmZmgzqGaj+D2tdjP4NYPUw/AYY=
+
+ yellowColour
+
+ BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm
+ ZmZmg0DAJT+DB17vPoM4Y8A8AYY=
+
+
+
diff --git a/setup/Solarized Dark.itermcolors b/setup/Solarized Dark.itermcolors
new file mode 100644
index 00000000000..d630a40539f
--- /dev/null
+++ b/setup/Solarized Dark.itermcolors
@@ -0,0 +1,214 @@
+
+
+
+
+
+ Ansi 0 Color
+
+ Blue Component
+ 0.19370138645172119
+ Green Component
+ 0.15575926005840302
+ Red Component
+ 0.0
+
+ Ansi 1 Color
+
+ Blue Component
+ 0.14145714044570923
+ Green Component
+ 0.10840655118227005
+ Red Component
+ 0.81926977634429932
+
+ Ansi 10 Color
+
+ Blue Component
+ 0.38298487663269043
+ Green Component
+ 0.35665956139564514
+ Red Component
+ 0.27671992778778076
+
+ Ansi 11 Color
+
+ Blue Component
+ 0.43850564956665039
+ Green Component
+ 0.40717673301696777
+ Red Component
+ 0.32436618208885193
+
+ Ansi 12 Color
+
+ Blue Component
+ 0.51685798168182373
+ Green Component
+ 0.50962930917739868
+ Red Component
+ 0.44058024883270264
+
+ Ansi 13 Color
+
+ Blue Component
+ 0.72908437252044678
+ Green Component
+ 0.33896297216415405
+ Red Component
+ 0.34798634052276611
+
+ Ansi 14 Color
+
+ Blue Component
+ 0.56363654136657715
+ Green Component
+ 0.56485837697982788
+ Red Component
+ 0.50599193572998047
+
+ Ansi 15 Color
+
+ Blue Component
+ 0.86405980587005615
+ Green Component
+ 0.95794391632080078
+ Red Component
+ 0.98943418264389038
+
+ Ansi 2 Color
+
+ Blue Component
+ 0.020208755508065224
+ Green Component
+ 0.54115492105484009
+ Red Component
+ 0.44977453351020813
+
+ Ansi 3 Color
+
+ Blue Component
+ 0.023484811186790466
+ Green Component
+ 0.46751424670219421
+ Red Component
+ 0.64746475219726562
+
+ Ansi 4 Color
+
+ Blue Component
+ 0.78231418132781982
+ Green Component
+ 0.46265947818756104
+ Red Component
+ 0.12754884362220764
+
+ Ansi 5 Color
+
+ Blue Component
+ 0.43516635894775391
+ Green Component
+ 0.10802463442087173
+ Red Component
+ 0.77738940715789795
+
+ Ansi 6 Color
+
+ Blue Component
+ 0.52502274513244629
+ Green Component
+ 0.57082360982894897
+ Red Component
+ 0.14679534733295441
+
+ Ansi 7 Color
+
+ Blue Component
+ 0.79781103134155273
+ Green Component
+ 0.89001238346099854
+ Red Component
+ 0.91611063480377197
+
+ Ansi 8 Color
+
+ Blue Component
+ 0.15170273184776306
+ Green Component
+ 0.11783610284328461
+ Red Component
+ 0.0
+
+ Ansi 9 Color
+
+ Blue Component
+ 0.073530435562133789
+ Green Component
+ 0.21325300633907318
+ Red Component
+ 0.74176257848739624
+
+ Background Color
+
+ Blue Component
+ 0.15170273184776306
+ Green Component
+ 0.11783610284328461
+ Red Component
+ 0.0
+
+ Bold Color
+
+ Blue Component
+ 0.56363654136657715
+ Green Component
+ 0.56485837697982788
+ Red Component
+ 0.50599193572998047
+
+ Cursor Color
+
+ Blue Component
+ 0.51685798168182373
+ Green Component
+ 0.50962930917739868
+ Red Component
+ 0.44058024883270264
+
+ Cursor Text Color
+
+ Blue Component
+ 0.19370138645172119
+ Green Component
+ 0.15575926005840302
+ Red Component
+ 0.0
+
+ Foreground Color
+
+ Blue Component
+ 0.51685798168182373
+ Green Component
+ 0.50962930917739868
+ Red Component
+ 0.44058024883270264
+
+ Selected Text Color
+
+ Blue Component
+ 0.56363654136657715
+ Green Component
+ 0.56485837697982788
+ Red Component
+ 0.50599193572998047
+
+ Selection Color
+
+ Blue Component
+ 0.19370138645172119
+ Green Component
+ 0.15575926005840302
+ Red Component
+ 0.0
+
+
+
diff --git a/setup/init.sh b/setup/init.sh
new file mode 100755
index 00000000000..4eddf4000ca
--- /dev/null
+++ b/setup/init.sh
@@ -0,0 +1,75 @@
+#!/usr/bin/env bash
+
+if [ "$1" == "-h" ] ; then
+ echo "Usage: init"
+ echo "Options: "
+ echo "-h Show this message"
+ echo "-a Install all the options (gem, pip, npm, nvm, oh-my-zsh, oh-my-fish)"
+ echo "-g Install Gemfile"
+ echo "-n Install node apps & nvm"
+ echo "-p Install python requirements"
+ return
+elif [ "$#" -gt 1 ]; then
+ echo "Too many parameters"
+ return
+fi
+
+function gem() {
+ echo "Installing gems"
+ bundle install
+}
+
+function pip() {
+ echo "Installing pip requirements"
+ pip install -r requirements.txt
+}
+
+function npm() {
+ echo "Installing npm apps"
+ npm install -g $(cat npmfile)
+}
+
+function nvm() {
+ echo "Installing nvm"
+ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
+}
+
+function omz() {
+ echo "Installing oh-my-zsh"
+ sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
+}
+
+function omf() {
+ echo "Installing oh-my-fish"
+ curl -L https://github.com/oh-my-fish/oh-my-fish/raw/master/bin/install | fish
+}
+
+function mac-cli() {
+ echo "Installing mac-cli"
+ sh -c "$(curl -fsSL https://raw.githubusercontent.com/guarinogabriel/mac-cli/master/mac-cli/tools/install)"
+}
+
+if [ "$1" == "-a" ]; then
+ gem
+ pip
+ npm
+ omz
+ omf
+ mac-cli
+elif [[ "$1" == "-g" ]]; then
+ gem
+elif [[ "$1" == "-n" ]]; then
+ npm
+ nvm
+elif [[ "$1" == "-p" ]]; then
+ pip
+elif [[ "$1" == "-o" ]]; then
+ omz
+ omf
+ mac-cli
+else
+ gem
+ pip
+ npm
+ echo "For specific categories, run again with appropriate flags (-h for more info)"
+fi;
diff --git a/setup/npmfile b/setup/npmfile
new file mode 100644
index 00000000000..38aa6a14176
--- /dev/null
+++ b/setup/npmfile
@@ -0,0 +1,35 @@
+castnow
+clipboard-cli
+devquote
+doctoc
+expo-cli
+fkill
+file-icon-cli
+gh-home
+is-up-cli
+move-file-cli
+npm-check
+npm-home
+ntl
+node-red
+open-pip-cli
+prettier
+qrcode-terminal
+react-devtools
+run-applescript
+screensaver
+speedtest-net
+splash-cli
+spoof
+stargazed
+starring
+svgo
+tldr
+vaca
+@rafaelrinaldi/whereami
+xclap-cli
+yo
+generator-rn-toolbox
+generator-electrode
+generator-electron
+generator-license
diff --git a/setup/requirements.txt b/setup/requirements.txt
new file mode 100644
index 00000000000..38353426370
--- /dev/null
+++ b/setup/requirements.txt
@@ -0,0 +1,2 @@
+beautysh
+speedtest-cli