Skip to content

xorsal/dotfiles

Repository files navigation

Dotfiles

Personal configuration files managed with GNU Stow.

Quick Start

# Clone
git clone git@github.com:xorsal/dotfiles.git ~/dotfiles
cd ~/dotfiles

# Install everything
./install.sh

# Or install specific packages
stow tmux

Packages

Package Description
tmux Tmux configuration with session persistence, dev layouts, worktree support
claude Claude Code settings, aliases, and statusline

How Stow Works

Stow creates symlinks from the dotfiles repo to your home directory. Each top-level directory is a "package" that can be installed independently.

~/dotfiles/tmux/.tmux.conf  →  ~/.tmux.conf
~/dotfiles/tmux/.tmux/      →  ~/.tmux/

Install a package

cd ~/dotfiles
stow tmux

Uninstall a package

cd ~/dotfiles
stow -D tmux

Reinstall (uninstall + install)

cd ~/dotfiles
stow -R tmux

Dependencies

Required

# Ubuntu/Debian
sudo apt install stow

# macOS
brew install stow

# Arch
sudo pacman -S stow

Tmux Package

  • tmux 3.0+
  • TPM - Tmux Plugin Manager (auto-installed)

Claude Package

The Claude package sets up symlinks for Claude Code configuration:

~/.claude/
├── settings.json  → dotfiles/claude/.claude/settings.json  (personal settings)
├── aliases.sh     → dotfiles/claude/.claude/aliases.sh     (shell aliases)
├── statusline.sh  → dotfiles/claude/.claude/statusline.sh  (statusline config)
├── agents/        → rafa/.claude/agents/                   (shared agents)
└── commands/      → rafa/.claude/commands/                 (shared commands)

workspace/.claude  → rafa/.claude                           (project config)
  • Personal settings (dotfiles): settings.json, aliases.sh, statusline.sh
  • Project config (rafa): agents, commands, and workspace-level .claude

First-Time Setup

# 1. Clone the repo
git clone git@github.com:xorsal/dotfiles.git ~/dotfiles

# 2. Run install script
cd ~/dotfiles
./install.sh

# 3. Start tmux and install plugins
tmux
# Press: ` then I (capital i)

Tmux Quick Reference

See tmux/.tmux/TMUX_GUIDE.md for full documentation.

Key Bindings (Prefix: backtick `)

Keys Action
` d Detach
` v Split vertical
` s Split horizontal
` D Dev layout
` T Test layout
` w Session picker
Ctrl+hjkl Navigate panes
Alt+h/l Previous/next window

Helper Commands

tmux-help    # Show keybindings
tmux-fix     # Fix common issues

Adding New Packages

  1. Create a directory for the package:

    mkdir -p ~/dotfiles/newpkg
  2. Add config files mirroring home directory structure:

    # For ~/.config/foo/config.yml
    mkdir -p ~/dotfiles/newpkg/.config/foo
    cp ~/.config/foo/config.yml ~/dotfiles/newpkg/.config/foo/
  3. Install with stow:

    cd ~/dotfiles
    stow newpkg

Troubleshooting

"CONFLICT: file already exists"

Stow won't overwrite existing files. Back them up first:

mv ~/.tmux.conf ~/.tmux.conf.backup
mv ~/.tmux ~/.tmux.backup
stow tmux

"stow: command not found"

Install stow (see Dependencies above).

Symlinks point to wrong location

Make sure you run stow from the dotfiles directory:

cd ~/dotfiles
stow tmux

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published