Skip to content

Latest commit

 

History

50 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dotfiles

Personal development environment configuration for macOS (primary) and Linux.

Prerequisites

  • macOS (recommended) or Linux
  • Git
  • Xcode Command Line Tools (macOS): xcode-select --install

Quick Start

git clone --recurse-submodules https://github.com/ininit/dotfiles.git ~/.dotfiles
cd ~/.dotfiles

# Copy and edit local git identity (required)
cp git/gitconfig.local.example ~/.gitconfig.local

./setup.sh

Restart your terminal after setup so Fish becomes the default shell.

What Gets Installed

Component Description
Fish Default shell with Fisher plugins (z) and Starship prompt
Tmux Terminal multiplexer with TPM plugins
Neovim Lua config with lazy.nvim
Homebrew CLI tools and GUI apps via Brewfile
Node Volta + Bun + pnpm (global packages via scripts/npm.sh)
Git Global config, Commitizen, global gitignore
Rime 雾凇拼音 input method config (macOS, submodule)

Directory Layout

.dotfiles/
├── setup.sh           # Main installer
├── Brewfile           # Homebrew packages (declarative)
├── scripts/
│   ├── link.sh        # Symlink configs into $HOME
│   ├── brew.sh        # Install Homebrew packages
│   ├── npm.sh         # Global pnpm packages
│   ├── update.sh      # Upgrade packages & submodules
│   └── backup.sh      # Backup existing configs before linking
├── config/
│   ├── fish/          # Fish shell
│   ├── nvim/          # Neovim (lazy.nvim)
│   └── tmuxinator/    # Tmux session templates
├── git/               # Git global config
├── symlink/           # EditorConfig, ESLint, Prettier
└── tmux/              # Tmux config + TPM submodule

Scripts

Script Purpose
./setup.sh First-time install: submodules, Fish, symlinks, packages
./scripts/update.sh Update submodules, Homebrew, Fisher plugins
./scripts/backup.sh Backup existing dotfiles before manual changes
./scripts/link.sh Re-create symlinks only

Neovim

Plugin manager: lazy.nvim. Run :Lazy to manage plugins.

Key LSP servers (via Mason): lua_ls, ts_ls, jsonls
Formatting/linting: Prettier + ESLint via none-ls.nvim

Git Configuration

Personal identity is stored in ~/.gitconfig.local (not committed):

cp git/gitconfig.local.example ~/.gitconfig.local
# Edit name and email

Optional proxy config: ~/.gitconfig_proxy
Optional Fish proxy: config/fish/functions/proxy.fish (gitignored)

Updating

cd ~/.dotfiles
git pull --recurse-submodules
./scripts/update.sh

Submodules

Initialize manually if cloned without --recurse-submodules:

git submodule update --init --recursive

Notes

  • Node version management uses Volta only (NVM removed).
  • Homebrew packages are declared in Brewfile; run brew bundle dump to export changes.
  • exa has been replaced with eza.
  • Neovim migrated from Packer to lazy.nvim; deprecated plugins updated (lua_ls, ts_ls, none-ls.nvim, copilot.lua).

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages