My configuration files. Everything should work with WSL and macOS unless otherwise noted. This repo requires sudo privileges for the most streamlined installation, but instructions are included to get neovim working on any linux machine.
Install the following using your package manager. For example:
sudo apt install stow tmux
And clone tpm:
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
Install homebrew and run the "Next Steps" commands:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Reload the terminal. Then, install the following packages with homebrew:
brew install oh-my-posh neofetch eza fish fisher neovim fzf zoxide keychain
To set fish as the default shell and make it aware of homebrew, run the following commands:
For Linux:
echo /home/linuxbrew/.linuxbrew/bin/fish | sudo tee -a /etc/shells
fish
fish_add_path /home/linuxbrew/.linuxbrew/bin
chsh -s /home/linuxbrew/.linuxbrew/bin/fish
For macOS:
echo "/opt/homebrew/bin/fish" | sudo tee -a /etc/shells
fish
fish_add_path /opt/homebrew/bin
chsh -s /opt/homebrew/bin/fish
If fish isn't the default shell after a terminal reload, ensure it is after a full restart. If nothing else works, as a last resort, add fish
to the end of .profile
.
After a terminal reload, clone this repo into the home directory (I recommend cloning via SSH):
git clone git@github.com:dukeofjukes/dotfiles.git
From ~/dotfiles/
, run:
stow .
Reload the terminal to ensure all changes have been made.
If you have any extra commands and configurations that need to be loaded without forking/pushing to this repo, put them in ~/.extra
. This file will be untracked and can be used to add anything private. My /.config/fish/config.fish
script will invoke this using bash every time fish starts up. Here's what mine looks like:
GIT_AUTHOR_NAME="Brandon Burtchell"
git config --global user.name "$GIT_AUTHOR_NAME"
GIT_AUTHOR_EMAIL="62345978+dukeofjukes@users.noreply.github.com"
git config --global user.email "$GIT_AUTHOR_EMAIL"
git config --global --replace-all core.editor nvim
git config --global --replace-all core.excludesFile '~/.gitignore-global'
Be sure to copy-paste /.config/alacritty/alacritty.toml
from this repo (from WSL file system) to %appdata%\alacritty\
in your Windows file system.
First, ensure dotfiles are cloned:
git clone git@github.com:dukeofjukes/dotfiles.git
To install and configure neovim without sudo, run the following commands from ~
:
mkdir neovim && cd neovim
wget https://github.com/neovim/neovim/releases/latest/download/nvim.appimage
chmod u+x nvim.appimage
./nvim.appimage --appimage-extract
Then add the following line to your shell configuration (e.g., .bashrc
):
export PATH="~/neovim/squashfs-root/usr/bin:$PATH"
Then run the following command to manually create a symbolic link to the neovim config from my dotfiles:
ln -s ~/dotfiles/.config/nvim/ ~/.config/nvim
My neovim config depends on npm
to install LSPs, which often isn't installed on servers. Run the following commands to locally install npm
(credit to David Golfarb):
echo 'export PATH=$HOME/local/bin:$PATH' >> ~/.bashrc
. ~/.bashrc
mkdir ~/local ~/node-latest-install && cd ~/node-latest-install
wget -c http://nodejs.org/dist/node-latest.tar.gz | tar xz --strip-components=1
./configure --prefix=~/local
make install
wget -c https://www.npmjs.org/install.sh | sh
- Mathias Bynens and their dotfiles repository, which inspired my oh-my-posh theme and use of a private
.extra
file.