From 861be343e42bfe7ae75a993298ceb6a4b1d6bead Mon Sep 17 00:00:00 2001 From: Graham Hall Date: Tue, 2 Apr 2024 19:08:20 -0400 Subject: [PATCH] initial commit --- .gitignore | 1 + README.md | 3 + git_config/gitconfig | 14 ++++ git_config/global_ignore | 2 + misc_config/starship.toml | 164 ++++++++++++++++++++++++++++++++++++++ scripts/link_dotfiles.zsh | 0 scripts/run-dev.sh | 13 +++ scripts/run-lint.sh | 11 +++ zsh_config/alias.zsh | 10 +++ zsh_config/bun.zsh | 6 ++ zsh_config/omzsh.zsh | 85 ++++++++++++++++++++ zsh_config/ssh.zsh | 7 ++ zsh_config/zshrc | 14 ++++ 13 files changed, 330 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 git_config/gitconfig create mode 100644 git_config/global_ignore create mode 100644 misc_config/starship.toml create mode 100644 scripts/link_dotfiles.zsh create mode 100755 scripts/run-dev.sh create mode 100755 scripts/run-lint.sh create mode 100644 zsh_config/alias.zsh create mode 100644 zsh_config/bun.zsh create mode 100644 zsh_config/omzsh.zsh create mode 100644 zsh_config/ssh.zsh create mode 100644 zsh_config/zshrc diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e43b0f9 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.DS_Store diff --git a/README.md b/README.md new file mode 100644 index 0000000..619cead --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# dotfiles + +My dotfiles for my macOS Terminal config. diff --git a/git_config/gitconfig b/git_config/gitconfig new file mode 100644 index 0000000..1cb1aeb --- /dev/null +++ b/git_config/gitconfig @@ -0,0 +1,14 @@ +# This is Git's per-user configuration file. +[user] + email = graham@ghall.dev + name = Graham Hall +[core] + editor = bbedit -w + excludesfile = /Users/ghall/.gitignore +[filter "lfs"] + clean = git-lfs clean -- %f + smudge = git-lfs smudge -- %f + process = git-lfs filter-process + required = true +[init] + defaultBranch = main diff --git a/git_config/global_ignore b/git_config/global_ignore new file mode 100644 index 0000000..d9615c6 --- /dev/null +++ b/git_config/global_ignore @@ -0,0 +1,2 @@ +.DS_Store +.nova/ diff --git a/misc_config/starship.toml b/misc_config/starship.toml new file mode 100644 index 0000000..704b39d --- /dev/null +++ b/misc_config/starship.toml @@ -0,0 +1,164 @@ +[aws] +symbol = " " + +[buf] +symbol = " " + +[c] +symbol = " " + +[conda] +symbol = " " + +[crystal] +symbol = " " + +[dart] +symbol = " " + +[directory] +read_only = " 󰌾" + +[docker_context] +symbol = " " + +[elixir] +symbol = " " + +[elm] +symbol = " " + +[fennel] +symbol = " " + +[fossil_branch] +symbol = " " + +[git_branch] +symbol = " " + +[golang] +symbol = " " + +[guix_shell] +symbol = " " + +[haskell] +symbol = " " + +[haxe] +symbol = " " + +[hg_branch] +symbol = " " + +[hostname] +ssh_symbol = " " + +[java] +symbol = " " + +[julia] +symbol = " " + +[kotlin] +symbol = " " + +[lua] +symbol = " " + +[memory_usage] +symbol = "󰍛 " + +[meson] +symbol = "󰔷 " + +[nim] +symbol = "󰆥 " + +[nix_shell] +symbol = " " + +[nodejs] +symbol = " " + +[ocaml] +symbol = " " + +[os.symbols] +Alpaquita = " " +Alpine = " " +AlmaLinux = " " +Amazon = " " +Android = " " +Arch = " " +Artix = " " +CentOS = " " +Debian = " " +DragonFly = " " +Emscripten = " " +EndeavourOS = " " +Fedora = " " +FreeBSD = " " +Garuda = "󰛓 " +Gentoo = " " +HardenedBSD = "󰞌 " +Illumos = "󰈸 " +Kali = " " +Linux = " " +Mabox = " " +Macos = " " +Manjaro = " " +Mariner = " " +MidnightBSD = " " +Mint = " " +NetBSD = " " +NixOS = " " +OpenBSD = "󰈺 " +openSUSE = " " +OracleLinux = "󰌷 " +Pop = " " +Raspbian = " " +Redhat = " " +RedHatEnterprise = " " +RockyLinux = " " +Redox = "󰀘 " +Solus = "󰠳 " +SUSE = " " +Ubuntu = " " +Unknown = " " +Void = " " +Windows = "󰍲 " + +[package] +symbol = "󰏗 " + +[perl] +symbol = " " + +[php] +symbol = " " + +[pijul_channel] +symbol = " " + +[python] +symbol = " " + +[rlang] +symbol = "󰟔 " + +[ruby] +symbol = " " + +[rust] +symbol = " " + +[scala] +symbol = " " + +[swift] +symbol = " " + +[zig] +symbol = " " diff --git a/scripts/link_dotfiles.zsh b/scripts/link_dotfiles.zsh new file mode 100644 index 0000000..e69de29 diff --git a/scripts/run-dev.sh b/scripts/run-dev.sh new file mode 100755 index 0000000..b9551d4 --- /dev/null +++ b/scripts/run-dev.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +if [ -f "package-lock.json" ]; then + npm run dev +elif [ -f "yarn.lock" ]; then + yarn dev +elif [ -f "pnpm-lock.yaml" ]; then + pnpm dev +elif [ -f "bun.lockb" ]; then + bun run dev +else + echo "No lockfile :(" +fi diff --git a/scripts/run-lint.sh b/scripts/run-lint.sh new file mode 100755 index 0000000..d3d371f --- /dev/null +++ b/scripts/run-lint.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +if [ -f "package-lock.json" ]; then + npm run lint +elif [ -f "yarn.lock" ]; then + yarn lint +elif [ -f "pnpm-lock.yaml"] + pnpm run lint +else + echo "Neither package-lock.json nor yarn.lock exists" +fi diff --git a/zsh_config/alias.zsh b/zsh_config/alias.zsh new file mode 100644 index 0000000..e88e91f --- /dev/null +++ b/zsh_config/alias.zsh @@ -0,0 +1,10 @@ +alias config="bbedit ~/dotfiles" +alias nv="open -a Nova" +alias ptob="gh pr create -B beta" +alias prune-git="git remote prune origin" +alias dev="sh ~/dotfiles/scripts/run-dev.sh" +alias lint="sh ~/dotfiles/scripts/run-lint.sh" +alias commit="sh ~/Documents/Shell\ Scripts/git-commit-push.sh" +alias macmini="ssh admin@Memory-Alpha.local" +alias ls="eza" +alias cd="z" diff --git a/zsh_config/bun.zsh b/zsh_config/bun.zsh new file mode 100644 index 0000000..6204241 --- /dev/null +++ b/zsh_config/bun.zsh @@ -0,0 +1,6 @@ +# bun completions +[ -s "/Users/ghall/.bun/_bun" ] && source "/Users/ghall/.bun/_bun" + +# bun +export BUN_INSTALL="$HOME/.bun" +export PATH="$BUN_INSTALL/bin:$PATH" diff --git a/zsh_config/omzsh.zsh b/zsh_config/omzsh.zsh new file mode 100644 index 0000000..8977cd9 --- /dev/null +++ b/zsh_config/omzsh.zsh @@ -0,0 +1,85 @@ +# Path to your oh-my-zsh installation. +export ZSH="$HOME/.oh-my-zsh" + +export "MICRO_TRUECOLOR=1" + +# 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="robbyrussell" + +# 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 one of the following lines to change the auto-update behavior +# zstyle ':omz:update' mode disabled # disable automatic updates +# zstyle ':omz:update' mode auto # update automatically without asking +# zstyle ':omz:update' mode reminder # just remind me to update when it's time + +# Uncomment the following line to change how often to auto-update (in days). +# zstyle ':omz:update' frequency 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. +# You can also set it to another string to have that shown instead of the default red dots. +# e.g. COMPLETION_WAITING_DOTS="%F{yellow}waiting...%f" +# Caution: this setting can cause issues with multiline prompts in zsh < 5.7.1 (see #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 +# zsh-autosuggestions + zsh-syntax-highlighting +# fast-syntax-highlighting + zsh-autocomplete + iterm2 + bbedit + github + ) + +FPATH="$(brew --prefix)/share/zsh/site-functions:${FPATH}" + +source $ZSH/oh-my-zsh.sh diff --git a/zsh_config/ssh.zsh b/zsh_config/ssh.zsh new file mode 100644 index 0000000..edbeb00 --- /dev/null +++ b/zsh_config/ssh.zsh @@ -0,0 +1,7 @@ +# Preferred editor for local and remote sessions +if [[ -n $SSH_CONNECTION ]]; then + export VISUAL='/opt/homebrew/bin/micro' + export EDITOR='/opt/homebrew/bin/micro' +else + export EDITOR='mvim' +fi diff --git a/zsh_config/zshrc b/zsh_config/zshrc new file mode 100644 index 0000000..cb195e3 --- /dev/null +++ b/zsh_config/zshrc @@ -0,0 +1,14 @@ +source $(brew --prefix nvm)/nvm.sh + +# Load seperated config files +for conf in "$HOME/dotfiles/zsh_config/"*.zsh; do + source "${conf}" +done +unset conf + +[[ "$TERM_PROGRAM" == "CodeEditApp_Terminal" ]] && . "/Applications/CodeEdit.app/Contents/Resources/codeedit_shell_integration.zsh" + +eval $(thefuck --alias) +eval "$(zoxide init zsh)" +eval "$(starship init zsh)" +