Hi!
[Stow - GNU Project - Free Software Foundation](https://www.gnu.org/software/stow/)
[General-purpose dotfiles utilities](https://dotfiles.github.io/utilities/)
[Inspiration](https://dotfiles.github.io/inspiration/)
- [mathiasbynens/dotfiles:](https://github.com/mathiasbynens/dotfiles)
- [xero/dotfiles](https://github.com/xero/dotfiles)
---
# YO
Yes. Start small. No grand cathedral yet, just pour the slab. 🧱
## Step 1: Make the repo
```bash
mkdir -p ~/GitHub/dotfiles
cd ~/GitHub/dotfiles
git init
```
Add a README:
```bash
nano README.md
```
Put something simple:
```md
# dotfiles
My Linux Mint configuration files, scripts, services, and workstation setup notes.
```
Then:
```bash
git add README.md
git commit -m "Initial dotfiles repo"
```
---
## Step 2: Install GNU Stow
```bash
sudo apt update
sudo apt install stow
```
Stow is the little goblin that creates symlinks for you.
---
## Step 3: Start with something low-risk
Do **not** begin with your whole `.config` folder. That’s how chaos gets a tiny crown.
Start with your Git config or bash config.
Example for `.bashrc`:
```bash
mkdir bash
cp ~/.bashrc bash/.bashrc
```
Your repo now has:
```text
~/GitHub/dotfiles/bash/.bashrc
```
Before linking it, back up the original:
```bash
mv ~/.bashrc ~/.bashrc.backup
```
Now from inside the repo:
```bash
stow bash
```
Check:
```bash
ls -l ~/.bashrc
```
You should see it pointing to your repo.
---
## Step 4: Commit it
```bash
git status
git add bash/.bashrc
git commit -m "Add bash config"
```
Now your first real dotfile is under version control. Tiny wizard door unlocked.
---
## Step 5: Add one config folder at a time
Good first candidates for you:
```text
git/
mpv/
micro/
systemd/
local-bin/
applications/
```
For example, MPV:
```bash
mkdir -p mpv/.config
cp -r ~/.config/mpv mpv/.config/
```
Then:
```bash
mv ~/.config/mpv ~/.config/mpv.backup
stow mpv
```
Check:
```bash
ls -l ~/.config/mpv
```
Commit:
```bash
git add mpv
git commit -m "Add mpv config"
```
---
## Step 6: Add your scripts
Your scripts should probably live in:
```bash
~/.local/bin
```
In the repo:
```bash
mkdir -p local-bin/.local/bin
cp ~/.local/bin/* local-bin/.local/bin/
```
Then later:
```bash
stow local-bin
```
But only do this once you’ve looked through the scripts and confirmed there’s no private stuff inside.
---
## Step 7: Make a package list
This is hugely useful:
```bash
mkdir packages
apt-mark showmanual > packages/apt-manual.txt
```
Commit it:
```bash
git add packages/apt-manual.txt
git commit -m "Add manual apt package list"
```
---
## Step 8: Add a restore notes file
```bash
nano INSTALL.md
```
Add:
````md
# Install Notes
## First steps
```bash
sudo apt update
sudo apt install git stow
````
## Clone repo
```bash
git clone https://github.com/wmprkr/dotfiles ~/GitHub/dotfiles
cd ~/GitHub/dotfiles
```
## Link configs
```bash
stow bash
stow mpv
stow micro
```
````
Commit:
```bash
git add INSTALL.md
git commit -m "Add install notes"
````
---
## I would start in this order
```text
1. README.md
2. INSTALL.md
3. bash/.bashrc
4. git/.gitconfig
5. mpv/.config/mpv/
6. micro/.config/micro/
7. systemd/.config/systemd/user/
8. local-bin/.local/bin/
9. applications/.local/share/applications/
10. packages/apt-manual.txt
```
Do **one package at a time**. Test after each one. Commit after each one.
That keeps the goblin civilized.
## tl;dr
- Create `~/GitHub/dotfiles`
- Install `stow`
- Start with `.bashrc`
- Back up the original file before linking
- Use `stow bash`
- Commit every small step
- Add configs one at a time, not all at once