/dotfiles

Modular :package: dotfile repo that uses dotbot profiles to make bootstrapping :zap: lighting fast, on (almost) any env.

Primary LanguageVim ScriptMIT LicenseMIT

Matthew's ⚡ bootstrappable dotrepo

TODO:

  • [] diff-so-fancy -> delta
    • Delta is nicer to config / use IMO
  • [] bash -> fish migration

Features

  • Uses dotbot for bootstrapping installation
  • Breaks configuration for each program/component into standalone configs
  • Provides:
    • non-destructive configuration + aliases for git
    • pretty, usable .tmux config, supporting tmux >=3
    • SpaceVim config & bootstrap
      • Fluid navigation between vim splits & tmux panes
    • fzf support built-in to profiles
    • Bootstrap of various z jumpers, zoxide, z.lua Fallover support for various implementations of z jumper,
      • From fastest/less portable (zoxide), to slowest/most portable
      • try zoxide->z.lua
  • Profile specific startup scripts can be added ad-infinitum using run.d, for flexible additions on host-specific basis.
    • .profile sources ~/.config/dotfiles/run.d/*
    • Eg: For my HPC host:
      • module_rc & hpc_aliases are symlinked into run.d
      • At start of bash sessions:
        • all of my environment modules are loaded
        • My most useful aliases for job submission, & other HPC tasks are defined.
  • Support for X11 clipboard sharing in:
    • vim, tmux, visidata

Demo

demo

Usage

To install a profile, do the following:

cd bootstrap

./install-profile ubuntu

Details

The installation mechanisms have been chosen to eliminate redundancy between configurations across separate machines.

Common configurations are applied when needed, and diverging configuration are applied as needed.

The git configuration has been written to be intentionally non-destructive - Your global .gitconfig will be preserved, and a new file providing further configuration is linked into ~/.config/dotfiles/git/config , and included by git using git config --global include.path ~/.config/dotfiles/git/config

My personal dotfile submodules for this repo have been tagged with the github topic dotbot and can be found here.

bootstrap/install-profile automatically recursively fetches submodules, don't be alarmed.