5f0e53aee10174067e3a082acb37679ce8383ae3
Dotfiles
A cross-platform dotfiles repository managed with GNU Stow, compatible with both Debian Trixie and macOS. This repository contains configuration files for various development tools and applications to create a consistent environment across different systems.
Overview
This dotfiles repository uses GNU Stow to manage symlinks.
Directory Structure
dotfiles/
├── alacritty/ # Alacritty terminal emulator config
├── curl/ # curl configuration
├── git/ # Git configuration
├── nvim/ # Neovim configuration
├── scripts/ # Utility scripts
├── tmux/ # tmux configuration
└── zsh/ # ZSH shell configuration
Dependencies
Fonts
Core Tools
- Terminal: Alacritty
- Shell: ZSH
- zsh-syntax-highlighting
- zsh-autosuggestions (submodule)
- zsh-completions (submodule)
- Package Manager: Homebrew/Linuxbrew
- Dotfile Management: GNU Stow
Development Tools
- Rust toolchain (including rust-analyzer)
- Neovim
- tmux + tmux-plugin-manager
- Terraform
- python3-libtmux
- Installed via
aptin Debian. Remember to runbrew unlink python3to prevent conflicting Python environments.
- Installed via
- reattach-to-user-namespace (macOS only)
Language Servers & Linters
- Lua: lua-language-server, stylua, luacheck
- JavaScript/TypeScript: prettier, prettier-plugin-go-template
- Shell: shfmt, shellcheck, bash-language-server
- Terraform: terraform-ls, tflint
- Python: ruff
Extras
- lesspipe
- cbonsai
Installation
Prerequisites
- Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup component add rust-analyzer
- Install Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- Install tmux-plugin-manager
mkdir -p ~/.tmux/plugins
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
Platform-Specific Setup
Debian Trixie
- Install Terraform
wget -O - https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com bookworm main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install terraform
- Install Dependencies
# System packages
sudo apt install alacritty zsh tmux stow zsh-syntax-highlighting less python3-libtmux cbonsai shfmt shellcheck lua-check
# Homebrew packages
brew install neovim stylua lua-language-server bash-language-server prettier terraform-ls tflint ruff
# Node packages
npm install --save-dev prettier prettier-plugin-go-template
# Prevent Python conflicts
brew unlink python3
macOS
# Core tools
brew install curl git alacritty zsh tmux stow zsh-syntax-highlighting lesspipe cbonsai reattach-to-user-namespace
# Development tools
brew install neovim stylua lua-language-server bash-language-server prettier terraform-ls tflint ruff
# Node packages
npm install --save-dev prettier prettier-plugin-go-template
Setup
- Clone this repository:
git clone --recurse-submodules https://github.com/yourusername/dotfiles.git ~/dotfiles
cd ~/dotfiles
- Deploy configurations using Stow:
stow zsh tmux git nvim curl alacritty wallpaper
- Change the default shell
chsh -s /bin/zsh
-
Set up tmux plugins:
- Start a tmux session
- Press
C-b Ito install plugins
-
Git configuration:
- Create a
~/.gitconfig.localfile with personal config - See
~/.gitconfig.local.examplefor reference
- Create a
Updating
To update the dotfiles repository and all submodules:
cd ~/dotfiles
git pull
git submodule update --init --recursive
Description
Languages
Lua
89.3%
Shell
10.5%
Scheme
0.2%