Skip to content

rattle99/dotfiles

Repository files navigation

Dotfiles

Personal dotfiles managed with raw git and symlinks. Repo structure follows GNU Stow conventions for future compatibility.

image2 image3

Setup

One-liner (clones the repo and runs setup):

bash <(curl -fsSL https://raw.githubusercontent.com/rattle99/dotfiles/master/setup.sh)

Or manually:

git clone https://github.com/rattle99/dotfiles ~/Projects/Rattle/dotfiles
cd ~/Projects/Rattle/dotfiles
chmod +x setup.sh
./setup.sh

setup.sh will:

  1. Install tools via Homebrew (macOS) or apt/dnf (Linux)
  2. Install oh-my-zsh + plugins, vim-plug
  3. Symlink configs to the correct locations
  4. Install vim/nvim plugins headlessly

The script is idempotent — safe to re-run. Existing files are backed up to ~/.dotfiles-backup/ before overwriting.

Structure

Each top-level directory is a "package" mirroring $HOME:

<tool>/
  .config/
    <tool>/
      <config files>

For example, nvim/.config/nvim/init.lua symlinks to ~/.config/nvim/init.lua.

Configs

Package Machines Description
zsh All Shell config (.zshrc, .zprofile)
ssh macOS SSH host config
kitty All Terminal emulator
zellij All Terminal multiplexer
nvim All Neovim (Lua config + Lazy.nvim plugins)
vim All Vim (vimrc + vim-plug plugins)
aerospace macOS Tiling window manager
cava All Terminal audio visualizer
i3 Linux Tiling window manager
polybar Linux Status bar
picom Linux Compositor
dunst Linux Notification daemon
micro All Terminal text editor
rofi Linux Application launcher (TODO)

Adding a new tool

Follow the Stow convention — mirror the path from $HOME:

# Example: adding yazi config
mkdir -p yazi/.config/yazi
cp ~/.config/yazi/yazi.toml yazi/.config/yazi/

Then add the symlink to setup.sh.

About

My dotfiles

Topics

Resources

Stars

Watchers

Forks

Contributors