My personal dotfiles. Inspired by ThePrimagen's dotfiles.
- Fish shell (At least v3.6.0)
- GNU stow
- NotoSansMono Nerd Font on linux (Regular, Bold, Italic and Bold Italic)
- JetBrainsMono Nerd Font on mac (Regular, Bold, Italic and Bold Italic)
- glow
- delta
- eza
- bat
- rust-analyzer: Install with
rustup component add rust-analyzer
- rustfmt: Install with
rustup component add rustfmt
- Clone this repo:
git clone https://github.com/askoufis/dotfiles.git
- Set the
$STOW_FOLDERS
environment variable to a space-separated list of folders you want to install:
set -x -g STOW_FOLDERS alacritty alacritty-linux git nvim fish fish-linux tmux
-
Run
./install
-
(Optional but recommended) Run
sf
to source theconfig.fish
. This will add useful abbreviations and set up your environment correctly.
After installing dotfiles to a machine for the first time, there's a few things you need to do in order to bootstrap the plugins for various programs.
-
Install fisher
-
Run
fisher update
-
Open
nvim
. It should install lazy.nvim automatically. -
Close
nvim
, then re-open it and open some files to confirm that all plugins are installed correctly -
Clone
tpm
, but not to the usual place:
git clone https://github.com/tmux-plugins/tpm ~/.local/share/tmux/plugins/tpm
- Restart tmux, then press prefix + I to install all tmux plugins
- Run
./clean
Top-level folder names don't really matter, but in most cases they are the same as whatever the app's config folder name is.
Each top-level folder contains a .config
folder as that's my $XDG_CONFIG_HOME
folder name, and hence where all my config is actually stored.
Inside each .config
folder is the app's config folder; this folder is where the actual config file(s) are.
For example, the alacritty
top-level folder contains the following structure: alacritty/.config/alacritty/alacritty.yml
.
The exception to this is for OS-specific config.
In those cases, a suffix of -{OS}
is appended to the folder.
For example alacritty-linux
contains the linux-specific configuration for alacritty
, whereas alacritty-mac
contains the macOS-specific configuration for alacritty
.