Skip to content

erichlf/dotfiles

Repository files navigation

Dotfiles

A curated set of dotfiles and scripts to bootstrap a comfortable, modern dev environment. It includes shell configuration (zsh), a Lua-based Neovim setup, and a small set of helper scripts to install prerequisites and symlink everything into place.


What’s inside

  • home/ — Files intended to live directly under $HOME (e.g., shell RCs).
  • config/ — Files for $HOME/.config (e.g., nvim/ for the Neovim config written in Lua).
  • scripts/ — Helper/installer scripts used during setup.
  • install.sh — One-shot installer that orchestrates the setup.
  • Extras:
    • guake.conf (terminal), vimium.json (browser Vim keybinds), resticprofile.toml, sanoid.conf (backup/snapshots).

The repository is primarily Lua and Shell, reflecting the Neovim config plus installer scripts.


Quick start

Requirements: git and a POSIX-like environment (Linux/macOS). The installer will try to install anything else it needs (e.g., zsh, Neovim) depending on your system.

# clone
git clone https://github.com/erichlf/dotfiles.git ~/.dotfiles
cd ~/.dotfiles

# run the installer
./install.sh

What the installer typically does:

  1. Detects your OS/distro.
  2. Installs or updates core tools (zsh, neovim, etc.) as needed.
  3. Creates symlinks from the repo to your $HOME and $HOME/.config.
  4. Optionally applies terminal/editor/browser extras.

Prefer to do things manually? See Manual linking below.


Manual linking (advanced)

If you’d rather link files yourself:

  1. Copy or symlink anything under home/ into $HOME.
  2. Copy or symlink anything under config/ into $HOME/.config.
  3. Launch a new shell to pick up zsh config; start nvim to let plugins finish bootstrapping.

Tip: If you use GNU Stow, you can mirror home/ and config/ into place cleanly (not required by the repo, but convenient).


Updating

cd ~/.dotfiles
git pull
# re-run the installer if you want it to reconcile changes
./install.sh

Uninstalling / reverting

There is no method right now to uninstall. However, you can remove symlinks you created and/or restore your previous dotfiles backup. If you used Stow, stow -D <package> will reverse those links. To remove packages it would be more of a manual operation by reading what pacakges were installed and then uninstalling them.


Repository layout

dotfiles/
├─ home/             # items that should live directly in $HOME
├─ config/           # items for $HOME/.config (e.g., nvim/)
├─ scripts/          # installer and helper scripts
├─ install.sh        # main entry point for setup
├─ guake.conf        # terminal config (optional)
├─ vimium.json       # browser keybindings (optional)
├─ resticprofile.toml# restic profiles (optional)
├─ sanoid.conf       # zfs-auto-snapshot profiles (optional)
└─ private/          # local-only overrides (not tracked)

(See the repo root for the actual files and directories.)


FAQ

Q: Can I pick and choose? Yes. Run source scripts/utils.sh and then run the commands you'd like to run.

Q: macOS or Linux? Both are supported; but currently install.sh focuses on android (termux), cachyos, and ubuntu.

Q: What keys are supported in the yaml files?

  • apt-get, apt: uses apt-get to install packages
  • pacstall: uses pacstall to install packages, should have extras: install_chaotic prior
  • pac: uses pacman to install packages
  • yay: uses yay to install packages, should have extras: install_yay prior
  • pkg: uses termux pkg to install packages
  • base-ubuntu: uses apt-get to install packages as a first step
  • base-arch: uses pacman to install packages as a first step
  • base-phone: uses termux pkg to install packages as a first step
  • extras: run aliases that are in the environment (sourced from utils.sh) by name
  • final-ubuntu: uses apt-get to install packages as a final step
  • final-arch: uses pacman to install packages as a final step
  • final-phone: uses termux pkg to install packages as a final step
  • final-extras: runs aliases that are in the environment (sourced from utils.sh) by name as a final step

License

Open source—see the LICENSE file in the repo.

About

dotfiles including zsh and nvim configs, plus install scripts.

Topics

Resources

License

Stars

3 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors