1
0
Files
dotfiles/README.md
2025-07-12 20:55:22 +02:00

4.4 KiB

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

Development Tools

  • Rust toolchain (including rust-analyzer)
  • Neovim
  • tmux + tmux-plugin-manager
  • Terraform
  • python3-libtmux
    • Installed via apt in Debian. Remember to run brew unlink python3 to prevent conflicting Python environments.
  • 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

  1. Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup component add rust-analyzer
  1. Install Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  1. Install tmux-plugin-manager
mkdir -p ~/.tmux/plugins
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

Platform-Specific Setup

Debian Trixie

  1. 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
  1. 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

  1. Clone this repository:
git clone --recurse-submodules https://github.com/yourusername/dotfiles.git ~/dotfiles
cd ~/dotfiles
  1. Deploy configurations using Stow:
stow zsh tmux git nvim curl alacritty wallpaper
  1. Change the default shell
chsh -s /bin/zsh
  1. Set up tmux plugins:

    • Start a tmux session
    • Press C-b I to install plugins
  2. Git configuration:

    • Create a ~/.gitconfig.local file with personal config
    • See ~/.gitconfig.local.example for reference

Updating

To update the dotfiles repository and all submodules:

cd ~/dotfiles
git pull
git submodule update --init --recursive