fnune / dotfiles

My dotfiles, built to work with GNU stow in a ~/.dotfiles directory

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Dotfiles

Install on Arch Install on Debian

My dotfiles, built to work with GNU stow in a ~/.dotfiles directory.

Installation

The main dependency is GNU stow. Install it using your distribution's package manager.

sudo pacman -S stow curl wget desktop-file-utils
sudo apt-get install stow curl wget build-essential desktop-file-utils

Then clone this repository into a directory that's directly under ~, for example:

git clone git@github.com:fnune/dotfiles.git ~/.dotfiles

Then symlink the packages you need:

cd ~/.dotfiles
stow zsh fzf git tmux

Finally, you can run the install script, which will bootstrap dependencies for stowed packages only. For example, it will install fzf and tmux if you've stowed their packages.

~/.dotfiles/install

Requirements of the install script: git and other basics such as bash, sudo and wget.

Interaction between packages

Some packages source files in drop-in directories, inspired by systemd drop-in units. Here's a summary of them:

  • The zsh package creates a ~/.zsh/includes directory in which other packages can add files. They are sourced at the end of ~/.zshrc.
  • The dependencies package creates a ~/.dependencies/includes directory. Files in it are run from the install script and should be executable.

For example, after stowing some packages, these directories look like this:

~ ls ~/.zsh/includes
fzf  fzf-theme  volta
➜  ~ ls ~/.dependencies/includes
antigen  arch  base16-fzf  base16-shell  fzf  tpm  debian  volta

For example, the fzf package adds files to both the zsh and dependencies drop-in directories:

fzf
├── .dependencies
│   └── includes
│       ├── base16-fzf
│       └── fzf
└── .zsh
    └── includes
        ├── fzf
        └── fzf-theme

GNU stow will take care of symlinking partially without overwriting the .dependencies and .zsh directories with those from other packages.

About

My dotfiles, built to work with GNU stow in a ~/.dotfiles directory

License:MIT License


Languages

Language:Lua 50.9%Language:Shell 48.7%Language:Nix 0.3%Language:Vim Script 0.1%