Skip to content

nemoinho/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dotfiles

☝️
This is only a mirror from my personal git-server.
I use stow to sync my dotfiles between the OS and this repository.

Requirements

Install git and stow if not already present on the system.

Install via apt on Debian/Ubuntu
sudo apt install git stow
Install via brew on macos
brew install git stow

Setup and usage

☝️
My dev-machine setup will install and setup these dotfiles automatically. So, the only thing I’ve to care about is the stow . --adopt command and to commit changes to the VSC.

Checkout this repository into ~/dotfiles and apply run stow to sync the dotfiles.

The directory should be located directly in the HOME directory. Otherwise stow needs an additional flat -t $HOME every time, which is a bit annoying!
git clone git@gitea.nehrke.info:nemoinho/dotfiles.git ~/dotfiles # (1)
cd $_
stow --adopt . # (2)
[ -n "$(git status --short)" ] && git restore . # (3)
  1. Clone this repository

  2. Create symlinks for all files managed by this repository, so that the file in the $HOME points to the file in this repository

  3. In case of differences between existing files and the ones from this repository keep the version of the repository

Removing files

If a file is going to be removed make sure to remove the linked file as well. Otherwise we end up with a bunch of dangling files in $HOME!

To automatically delete these dangling links we can use a git-hook as the following. That will remove the links pre-commit.

Setup git-hook to automatically remove links to deleted files
cat <<EOF > .git/hooks/pre-commit
#!/usr/bin/env bash
set -e
git status --short | grep -E '^D|^R' | sed 's/...//;s/ -> .*//' | while read f
do
  test -L "\$HOME/\$f" && rm "\$HOME/\$f"
done
EOF
chmod +x .git/hooks/pre-commit

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published