3.1 KiB

Bare Git Repository

Starting from scratch

git init --bare $HOME/.dotfiles
alias dotfiles='/usr/bin/git --git-dir=$HOME/.dotfiles --work-tree=$HOME'
dotfiles config --local status.showUntrackedFiles no

Install onto a new system

The checkout command is expected to fail with a message. This is because your $HOME folder might already have some stock configuration files which would be overwritten by Git. The “BKDIR” part is a rough shortcut to move all the offending files automatically to a backup folder:

git clone --bare <git-repo-url> $HOME/.dotfiles

alias dotfiles='/usr/bin/git --git-dir=$HOME/.dotfiles --work-tree=$HOME'

dotfiles config --local status.showUntrackedFiles no

dotfiles checkout 2>&1 | egrep "\s+" | awk {'print $1'} |
  xargs -I{} sh -c "mkdir -p \$(dirname ${BKDIR}{}); mv -iv {} ${BKDIR}{}";

dotfiles checkout

Useful Commands

  • List all tracked files (from CWD):
    dotfiles ls-tree --name-only -rz main | xargs -0 $(whence lsd) -lU

Other Tools

lazygit --git-dir=$HOME/.dotfiles --work-tree=$HOME

Install remotes as subtree

  • https://www.atlassian.com/git/tutorials/git-subtree
  • Create an alias for remote repository
    • dotfiles remote add <remote-name> <URL>
  • Import remote as a single commit (squashed)
    • `dotfiles subtree add --prefix --squash
    • Note 1: Must be called from $HOME
    • Note 2: Do not start with $HOME or ~

Install recent versions of applications

Generic Tips

Github Patches

From stackoverflow.

wget https://github.com/jesseduffield/lazygit/pull/2604.patch
git apply --stat --apply 2604.patch



sudo apt-get install kitty-terminfo
sh ~/.config/kitty/installer.sh

Note: Kitty prepends its bin folder to the path. So it is more coherent/simpler to copy this behaviour into Zsh.



go install github.com/jesseduffield/lazygit@latest


mkdir -p $HOME/dev_3rd/golang
cd $HOME/dev_3rd/golang
git clone https://github.com/jesseduffield/lazygit.git
cd lazygit
go install


cd $HOME/.local/bin
curl -LO https://github.com/neovim/neovim/releases/download/nightly/nvim.appimage
chmod u+x nvim.appimage
ln -sf nvim.appimage nvim
cd $HOME
nvim --version