Working with Profiles¶
Creating Profiles¶
Initial Profile¶
Created when you add your first path:
Additional Profiles¶
This creates empty directories for all managed paths.
Copy Existing Content¶
Copies current profile's content into the new profile.
Switching Profiles¶
This updates all symlinks atomically.
Verify the Switch¶
Profile: personal
~/.gitconfig -> ~/.gitconfig.profs/personal [ok]
~/.ssh -> ~/.ssh.profs/personal [ok]
Listing Profiles¶
Removing Profiles¶
Warning
This deletes all content in that profile's directories. Make sure you've backed up anything important.
Profile Discovery¶
profs discovers profiles by scanning .profs directories:
~/.gitconfig.profs/
├── work
├── personal
└── client-a
~/.ssh.profs/
├── work
└── personal # client-a missing here!
If profiles are inconsistent across paths, profs doctor will warn you.
Current Profile¶
Check Current¶
How It's Determined¶
The current profile is detected by checking where symlinks point:
If symlinks point to different profiles, you have an inconsistent state.
Populating a New Profile¶
After creating an empty profile:
Now edit files directly:
# Git config
vim ~/.gitconfig
# Generate new SSH key
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519
# Kubernetes
kubectl config use-context personal-cluster
The edits go to the personal profile directories.
Best Practices¶
Consistent Profiles¶
Keep the same profiles across all paths:
Meaningful Names¶
Use clear, descriptive names:
work/personalclient-acme/client-globexprod/staging/dev
Document Your Profiles¶
Keep notes about what each profile contains:
cat ~/.config/gigurra/profs/README.md
# work: Corporate identity, VPN keys, prod clusters
# personal: GitHub identity, hobby projects
Backup Before Deleting¶
Before profs remove-profile: