mac-dotfiles/setup-mac.sh

198 lines
5.9 KiB
Bash
Executable File

#!/bin/sh
set -x
cd "$(dirname $0)" || exit 1
if ! pgrep nix-daemon ; then
sh <(curl -L https://nixos.org/nix/install)
fi
mkdir -p "$HOME/.config"
mkdir -p "$HOME/.config/nix"
if [ ! -f "$HOME/.config/nix/nix.conf" ] ; then
echo "experimental-features = nix-command flakes" >> ~/.config/nix/nix.conf
echo "trusted-users = root andrew" | sudo tee -a /etc/nix/nix.conf && sudo pkill nix-daemon
nix profile install nixpkgs#cachix
cachix use devenv
fi
nix profile install nixpkgs#bashInteractive
nix profile install nixpkgs#bat
nix profile install nixpkgs#bitwarden-cli
nix profile install nixpkgs#broot
nix profile install nixpkgs#cargo-dist
nix profile install nixpkgs#cargo-flamegraph
nix profile install nixpkgs#cargo-release
nix profile install nixpkgs#cargo-udeps
nix profile install nixpkgs#cheat
nix profile install nixpkgs#chezmoi
nix profile install nixpkgs#croc
nix profile install nixpkgs#curlie
nix profile install nixpkgs#delta
nix profile install nixpkgs#direnv
nix profile install nixpkgs#dnsproxy
nix profile install nixpkgs#du-dust
nix profile install nixpkgs#fd
nix profile install nixpkgs#flamegraph
nix profile install nixpkgs#fzf
nix profile install nixpkgs#git
nix profile install nixpkgs#git-gone
nix profile install nixpkgs#gnugrep
nix profile install nixpkgs#grex
nix profile install nixpkgs#gron
nix profile install nixpkgs#gum
nix profile install nixpkgs#helix
nix profile install nixpkgs#hexyl
nix profile install nixpkgs#htop
nix profile install nixpkgs#httpie
nix profile install nixpkgs#htmlq
nix profile install nixpkgs#hyperfine
nix profile install nixpkgs#jc
nix profile install nixpkgs#jiq
nix profile install nixpkgs#jq
nix profile install nixpkgs#jqp
nix profile install nixpkgs#kibi
nix profile install nixpkgs#kondo
nix profile install nixpkgs#kubie
nix profile install nixpkgs#llama
nix profile install nixpkgs#mdbook
nix profile install nixpkgs#mosh
nix profile install nixpkgs#neovim
nix profile install nixpkgs#ouch
#nix profile install nixpkgs#prettylist
nix profile install nixpkgs#q
nix profile install nixpkgs#ripgrep
nix profile install nixpkgs#rq
nix profile install nixpkgs#rustfilt
nix profile install nixpkgs#sd
nix profile install nixpkgs#shellcheck
nix profile install nixpkgs#shfmt
nix profile install nixpkgs#starship
nix profile install nixpkgs#tealdeer
nix profile install nixpkgs#tokei
nix profile install nixpkgs#upterm
nix profile install nixpkgs#vim
nix profile install nixpkgs#watchexec
nix profile install nixpkgs#xcp
nix profile install nixpkgs#xh
nix profile install nixpkgs#xsv
nix profile install nixpkgs#zola
nix profile install nixpkgs#zoxide
if [ ! -e /Applications/kitty.app ] ; then
curl -L https://sw.kovidgoyal.net/kitty/installer.sh | sh /dev/stdin
fi
mkdir -p "$HOME/.config/kitty"
cat <<EOF > "$HOME/.config/kitty/kitty.conf"
font_family Operator Mono Book
#bold_font Operator Mono Bold
#italic_font Operator Mono Italic
#bold_italic_font Operator Mono Bold Italic
font_size 20.0
cursor_shape block
shell_integration no-cursor
tab_bar_edge top
symbol_map U+23FB-U+23FE,U+2665,U+26A1,U+2B58,U+E000-U+E00A,U+E0A0-U+E0A3,U+E0B0-U+E0C8,U+E0CA,U+E0CC-U+E0D2,U+E0D4,U+E200-U+E2A9,U+E300-U+E3E3,U+E5FA-U+E62F,U+E700-U+E7C5,U+F000-U+F2E0,U+F300-U+F31C,U+F400-U+F4A9,U+F500-U+F8FF Symbols Nerd Font
remember_window_size yes
initial_window_width 130c
initial_window_height 35c
# BEGIN_KITTY_THEME
# Atom One Light
include current-theme.conf
# END_KITTY_THEME
EOF
curl -Lo "$HOME/.config/kitty/current-theme.conf" https://git.penguincoder.org/penguincoder/dotfiles/raw/branch/main/dot_config/kitty/current-theme.conf
curl -Lo "$HOME/.config/starship.toml" https://git.penguincoder.org/penguincoder/dotfiles/raw/branch/main/dot_config/starship.toml
mkdir -p "$HOME/.config/helix"
curl -Lo "$HOME/.config/helix/config.toml" https://git.penguincoder.org/penguincoder/dotfiles/raw/branch/main/dot_config/helix/config.toml
cat <<EOF > "$HOME/.gitconfig"
[push]
default = simple
[user]
name = Andrew Coleman
email = penguincoder@gmail.com
[advice]
detachedHead = false
[core]
filemode = true
eol = lf
autocrlf = input
pager = delta
[init]
defaultBranch = main
[delta]
line-numbers = true
#line-numbers-zero-style = white
line-numbers-minus-style = bold red
line-numbers-plus-style = bold green
file-style = omit
hunk-header-style = file
syntax-theme = OneHalfLight
[rebase]
autoStash = true
[merge]
tool = vimdiff
conflictstyle = diff3
prompt = false
[pull]
rebase = true
[color]
branch = auto
diff = auto
status = auto
ui = true
[color "branch"]
current = yellow reverse
local = yellow
remote = green
[color "diff"]
meta = yellow bold
frag = magenta bold
old = red bold
new = green bold
[color "status"]
added = yellow
changed = green
untracked = red
[alias]
logp = log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short
lg = log --graph --date-order --first-parent \
--pretty=format:'%C(auto)%h%Creset %C(auto)%d%Creset %s %C(green)(%ad) %C(bold cyan)<%an>%Creset'
lgb = log --graph --date-order --branches --first-parent \
--pretty=format:'%C(auto)%h%Creset %C(auto)%d%Creset %s %C(green)(%ad) %C(bold cyan)<%an>%Creset'
lga = log --graph --date-order --all \
--pretty=format:'%C(auto)%h%Creset %C(auto)%d%Creset %s %C(green)(%ad) %C(bold cyan)<%an>%Creset'
up = pull --rebase
branches-last-updated = branch -rv --sort=committerdate --format='%(HEAD) %(color:green)%(committerdate:relative)%(color:reset)\t%(color:magenta)%(authorname)%(color:reset)\t%(color:yellow)%(refname:short)%(color:reset)'
EOF
if [ ! -d "$HOME/.cargo" ] ; then
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --no-modify-path --default-toolchain stable --profile complete -y
fi
curl -Lo "$HOME/.tmux.conf" https://git.penguincoder.org/penguincoder/dotfiles/raw/branch/main/dot_tmux.conf
curl -Lo "$HOME/.vimrc" https://git.penguincoder.org/penguincoder/dotfiles/raw/branch/main/dot_vimrc
install -m 640 ./.zshrc "$HOME/"