Skip to content

gubasso/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gubasso's dotfiles

My personal dotfiles, managed with GNU Stow.

General Info

Config file headers with text ASCII art (e.g. Fish config):

toilet -f future -F border "Fish config"

Overview

Managing your shell and application configurations (“dotfiles”) with Stow allows you to:

  • Keep configurations versioned in Git.
  • Easily deploy consistent setups across machines.
  • Modularize per-application configs.

This guide covers both non-root (“user”) and root (“system”) setups.

Prerequisites

  1. Git: for cloning this repo.

  2. GNU Stow:

     # Debian/Ubuntu
     sudo apt update
     sudo apt install stow
    
     # Arch Linux
     sudo pacman -Syu stow
    
     # macOS (Homebrew)
     brew install stow

Installation

1. Clone the Repository

git clone https://github.com/gubasso/dotfiles.git ~/.dotfiles
cd ~/.dotfiles

2. Stowing Packages (User-Level)

  • Dry run to preview changes:

    stow -nvt ~ *
    • -n/--no : show what would happen (don't apply).
    • -v/--verbose : detailed output.
    • -t ~/--target=~ : where to create symlinks.
    • * : all packages (every directory).
  • Apply symlinks:

    stow -vt ~ *

Usage Examples

  • Link a single package (e.g., Alacritty):

    stow -vt ~ alacritty

    This creates symlinks from:

    ~/.dotfiles/alacritty/.config/alacritty/*.yml → ~/.config/alacritty/*.yml
    
  • Link multiple packages:

    stow -vt ~ bash nvim git

System-Level (Root) Setup

When you need to manage system configs (e.g., services in /etc/systemd), perform Stow under root:

Stow to /:

sudo stow -vt / systemd_root bin_root shell_root
  • -t / : target is the filesystem root.

  • --adopt : (optional) move existing files into the repo before linking:

    sudo stow -vt / --adopt systemd_root

Real-World Examples

Based on your repository tree:

  • Alacritty:

    cd ~/.dotfiles
    stow -vt ~ alacritty
  • Custom Scripts (bin):

    stow -vt ~ bin
  • User Shell Configs (bash, zsh):

    stow -vt ~ bash zsh
  • Systemd Services (systemd_root):

    sudo stow -vt / systemd_root
  • Root Shell Environments (shell_root):

    sudo stow -vt / shell_root

Troubleshooting

  • Conflict Detected: If Stow reports existing files not owned by it, you can:

    stow -nvt ~ --adopt bash

    to move originals into ~/.dotfiles/bash/ then retry.

  • Inspecting Symlinks:

    find ~/.config -maxdepth 2 -type l

References

About

My personal dotfiles

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published