commit 649c841b36d6abc9f35416bf66cf65e34017a257 Author: Stephen Date: Mon Mar 30 23:56:56 2020 -0700 new symlink setup diff --git a/Brewfile b/Brewfile new file mode 100644 index 0000000..4bf9197 --- /dev/null +++ b/Brewfile @@ -0,0 +1,155 @@ +tap "adoptopenjdk/openjdk" +tap "cjbassi/gotop" +tap "github/gh" +tap "homebrew/bundle" +tap "homebrew/cask" +tap "homebrew/cask-drivers" +tap "homebrew/cask-fonts" +tap "homebrew/cask-versions" +tap "homebrew/core" +tap "khanhas/tap" +tap "vapor/tap" +cask "adoptopenjdk8" +brew "bash" +brew "bison" +brew "brew-cask-completion" +brew "brew-gem" +brew "brew-pip" +brew "bsdmake" +brew "freetype" +brew "fontconfig" +brew "python" +brew "cmake" +brew "cmatrix" +brew "cocoapods" +brew "coreutils" +brew "cowsay" +brew "doitlive" +brew "dosbox" +brew "gnu-tar" +brew "dpkg" +brew "elinks" +brew "sdl2" +brew "ffmpeg" +brew "figlet" +brew "fortune" +brew "fswatch" +brew "gcc" +brew "gdb" +brew "git" +brew "git-game" +brew "gnu-sed" +brew "go" +brew "hashcat" +brew "howdoi" +brew "htop" +brew "hub" +brew "imagemagick" +brew "jq" +brew "ldid" +brew "libusbmuxd" +brew "libimobiledevice", args: ["HEAD"] +brew "llvm" +brew "lolcat" +brew "lua@5.1" +brew "lynx" +brew "ruby" +brew "macvim" +brew "mas" +brew "mysql" +brew "neofetch" +brew "nginx" +brew "nmap" +brew "p7zip" +brew "pipes-sh" +brew "pkg-config" +brew "portaudio" +brew "pv" +brew "qt" +brew "ranger" +brew "rsync" +brew "ruby@2.4" +brew "ruby@2.5" +brew "sl" +brew "speedread" +brew "speedtest-cli" +brew "swift" +brew "swiftlint" +brew "switch-lan-play" +brew "telnet" +brew "tmux" +brew "tree" +brew "unicorn" +brew "watch" +brew "wget" +brew "whois" +brew "winetricks" +brew "wtf" +brew "youtube-dl" +brew "zsh" +brew "zsh-completions" +brew "zsh-history-substring-search" +brew "zsh-syntax-highlighting" +brew "zzz" +brew "cjbassi/gotop/gotop" +brew "github/gh/gh" +brew "khanhas/tap/spicetify-cli" +brew "vapor/tap/vapor" +cask "adobe-creative-cloud" +cask "adoptopenjdk13" +cask "amazon-chime" +cask "android-studio" +cask "appcleaner" +cask "bartender" +cask "burp-suite" +cask "checkra1n" +cask "citra" +cask "daisydisk" +cask "discord" +cask "firefox" +cask "font-fira-code" +cask "handbrake" +cask "iina" +cask "intel-power-gadget" +cask "istat-menus" +cask "iterm2" +cask "lastpass" +cask "mactex" +cask "minecraft" +cask "mpv" +cask "mumble" +cask "philips-hue-sync" +cask "plex" +cask "qbittorrent" +cask "rectangle" +cask "scroll-reverser" +cask "signal" +cask "slack" +cask "spotify" +cask "spotify-notifications" +cask "steam" +cask "vlc" +cask "vmware-fusion" +cask "wireshark" +cask "xquartz" +mas "1Blocker", id: 1107421413 +mas "Deliveries", id: 924726344 +mas "Disk Speed Test", id: 425264550 +mas "Drafts", id: 1435957248 +mas "Front and Center", id: 1493996622 +mas "iMovie", id: 408981434 +mas "Keynote", id: 409183694 +mas "Microsoft Excel", id: 462058435 +mas "Microsoft Outlook", id: 985367838 +mas "Microsoft Remote Desktop", id: 1295203466 +mas "Microsoft Word", id: 462054704 +mas "Night Eye", id: 1450504903 +mas "Notability", id: 736189492 +mas "Pages", id: 409201541 +mas "Paste", id: 967805235 +mas "SnippetsLab", id: 1006087419 +mas "Spark", id: 1176895641 +mas "SwitchGlass", id: 1498546559 +mas "The Unarchiver", id: 425424353 +mas "Xcode", id: 497799835 +mas "Yoink", id: 457622435 diff --git a/aliases b/aliases new file mode 100644 index 0000000..5cb6f8f --- /dev/null +++ b/aliases @@ -0,0 +1,48 @@ +# Git +alias ga='git add *' +alias gc='git commit -m' +alias gcl='git clone' +alias gp='git push' +alias gs='git status' + +# Spotify +alias snp='python3 ~/Development/SSiTerm/spot.py status' +alias sap='python3 ~/Development/SSiTerm/spot.py playlist --add' +alias sls='python3 ~/Development/SSiTerm/spot.py playback --like' +alias spp='python3 ~/Development/SSiTerm/spot.py playback --play' +alias sne='python3 ~/Development/SSiTerm/spot.py playback --next' +alias spr='python3 ~/Development/SSiTerm/spot.py playback --previous' +alias ssf='python3 ~/Development/SSiTerm/spot.py playback --shuffle' +alias spd='python3 ~/Development/SSiTerm/spot.py device' +alias sse='python3 ~/Development/SSiTerm/spot.py search --track' +alias ssa='python3 ~/Development/SSiTerm/spot.py search --album' +alias spl='python3 ~/Development/SSiTerm/spot.py playlist --play' +alias srp='python3 ~/Development/SSiTerm/spot.py playlist --remove' +alias svl='python3 ~/Development/SSiTerm/spot.py playback --volume' +alias srl='python3 ~/Development/SSiTerm/spot.py playback --unlike' +alias ssk='python3 ~/Development/SSiTerm/spot.py playback --seek' +alias sre='python3 ~/Development/SSiTerm/spot.py playback --repeat' + +# ls +alias lsd="ls -d" +alias ll='ls -alh' + +# System Utils +alias brewup='cl; brew update; brew upgrade; brew cask upgrade; brew cleanup -s; brew doctor; brew cask doctor | grep -A 1 --color=never "Homebrew Version"' +alias cl='clear' +alias sleep="open /System/Library/CoreServices/ScreenSaverEngine.app" +alias ta="tmux a -t" +alias tn="tmux new-session -s" +alias git="hub" +alias gcc="gcc -g" +alias hora='date "+%H:%M:%S"' +alias ap="open /Applications/AirPods.app" +alias wthr='curl wttr.in/san_luis_obispo' +alias nf='cl; neofetch; system_profiler SPSoftwareDataType | grep "System Version" | cut -d " " -f9 -f10 -f11| figlet -w 100; shownetinfo && lab && batt' + +# School +alias glp='~/Development/gp.sh' +alias os="ssh unix3 -t '//home/smparkin/centos/usr/bin/tmux a -t os'" +alias se="ssh marsonia -t 'tmux a -t se'" +alias 453='cd /Users/smparkin/Library/Mobile\ Documents/com~apple~CloudDocs/CalPoly/2019-20/Winter20/cpe453' +alias 308='cd /Users/smparkin/Library/Mobile\ Documents/com~apple~CloudDocs/CalPoly/2019-20/Winter20/csc308' diff --git a/functions b/functions new file mode 100644 index 0000000..d8fbc8d --- /dev/null +++ b/functions @@ -0,0 +1,47 @@ +function shownetinfo() { + OSTYPE=$(uname -s) + IP="" + GW="" + NET=$(system_profiler SPNetworkDataType | grep "Router:" | cut -c 19-30 | head -1) + + if [ "$OSTYPE" = "Linux" ]; then + IP=$(ip address show | grep -E "inet .* brd .* dynamic" | cut -d " " -f6) + GW=$(ip route | grep default | cut -d " " -f3) + elif [ "$OSTYPE" = "Darwin" ]; then + IP=$(ifconfig en0 | grep -v "127.0.0.1" | grep "inet " | head -1 | cut -d " " -f2) + if [ "$NET" != "" ]; then + GW=$(dig +short myip.opendns.com @resolver1.opendns.com) + fi + fi + tput setaf 7; tput bold; echo -en "Net: " + tput sgr0 + tput setaf 7; echo -en "internal $IP" + if [ "$NET" != "" ]; then + echo -en ", external $GW" + echo -en ", router $NET" + fi + tput setaf 7 + tput bold + echo -en " | " + tput sgr0 +} + +function batt() { + tput setaf 7; tput bold; echo -en "Bat: " + tput sgr0 + tput setaf 7 + echo -en $(pmset -g batt | grep -Eo "\d+%" | cut -d% -f1) + echo "%" + tput sgr0 +} + +function lab() { + tput setaf 7; tput bold; echo -en "Lab: " + tput sgr0 + tput setaf 7 + echo -en $(curl -s https://thewhitehat.club/api/v1/status | jq ".data.status" | tr -d "\"") + tput setaf 7 + tput bold + echo -en " | " + tput sgr0 +} diff --git a/gitconfig b/gitconfig new file mode 100644 index 0000000..fd9d93b --- /dev/null +++ b/gitconfig @@ -0,0 +1,10 @@ +[filter "lfs"] + clean = git-lfs clean -- %f + smudge = git-lfs smudge -- %f + process = git-lfs filter-process + required = true +[user] + name = Stephen + email = smparkin@calpoly.edu +[core] + excludesfile = ~/.gitignore_global diff --git a/gitignore_global b/gitignore_global new file mode 100644 index 0000000..60166c7 --- /dev/null +++ b/gitignore_global @@ -0,0 +1,46 @@ +# Compiled source # +################### +*.com +*.class +*.dll +*.exe +*.o +*.so + +# Packages # +############ +# it's better to unpack these files and commit the raw source +# git has its own built in compression methods +*.7z +*.dmg +*.gz +*.iso +*.jar +*.rar +*.tar +*.zip + +# Logs and databases # +###################### +*.log +*.sql +*.sqlite + +# OS generated files # +###################### +.DS_Store +.DS_Store? +._* +.Spotlight-V100 +.Trashes +ehthumbs.db +Thumbs.db + +*.pyc +.vscode +coverage.xml +cov.xml +launch.json +settings.json +sftp.json +.coverage \ No newline at end of file diff --git a/newstephen.zsh-theme b/newstephen.zsh-theme new file mode 100644 index 0000000..0d7e6b5 --- /dev/null +++ b/newstephen.zsh-theme @@ -0,0 +1,65 @@ +function my_git_prompt() { + tester=$(git rev-parse --git-dir 2> /dev/null) || return + + INDEX=$(git status --porcelain 2> /dev/null) + STATUS="" + + # is branch ahead? + if $(echo "$(git log origin/$(git_current_branch)..HEAD 2> /dev/null)" | grep '^commit' &> /dev/null); then + STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_AHEAD" + fi + + # is branch behind? + if $(echo "$(git log HEAD..origin/$(git_current_branch) 2> /dev/null)" | grep '^commit' &> /dev/null); then + STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_BEHIND" + fi + + # is anything staged? + if $(echo "$INDEX" | command grep -E -e '^(D[ M]|[MARC][ MD]) ' &> /dev/null); then + STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_STAGED" + fi + + # is anything unstaged? + if $(echo "$INDEX" | command grep -E -e '^[ MARC][MD] ' &> /dev/null); then + STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_UNSTAGED" + fi + + # is anything untracked? + if $(echo "$INDEX" | grep '^?? ' &> /dev/null); then + STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_UNTRACKED" + fi + + # is anything unmerged? + if $(echo "$INDEX" | command grep -E -e '^(A[AU]|D[DU]|U[ADU]) ' &> /dev/null); then + STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_UNMERGED" + fi + + if [[ -n $STATUS ]]; then + STATUS=" $STATUS" + fi + + echo "$ZSH_THEME_GIT_PROMPT_PREFIX$(my_current_branch)$STATUS$ZSH_THEME_GIT_PROMPT_SUFFIX" +} + +function my_current_branch() { + echo $(git_current_branch || echo "(no branch)") +} + +function ssh_connection() { + if [[ -n $SSH_CONNECTION ]]; then + echo "%{$fg_bold[red]%}(ssh) " + fi +} + +local ret_status="%(?:%{$fg_bold[green]%}:%{$fg_bold[red]%})%?%{$reset_color%}" +PROMPT=$'$(ssh_connection)%{$fg_bold[green]%}%n@%m%{$reset_color%}$(my_git_prompt) : $(shrink_path -f)\n[${ret_status}]  ' + +ZSH_THEME_PROMPT_RETURNCODE_PREFIX="%{$fg_bold[red]%}" +ZSH_THEME_GIT_PROMPT_PREFIX=" $fg[white]‹ %{$fg_bold[yellow]%}" +ZSH_THEME_GIT_PROMPT_AHEAD="%{$fg_bold[magenta]%}↑" +ZSH_THEME_GIT_PROMPT_BEHIND="%{$fg_bold[green]%}↓" +ZSH_THEME_GIT_PROMPT_STAGED="%{$fg_bold[green]%}●" +ZSH_THEME_GIT_PROMPT_UNSTAGED="%{$fg_bold[red]%}●" +ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg_bold[white]%}●" +ZSH_THEME_GIT_PROMPT_UNMERGED="%{$fg_bold[red]%}✕" +ZSH_THEME_GIT_PROMPT_SUFFIX=" $fg_bold[white]%{$reset_color%}›" diff --git a/setup.sh b/setup.sh new file mode 100755 index 0000000..09c9709 --- /dev/null +++ b/setup.sh @@ -0,0 +1,44 @@ +#! /bin/bash + +OSTYPE=$(uname -s) + +# get package manager up to date +if [ "$OSTYPE" = "Linux" ]; then + sudo apt update + sudo apt install fortune cowsay lolcat zsh -y + sudo apt upgrade -y +elif [ "$OSTYPE" = "Darwin" ]; then + echo "Install Homebrew? [y/n]" + read homebrew + if [ "$homebrew" = "y" ]; then + /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" + brew bundle install --file=Brewfile + fi +fi + +# get ohmyzsh setup +git clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh/ + +# symlink files +mkdir ~/.zsh.d +ln -s ~/dotfiles/aliases ~/.zsh.d/aliases +ln -s ~/dotfiles/functions ~/.zsh.d/functions +ln -s ~/dotfiles/zshrc ~/.zshrc +ln -s ~/dotfiles/gitconfig ~/.gitconfig +ln -s ~/dotfiles/gitignore_global ~/.gitignore_global +ln -s ~/dotfiles/newstephen.zsh-theme ~/.oh-my-zsh/custom/themes/newstephen.zsh-theme +ln -s ~/dotfiles/tmux.conf ~/.tmux.conf +ln -s ~/dotfiles/vimrc ~/.vimrc + +mkdir ~/Development +git clone https://github.com/smparkin/SpotifyCLI.git ~/Development/SSiTerm +cd ~/Development/SSiTerm +pip3 install -r requirements.txt +cd ~/ + +echo "Change shell to zsh? [y/n]" +read shell +if [ "$shell" = "y" ]; then + chsh -s /bin/zsh +fi +exit diff --git a/tmux.conf b/tmux.conf new file mode 100644 index 0000000..7317e25 --- /dev/null +++ b/tmux.conf @@ -0,0 +1,71 @@ +# set prefix to Ctrl-a +unbind-key C-b +set -g prefix C-s +bind-key C-s send-prefix + +bind r source-file ~/.tmux.conf \; display-message "Config reloaded." + +# better splits +unbind % +unbind '"' +bind-key | split-window -h +bind-key - split-window -v + +# Pane switching +bind -n M-Left select-pane -L +bind -n M-Right select-pane -R +bind -n M-Up select-pane -U +bind -n M-Down select-pane -D + +# Pane manipulation +bind j command-prompt -p "join pane from:" "join-pane -s '%%'" +bind s command-prompt -p "send pane to:" "join-pane -t '%%'" + +# mouse controls +set -g mouse on + +# *** Design *** + +set-option -g visual-activity off +set-option -g visual-bell off +set-option -g visual-silence off +set-window-option -g monitor-activity off +set-option -g bell-action none + +set -g default-terminal "screen-256color" + +setw -g clock-mode-colour colour135 + +# When scrolling +# setw -g mode-attr bold +# setw -g mode-fg colour196 +# setw -g mode-bg colour238 + +# The panes +# set -g pane-border-bg colour235 +# set -g pane-border-fg colour238 +# set -g pane-active-border-bg colour236 +# set -g pane-active-border-fg colour46 + +# The statusbar +set -g status-justify left +set -g status-position bottom +set -g status-bg colour234 +set -g status-fg colour7 +# set -g status-attr dim +set -g status-left '' +set -g status-right '#[fg=colour233,bg=colour241,bold] %Y-%m-%d #[fg=colour233,bg=colour245,bold] %H:%M ' +set -g status-right-length 50 +set -g status-left-length 20 + +# setw -g window-status-current-bg colour238 +setw -g window-status-current-format ' #I:#W#F ' +# setw -g window-status-bg colour235 +setw -g window-status-format ' #I:#W#F ' + +# The Messages +# set -g message-attr bold +# set -g message-bg colour22 +# set -g message-fg colour232 +# set -g message-command-fg blue +# set -g message-command-bg black diff --git a/vimrc b/vimrc new file mode 100644 index 0000000..59cc420 --- /dev/null +++ b/vimrc @@ -0,0 +1,30 @@ +let mapleader = "'" +nnoremap :nohlsearch +nnoremap w :w! +nnoremap wq :wq! + +set t_Co=256 +syntax on +filetype plugin indent on +set hidden +set wildmenu +set hlsearch +set ignorecase +set autoread +set smartcase +set backspace=indent,eol,start +set autoindent +set wrap +set smartindent +set nostartofline +set confirm +set mouse=a +set number +set shiftwidth=4 +set softtabstop=4 +set expandtab +set spell +set cursorline +set laststatus=2 +set statusline=%t[%{strlen(&fenc)?&fenc:'none'},%{&ff}]%h%m%r%y%=%c,%l/%L\ %P +colorscheme slate diff --git a/zshrc b/zshrc new file mode 100644 index 0000000..7a81d1c --- /dev/null +++ b/zshrc @@ -0,0 +1,41 @@ +# Path to your oh-my-zsh installation. +OSTYPE=$(uname -s) +if [ "$OSTYPE" = "Linux" ]; then + export ZSH="/home/smparkin/.oh-my-zsh" +elif [ "$OSTYPE" = "Darwin" ]; then + export ZSH="/Users/smparkin/.oh-my-zsh" +fi + +# Set name of the theme to load +ZSH_THEME="newstephen" + +# Hyphen-insensitive completion +HYPHEN_INSENSITIVE="true" + +# Disable marking untracked files under git as dirty +DISABLE_UNTRACKED_FILES_DIRTY="true" + +# Which plugins would you like to load? +plugins=( + colored-man-pages + iterm2 + zsh_reload + zsh-navigation-tools + shrink-path +) + +source $ZSH/oh-my-zsh.sh +source ~/.zsh.d/functions +source ~/.zsh.d/aliases +if [ "$OSTYPE" = "Darwin" ]; then + source ~/.iterm2_shell_integration.zsh +fi + +export EDITOR="/usr/local/bin/vim" +export PATH="/usr/local/sbin:$PATH" +export PATH="/usr/local/opt/openssl/bin:$PATH" +export CLASSPATH="/Users/smparkin/java/junit-4.12.jar:/Users/smparkin/java/processing-core.jar:${CLASSPATH}" +export PATH="/usr/local/flutter/bin:$PATH" +shownetinfo +lab +batt