MacOS and Debian Linux config
- Install kitty:
- MacOS:
$ curl -L https://sw.kovidgoyal.net/kitty/installer.sh | sh /dev/stdin
- Debian:
sudo apt-get install kitty
- MacOS:
- Install Git
- MacOS: Installed by default
- Debian:
$ sudo apt update && sudo apt install git
- Install Make
- MacOS: Installed by default
- Debian:
$ sudo apt install make
- Install Homebrew
- MacOS:
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- Debian: Not needed
- MacOS:
- Install zsh
- MacOS:
$ brew install zsh zsh-completions
- Debian:
$ sudo apt install zsh
- MacOS:
- Set zsh as login shell:
$ grep -q $(command -v zsh) /etc/shells || sudo sh -c "echo $(command -v zsh) >> /etc/shells"; sudo chsh -s $(command -v zsh) $(whoami)
- Install zinit:
$ bash -c "$(curl --fail --show-error --silent --location https://raw.githubusercontent.com/zdharma-continuum/zinit/HEAD/scripts/install.sh)"
- Then restart shell and run:
$ zinit self-update
- Then restart shell and run:
- Install Starship:
$ curl -sS https://starship.rs/install.sh | sh
- Install dotfiles (WARNING: DESTRUCTIVE!):
$ git clone https://github.com/jbrudvik/dotfiles.git && dotfiles/dotfiles_install
- Install C (clang)
- MacOS: Installed by default
- Debian:
$ sudo apt install clang-format clang-tidy clang-tools clang clangd libc++-dev libc++1 libc++abi-dev libc++abi1 libclang-dev libclang1 liblldb-dev libomp-dev libomp5 lld lldb llvm-dev llvm-runtime llvm libgmp-dev
- Install Rust:
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
- Install rust-analyzer (Rust LSP)
- MacOS:
$ brew install rust-analyzer
- Debian:
$ curl -L https://github.com/rust-lang/rust-analyzer/releases/latest/download/rust-analyzer-x86_64-unknown-linux-gnu.gz | gunzip -c - > rust-analyzer && chmod u+x rust-analyzer && sudo mv rust-analyzer /usr/local/bin
- MacOS:
- Install Clippy:
$ rustup component add clippy
- Install Cargo Watch:
$ cargo install cargo-watch
- Install bacon:
$ cargo install --locked bacon
- Install Go 1.21
- MacOS:
$ brew install go
- Debian:
$ GO_DOWNLOAD="go1.21.0.linux-amd64.tar.gz"; curl "https://go.dev/dl/${GO_DOWNLOAD}" -OL && sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf ${GO_DOWNLOAD} && rm ${GO_DOWNLOAD}
- MacOS:
- Install gopls (Go LSP):
$ go install golang.org/x/tools/gopls@latest
- Install staticcheck:
$ go install honnef.co/go/tools/cmd/staticcheck@latest
- Install Delve (Go debugger):
$ go install github.com/go-delve/delve/cmd/dlv@latest
- Install PostgreSQL
- MacOS:
$ brew install postgresql@15
$ brew services start postgresql@15
- Debian:
$ sudo apt-get install postgresql
$ systemctl start postgresql
- MacOS:
- Install Node.js
- MacOS:
$ brew install n && n lts
- Debian:
$ curl -L https://raw.githubusercontent.com/tj/n/master/bin/n -o n && bash n lts && npm install -g n && rm n
- MacOS:
- Install vscode-language-servers-extracted (LSP):
$ npm install -g vscode-langservers-extracted
- Install typescript-language-server (including for JavaScript)
- Install Biome
- MacOS:
$ brew install biome
- Debian:
$ npm install -g @biomejs/biome
- MacOS:
- Install PureScript:
$ npm install -g purescript
- Install Spago:
$ npm install -g spago@next
- Install purescript-language-server (PureScript LSP):
$ npm install -g purescript-language-server
- Install purs-tidy (PureScript formatter):
$ npm install -g purs-tidy
- Install Python
- MacOS:
$ brew install python && sudo ln -s $(which python3) /usr/local/bin/python
- Debian:
$ sudo apt install python3 python3-dev && sudo ln -s $(which python3) /usr/bin/python
- MacOS:
- Install Zig
- MacOS:
$ brew install zig
- Debian:
$ curl -L https://ziglang.org/download/0.11.0/zig-linux-x86_64-0.11.0.tar.xz -o zig.tar.xz && tar -xvf zig.tar.xz && sudo mv zig /usr/local/ && rm zig.tar.xz
- MacOS:
- Install zls
- MacOS:
$ brew install zls
- Debian:
$ curl -L https://github.com/zigtools/zls/releases/download/0.11.0/zls-x86_64-linux.tar.gz -o zls.tar.gz
$ tar -xvf zls.tar.gz ./bin/zls -O zls
$ chmod 755 zls
$ sudo mv zls /usr/local/bin/
$ rm zls.tar.gz
- MacOS:
- Install Haskell:
$ curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh
$ ghcup tui
- Install HLint:
$ stack install hlint
- Install Hoogle:
$ stack install hoogle
- Install ghcid:
$ stack install ghcid
- Install bash-language-server (Bash LSP):
$ npm install -g bash-language-server
- Install shfmt:
$ go install mvdan.cc/sh/v3/cmd/shfmt@latest
- Install ShellCheck
- MacOS:
$ brew install shellcheck
- Debian:
$ sudo apt install shellcheck
- MacOS:
- Install Marksman (Markdown LSP)
- MacOS:
$ brew install marksman
- Debian:
$ curl -L https://github.com/artempyanykh/marksman/releases/download/2023-07-01/marksman-linux-x64 -o marksman && chmod +x marksman && sudo mv marksman /usr/local/bin
- MacOS:
- Install Wasmer:
$ curl https://get.wasmer.io -sSfL | sh
- Install docker-langserver (Docker LSP):
$ npm install -g dockerfile-language-server-nodejs
- Install Helix:
$ git clone https://github.com/helix-editor/helix && cd helix && cargo install --locked --path helix-term && ln -s "$PWD/runtime" "$HOME/.config/helix/runtime"
- Install tmux
- MacOS:
$ brew install tmux
- Debian:
$ sudo apt install tmux
- MacOS:
- Install Prettier globally:
$ npm install -g prettier
- Install cargo b(inary)install
- MacOS:
$ cargo install cargo-binstall
- Debian:
$ curl https://github.com/cargo-bins/cargo-binstall/releases/latest/download/cargo-binstall-x86_64-unknown-linux-musl.tgz -OL && sudo tar -C "$HOME/.cargo/bin" -xzf cargo-binstall-x86_64-unknown-linux-musl.tgz && rm cargo-binstall-x86_64-unknown-linux-musl.tgz
- MacOS:
- Install delta
- MacOS:
$ brew install git-delta
- Debian:
$ cargo binstall git-delta
- MacOS:
- Install exa
- MacOS:
$ brew install exa
- Debian:
$ sudo apt install exa
- MacOS:
- Install ripgrep
- MacOS:
$ brew install ripgrep
- Debian:
$ sudo apt install ripgrep
- MacOS:
- Install bat
- MacOS:
$ brew install bat
- Debian:
$ sudo apt install bat && sudo ln -s $(which batcat) /usr/local/bin/bat
- MacOS:
- Install fzf
- MacOS:
$ brew install fzf
- Debian:
$ sudo apt install fzf
- MacOS:
- Install fd
- MacOS:
$ brew install fd
- Debian:
$ sudo apt install fd-find && sudo ln -s $(which fdfind) /usr/local/bin/fd
- MacOS:
- Install watchexec
- MacOS:
$ brew install watchexec
- Debian:
$ cargo binstall watchexec-cli
- MacOS:
- Install Caddy
- MacOS:
$ brew install caddy
- Debian:
$ sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https && curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg && curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list && sudo apt update && sudo apt install caddy
- MacOS:
- Install glow
- MacOS:
$ brew install glow
- Linux:
$ go install github.com/charmbracelet/glow@latest
- MacOS:
- Install broot
- MacOS:
$ brew install broot && broot
- Debian:
$ cargo binstall broot && broot
- MacOS:
- Install xh
- MacOS:
$ brew install xh
- Debian:
$ cargo binstall xh
- MacOS:
- Install bottom
- MacOS:
$ brew install bottom
- Debian:
$ cargo binstall bottom
- MacOS:
- Install tldr:
$ npm install -g tldr
- Install hecate:
$ go install github.com/evanmiller/hecate@latest
- Install dog
- MacOS:
$ brew install dog
- Debian:
$ curl -LO https://packages.azlux.fr/debian/pool/main/d/dog/dog_0.1.0_amd64.deb && sudo dpkg -i dog_0.1.0_amd64.deb && rm dog_0.1.0_amd64.deb
- MacOS:
- Install procs
- MacOS:
$ brew install procs
- Debian:
$ cargo binstall procs
- MacOS:
- Install dust
- MacOS:
$ brew install dust
- Debian:
$ curl -L -o dust.gz https://github.com/bootandy/dust/releases/download/v0.8.3/dust-v0.8.3-i686-unknown-linux-gnu.tar.gz && tar -xvf dust.gz && sudo mv dust-v0.8.3-i686-unknown-linux-gnu/dust /usr/local/bin && rm -rf dust-v0.8.3-i686-unknown-linux-gnu && rm dust.gz
- MacOS:
- Install duf
- MacOS:
$ brew install duf
- Debian:
$ sudo apt install duf
- MacOS:
- Install tokei
- MacOS:
$ brew install tokei
- Debian:
$ cargo binstall tokei
- MacOS:
- Install killport:
- MacOS:
$ brew install killport
- Debian:
$ cargo binstall killport
- MacOS:
- Install UFW (Uncomplicated Firewall):
$ sudo apt install ufw
$ dotfiles_update