Skip to content

DrianeDiojanPerez/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

112 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏠 My Dotfiles

⚠️ Important: This dotfiles repository requires GNU Stow to manage symlinks properly.

📋 Prerequisites

Before using these dotfiles, you must install GNU Stow on your system. Follow the installation instructions for your Linux distribution below.


🚀 Installing GNU Stow

🔵 Arch Linux / Manjaro

sudo pacman -S stow

🟠 Ubuntu / Debian / Pop!_OS / Linux Mint

sudo apt update
sudo apt install stow

🔴 Red Hat / Fedora / CentOS / Rocky Linux

Fedora:

sudo dnf install stow

🟣 NixOS

Add to your configuration.nix:

environment.systemPackages = with pkgs; [
  stow
];

📦 Universal (from source)

If stow isn't available in your package manager:

# Download and compile from source
wget https://ftp.gnu.org/gnu/stow/stow-latest.tar.gz
tar -xzf stow-latest.tar.gz
cd stow-*
./configure
make
sudo make install

🛠️ Usage

1️⃣ Clone the repository

git clone https://github.com/yourusername/dotfiles.git ~/code/dotfiles
cd ~/code/dotfiles

2️⃣ Stow your desired configurations

# Stow individual packages
stow -t ~ vim
stow -t ~ git
stow -t ~ zsh
stow -t ~ alacritty

# Or stow everything at once
stow -t ~ */

3️⃣ Verify installation

# Check if symlinks were created correctly
ls -la ~ | grep -E '\->'

📁 Repository Structure

dotfiles/
├── alacritty/
│   └── .config/
│       └── alacritty/
│           └── alacritty.toml
├── git/
│   └── .gitconfig
├── nvim/
│   └── .config/
│       └── nvim/
│           ├── init.lua
│           └── lua/
├── tmux/
│   └── .tmux.conf
├── vim/
│   └── .vimrc
└── zsh/
    ├── .zshrc
    └── .zprofile

🔧 Managing Dotfiles

➕ Adding new configurations

# Move existing config to dotfiles
mkdir -p ~/code/dotfiles/newapp/.config/
mv ~/.config/newapp ~/code/dotfiles/newapp/.config/

# Stow the new configuration
cd ~/code/dotfiles
stow -t ~ newapp

❌ Removing configurations

# Unstow (removes symlinks)
stow -t ~ -D vim

# This will remove the symlinks but keep the files in dotfiles/

🔄 Updating configurations

# Restow (useful after adding new files)
stow -t ~ -R vim

🔍 Dry run (see what would happen)

stow -t ~ -n vim

🎯 Why GNU Stow?

  • 🔗 Symlink Management: Creates and manages symbolic links automatically
  • 🏠 Clean Home: Keeps your home directory organized
  • 📦 Modular: Install only the configurations you need
  • 🔄 Version Control: Easy to track changes with git
  • 🚀 Portable: Works across different machines and distros

⚠️ Important Notes

  • Always backup your existing configurations before stowing
  • Use stow -n (dry run) to preview changes before applying
  • The -t ~ flag is required since dotfiles aren't in your home directory
  • If you get "existing file" conflicts, move or backup the conflicting files first

🆘 Troubleshooting

Conflict errors

# If you get "existing file" errors, backup and remove conflicts
mv ~/.vimrc ~/.vimrc.backup
stow -t ~ vim

Check stow version

stow --version

Verify stow installation

which stow
stow --help

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.


Happy dotfiling! 🎉

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors