Skip to content

askoufis/dotfiles

Repository files navigation

dotfiles

My personal dotfiles. Inspired by ThePrimagen's dotfiles.

Requirements

Installation

  1. Clone this repo:
git clone https://github.com/askoufis/dotfiles.git
  1. 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
  1. Run ./install

  2. (Optional but recommended) Run sf to source the config.fish. This will add useful abbreviations and set up your environment correctly.

Bootstrapping

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.

  1. Install fisher

  2. Run fisher update

  3. Open nvim. It should install lazy.nvim automatically.

  4. Close nvim, then re-open it and open some files to confirm that all plugins are installed correctly

  5. Clone tpm, but not to the usual place:

git clone https://github.com/tmux-plugins/tpm ~/.local/share/tmux/plugins/tpm
  1. Restart tmux, then press prefix + I to install all tmux plugins

Cleanup

  1. Run ./clean

Folder structure

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.