This is mine, it probably doesn't fit your desires :-)
on Arch, simply run:
yay -S bat chezmoi eza fd fish fzf git go gojq jaq jq kitty neovim nodejs npm python-pip python-pynvim riff ripgrep starship tmux tokei tokei ttf-fira-code yay yq
Canonical being a pain in the ass, you have to do this:
sudo add-apt-repository ppa:fish-shell/release-3
sudo add-apt-repository ppa:neovim-ppa/unstable
sudo add-apt-repository ppa:git-core/ppa
sudo add-apt-repository ppa:longsleep/golang-backports
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - # gotta love nodesource
sudo apt install fish fonts-firacode git golang-go gojq jq kitty neovim nodejs python3-pip ripgrep tmux
python3 -m pip install pynvim
# Install Python "binaries" in pipx
python3 -m pip install --user pipx
python3 -m pipx ensurepath
pipx install yq
# Build remaining packages that are not available on Ubuntu repos..
cargo install --locked bat eza fd-find hyperfine jaq riffdiff ripgrep starship tokei
go install github.com/junegunn/fzf@latest
Chezmoi is managing all of these configs, initialize it like so:
# assuming an ssh-key is setup
sh -c "$(curl -fsLS get.chezmoi.io/lb)" -- init --apply [email protected]:magnuslarsen/dotfiles.git
# or preinstalled:
chezmoi init --apply [email protected]:magnuslarsen/dotfiles.git
Tmux also has a couple of plugins that need to be installed:
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
# press CTRL+B I
Simply run:
rm ~/.config/fish/functions/fzf_configure_bindings.fish && fisher update && chezmoi update --force
Some of this config, besides the original FiraCode, requires FireCode NerdFont to work properly, it can be fetched like so:
mkdir -p ~/.local/share/fonts && \
wget -q "https://github.com/ryanoasis/nerd-fonts/releases/latest/download/FiraCode.tar.xz" -O - |\
tar --wildcards -xJC ~/.local/share/fonts/ "*.ttf" && \
fc-cache -f && echo "Finished downloading Nerd Font"
For PyLSP, additional tools needs to be installed, which is not done by Mason:
:PylspInstall python-lsp-ruff ruff