Manage your dotfiles across multiple machines with GNU Stow and Git
Ғылым және технология
SUPPORT THE CHANNEL
💳 Patreon: / chrisatmachine
💰 Paypal: paypal.me/chrisatmachine
👕 Merch: shop.spreadshirt.com/chrisatm...
SOCIAL MEDIA
🕸️ Website: www.chrisatmachine.com
🐦 Twitter: / chrisatmachine
💻 Github: github.com/ChristianChiarulli
📺 Odysee: odysee.com/$/invite/@chrisatm...
💬 Matrix: matrix.to/#/+atmachine:matrix...
📡 Twitch: / chrisatmachine
🔌 Discord: / discord
₿ DONATE CRYPTO
Bitcoin: bc1qlw9t04evwvvlgkwkxf3cm9mfk6zgmy09sp4uja
Ethereum: 0x31202eF4Ce3d03c1B5111Bc388f937e7b17dd164
Litecoin: ltc1qmhxvmr9h3hpc226aeqj9sadwjn3gl0nh5qsvkf
Polkadot: 12pxctmVV3HBKqfpnPbgqznKHdpFbihVENH2VJU6Z5HsaD1S
Chainlink: 0x31202eF4Ce3d03c1B5111Bc388f937e7b17dd164
Bitcoin Cash: qqz56dl270wx04z4x8y42aft39ptpksjuggmel0hz6
XRP: raUaxdWMst1Eb96nACTvJTRWgtmsRQpwHk
Stellar: GD7PCULOCC4DLRJN6TJSWFTETDWL4D6URHXEBFX4B4RJQN4B5T7XZ5AU
Пікірлер: 59
Great trick. much better than bare git repo. Just one thing. stow doesn't assume HOME ( ~) directory as the target directory ( by default it is the parent of the current directory ), can be changed with --target flag. eg: dotfiles in ~/Documents/dotrcs ( and this is my pwd ) stow neovim # would symlink things relative to ~/Documents. stow --target=${HOME} neovim # will symlink relative to HOME (~).
@laughingvampire7555
Жыл бұрын
this trick is older than the bare git repo & the bare git repo was made because this trick isn't sufficient for a lot of things, bgr is superior and more flexible.
@asg8813
8 ай бұрын
@@laughingvampire7555can you elaborate, in what ways bgr is better?
Thank you for the folder explanation. I didn't really find that anywhere else and the statement "pretend you are in your home directory (parent)" made me understand how stow operates. Thank you again.
I've watched half a dozen videos on GNO Stow and you're the first to actually give a good explanation of the symlink behavior. Things finally make sense now.
Really great tutorial. Just moved my entire config over to stow.
I just asked this last stream. Awsome video. Thank you
I just put a couple days into this same exact setup before you uploaded this. great explanation as always - not a lot of good videos on stow for storing dotfiles alone, thought I was dumb for getting confused over such a simple tool
Nice and clear explanation. Thanks, Chris!
Late but thank you for teaching me about stow! Never heard of it before, love it now.
Cool viddy! Going to try it out now
Amazing video! Thank you!
Love your tutorials!
Yea stow is a game changer! If you didn't know about it I couldn't vouch for it more! Love your vids mate!
amazing. Thanks for sharing this.
I'm surprised I've never ever heard of GNU stow before. Now that I'm looking, it's available nearly everywhere - it's even in the cygwin repo! How have I never heard of GNU stow before?! I'm baffled!
keep up the good work
Did you hear about the git bare repo strategy to manage dot files? Any advantage or disadvantage over stow?
your content is excellent
Thank you manito.
I was going to say "why don't you use just one directory" and them you explained the "a la carte" pick and it made total sense. Also, I'm glad I've read the pinned comment before trying anything :D
btw you can set an alias of ls = ls -lah, it will directly tell more info about the file, including the hidden one & also show if it is a symlink or not
I just create symlinks for all directories or files to their appropriate positions and that does everything
I didn't know about these things. I do use a git repo as well. I came up with a solution where every file in the repo contains a special header on where it has to go. At the root of the repo I have a shell script that goes through all the files in the repo and extracts that header and symlinks the file to its destination. Also had its own '.ignore' file for excluding stuff I didn't want. It didn't work on some installs because I used awk to parse the header and awk code has been inconsistent across different versions on different systems. Will look into stow.
My repo isn't cloned to my home folder so tried to figure out why until I tried `stow -t $HOME */`...
Very good video. Being that stow is a linux command, I had to do a `man stow` which lead to the initial use for the software in the info pages. The use case was to keep software separated in case you had to remove software. To remove software, all you had to do was remove the stow directory. Your video seems to be missing the options for dot-files. There may be an issue with dot-files according with @hulio in the comments section. All said and done, I am looking forward in using this strategy in the future.
Is there a way to make stow copy and not symlink? So that then I can delete the repo from my home and the files don't appear like .zshrc -> Dotfiles/zsh/.zshrc ???
@kagebun287
2 жыл бұрын
This defeats some of the point. What if you add a cool new function to zsh? Don't you want that available to any machine you pull configuration on?
You dont stow nvim config ?
Thanks for making the video! Perhaps you could please clarify something? From my understanding most dotfiles expect to sit in the home directory. You're now moving them (or the symlinks to be accurate) into subdirectories. Won't the programs, zsh for instance, look into for ~/.zshrc and not ~/zsh/.config for the .zshrc file?
Do after 5 hours of trying to solve a locale error on stow i just give up. is your old setup without optimizing things(stow+git) somewhere?
fuck yeah
What's the advantages of using stow compared to just clone the dot files repo and create the links? Should be faster. If it needs to create link for all the folders it's like one line command.
@robertjmccabe
Жыл бұрын
I was thinking the same thing
@michaelphillips8952
Жыл бұрын
I think the advantages is in the options of the program which the video does not go into.
I don't like the way I've to manage my directory tree to use Stow. That's why I've got my own deploy script. It's very minimal and suckless (just under 60 lines) and it can symlink all the files i specify and also make install from git repos. I've to make few changes, then I'll release it for public use. Give it a try!
@savar95x
10 ай бұрын
Any updates?
.stow-local-ignore doesn’t seem to work
/Popcorn-time 😏😏😏
Did they fix the dot- prefix, --dotfiles option?
@michaelphillips8952
Жыл бұрын
What issues are you finding with it. I have version 2.3.1
@007arek
Жыл бұрын
@@michaelphillips8952 it seems that they didn't fix it aspiers/stow/issues/33
I tried replicating this but noticed that the stow command also symlinks the files from the .git directory. Is there a way to prevent this from happening?
Please also make video using bare method also
What terminal emulator are you using here?
Bro what happened to the video resolution?
@chrisatmachine
3 жыл бұрын
takes a minute for youtube to publish it in higher res
Mmmh ... I just use good old plain Git for that. Since I use Git anyways for other things I just use it for (some) of my dotfiles, too.
why don't just ln -s ?
Bro I have some problem If I open two or three terminal when I switch between some terminal become dark ? Sorry for my bad English
Sorry but I didn't see anything in this video, even installing and configuring stow.
Why Stow and not YADM?
✔️ how it works? ❌ why you might want to do it? Why not just `cd ~; git init`?
Use chezmoi instead, your root will thank you.
All this yelling. He teaches like Mr P Solver by yelling you to learn it. Why all this pretending directories? I don't understand why he wants to pretend. Just teach it right. Don't pretend to be here or there. It confuses your students.
He asked us if we knew he used fontconfig at work on his Apple machine, saying, "Right?" How would we know? Don't ask us if it's right or not. He was nervous and didn't explain it well. He needs to stop being fast Mr alpha male with so many opinions and just organize, relax, and take it easy. Who cares if Apple didn't make the operating system with the features you think it should have. That's your opinion. That company is making the products it wants to make, and it most likely has very good reasons for taking the paths it does even if this man disagrees. Ease the words and be more polite towards others and you won't come across so brash, opinionated, crass, and impatient. Just words to help. I know the words are harsh, but most people don't like a loud opinionated person in public. If you disagree, it's fine.
Why do I need to watch 12 minutes video about something that can be said in 3 words 😭? It creates symlink!
@chrisatmachine
2 жыл бұрын
Because this video explains a use case beyond "It creates symlink".
This would have made my life so much easier 🫠 when I decided to try out window managers last week and just get this video today on a random popup from KZread . Thanks though when I again decide to try out window managers ☺️.