Skip to content

fabberr/.dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

99 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

.dotfiles

This repository stores my personal configuration files for applications and tools that I use, and it's meant to be used alongside GNU Stow for ease of reproducibility.

Dependencies

Make sure the following tools are installed on your system and available for your user:

On Arch Linux (btw)

sudo pacman -Sy --needed git stow

On Ubuntu

sudo apt update && sudo apt install git stow

On Other distributions/Operating Systems

Check the official package repositories for installation instructions.

Setup

First, clone this repository locally on your machine using Git. For ease of use, prefer cloning the repo directly onto your home directory.

cd $HOME

# Clone via SSH (recommended)
git clone [email protected]:fabberr/.dotfiles.git

# Alternatively, clone via HTTPS when SSH is not set up
git clone https://github.com/fabberr/.dotfiles.git

Once cloned, you can navigate into the repo and start using Stow to install configuration packages. For a full list of packages available on this repo, see the Available Packages section below.

cd $HOME/.dotfiles

⚠️ Always ensure the stow package is the first to be stowed on fresh installs to avoid issues with unwanted files being symlinked to the target directory when the Global Ignore List is not present while stowing other packages.

I also recommended to stow the git package next.

stow stow
stow git

Available Packages

The following packages are available. For more details, check each package's corresponding README.md file.

Stow Cheat Sheet

The following commands assume that:

  1. The Stow directory is located within your home directory (i.e. The directory where you cloned this repo into is a subdirectory of $HOME);
  2. The current working directory is the Stow directory (i.e. $HOME/.dotfiles).

Creating a package

These commands will create a new Stow package named <pkgname> from an existing configuration present in the <configroot> directory.

# Create the package directory.
mkdir <pkgname>

# Optional:
# Add any required subdirectories, typically `.config/<pkgname>`
# or `.local/share/<pkgname>` (i.e. `.config/ghostty`).
mkdir -p <pkgname>/additional/nested/directories

# Optional:
# Move any existing configuration directories/files into the new package
mv <configroot> <pgkname>

Installing a package

To install a package, simply run the stow command (default -S/--stow action), passing the name of the package. This creates all the necessary symbolic links to install the specified package into the target directory.

stow <pkgname>

Uninstalling a package

Similarly, to uninstall a package, run the stow command with the -D/--delete flag. This will remove any symbolic links that Stow has previously created for the specified package from the target directory.

stow -D <pkgname>

Reference Material

NEVER lose dotfiles again with GNU Stow by typecraft.

Stow has forever changed the way I manage my dotfiles by Dreams of Autonomy.

Using GNU Stow to manage your dotfiles by Brandon Invergo.

GNU Stow manual by the GNU Project.

TODO

  • Add vscode package
    • Settings
    • Extensions (?)
  • Setup shell script
  • Add bash-preexec as a Git Submodule. Setup a Local Ignore List for it.

About

Personal configuration files for applications and tools that I use.

Topics

Resources

License

Stars

Watchers

Forks