Stow has forever changed the way I manage my dotfiles

  Рет қаралды 281,217

Dreams of Autonomy

Dreams of Autonomy

Күн бұрын

Пікірлер: 565
@InsaneFirebat
@InsaneFirebat 11 ай бұрын
wtf are dotfiles?
@dreamsofautonomy
@dreamsofautonomy 11 ай бұрын
Files that start with a . in their name! They're used for the configuration of applications and software inside of a *nix based operating system (linux, macOS, unix, and BSD)
@NostraDavid2
@NostraDavid2 11 ай бұрын
As said, dotfiles are used for configuration, but the dot at the start also makes them hidden by default, which is the actual use of the dot. In windows, your files have attributes (read only, hidden, etc) that you can enable via the properties. In Linux/Mac OS you use this feature by adding a dot at the start of the name.
@7thAttempt
@7thAttempt 11 ай бұрын
😂
@NickCombs
@NickCombs 11 ай бұрын
@@dreamsofautonomy ah yes, the garbage that shows up in my shared directories
@merlin9702
@merlin9702 11 ай бұрын
@@NickCombs Unless it's a .DS_Store file, it's most likely not garbage though
@bertvv
@bertvv 10 ай бұрын
20+ years Linux user here, never heard of Stow before... I will definitely check this out! Thanks for making this video.
@AliciaSykes
@AliciaSykes 11 ай бұрын
Probably the best overview of Stow I've ever seen!
@dreamsofautonomy
@dreamsofautonomy 11 ай бұрын
Thank you!
@trunejtral
@trunejtral 11 ай бұрын
I love how you explain how to push things to a remote to people that care about dotfiles management.
@trunejtral
@trunejtral 11 ай бұрын
Though it could have started with turning the computer on!
@MrJohnBBQ
@MrJohnBBQ 8 ай бұрын
@@trunejtral you never know. there could be kids watching! :D
@westlestrest6442
@westlestrest6442 8 ай бұрын
for real 😂
@germanrinaldi7830
@germanrinaldi7830 11 ай бұрын
No more bash for loops to copy files and create their symlinks! This is soooo good! Thank you!
@masterflitzer
@masterflitzer 5 ай бұрын
git bare repo also solved this problem and you don't even need symlinks
@therealslimaddy
@therealslimaddy 11 ай бұрын
I used to perform ‘ln -s’ multiple times This is useful ! Thank you for making the video on introducing stow and how to use it.
@vysokinskyi
@vysokinskyi 10 ай бұрын
This video is pure gold. It's the first time I've heard about stow and it seems like a great solution to the dot files problem. You keep to to the point and actually address the few common issues. Thank you!
@dreamsofautonomy
@dreamsofautonomy 10 ай бұрын
Glad you enjoyed it!
@LudoTechWorld
@LudoTechWorld 11 ай бұрын
I set up stow 4 or 5 years ago (however I used a sub folder per application, it's a lot cleaner and modular imo) and never had to touch it ever again, it just works. Just need to git push when I change something in a config file. Probably one of the most time saving tool I ever used.
@JamesHounshell
@JamesHounshell 11 ай бұрын
Mine is the same way. I was starting to think I did something wrong. The `stow .` can be misleading. I have a Makefile with several helpful commands for laptop initial setup including a "stow" target that just calls stow on all the subfolders/applications.
@GPandzik
@GPandzik 11 ай бұрын
I haven't used Stow before, but I have found it useful to write a `.git/hooks/post-commit` script that runs `git push origin ${branch}` to just do a `git push` every time I successfully create a commit. It's not the right approach for *every* use-case, but I'm forgetful, and this is an easy and simple enough Git use-case that you're unlikely to get yourself into trouble. Git hooks are awesome and waaay underappreciated for the intermediate-to-power-users. Just, uh, be careful with them. Like most things with Git, there aren't a lot of safeties built in, and it's easy to lose a finger if you're not watchful. 😂
@fire17102
@fire17102 11 ай бұрын
Hey can you guys elaborate please? I wanna try out stow and I get the sense I'll also like to have sub folder & cleaner setup. Do you mean you have a different repo for each dotApp? Or you do have one but it's not mapped one-to-one on your home folder? Would love to understand what you guys did
@LudoTechWorld
@LudoTechWorld 11 ай бұрын
hey @@fire17102 , I have one git repo but one folder per dotApp, so I can restore only one for example. The process is easy but difficult to explain in a comment, I found this video kzbin.info/www/bejne/fHnYqK2YpbmHpZIsi=CMDaZ0dP3Hzs1pp4 that explains the process (it has also the explanation in a blog post linked in the comment section.
@fire17102
@fire17102 11 ай бұрын
@@LudoTechWorld Thanks I'll take a look! 💛😇🦄 All the best!
@aqezzz
@aqezzz 11 ай бұрын
Stow can also take a target directory (-t TARGET) so if you don’t want to keep your dotfiles repo directly under your home directory you can use that. For me I would do “stow -t /home/username .” From the dotfiles repo which could be anywhere.
@samifouad
@samifouad 11 ай бұрын
that’s interesting. i’m curious how I would manage a config file for any program I install. they would have their config files in /etc or somewhere. how do permissions factor in with stow?
@RufianEmbozado
@RufianEmbozado 11 ай бұрын
​@@samifouad You could do the same with the root account. I'm not that sure about all the implications, though.
@spagettech
@spagettech 11 ай бұрын
Thanks, they makes things much more convenient
@scialomy
@scialomy 11 ай бұрын
Here is my stow command to put in a script or a Makefile: `stow --verbose --restow --target=$HOME --dotfiles $(dirname $0)`
@patricknelson
@patricknelson 11 ай бұрын
Gosh, this is so simple and straightforward, plus it’s way better than what I was doing: I had a similar folder under my $HOME but I also had a bash script that you had to run which would basically rsync. Sort of a facepalm moment realizing you could just symlink _and_ automate the symlink process w/ just having stow.
@milansatters8750
@milansatters8750 11 ай бұрын
Just stumbled upon this seemingly very new channel, seems like some awesome and high quality content. Very curious to see where you’re going with this channel, great videos so far.
@Triavanicus
@Triavanicus 11 ай бұрын
You can also use stow to keep your app configurations separate, like say if you have a tmux config for your local config, and a tmux config that is slightly different for a server, you can put all of the files in two separate folders, then instead of specifying . You use the other folder name like `stow tmux-server` or `stow tmux-local`
@klfjoat
@klfjoat 10 ай бұрын
I do this all the time. And I have tricks to tell if I'm on a server or desktop so my scripts Stow the correct version. Or I have a folder with a host name in it (tmux-bartleby if the host name was bartleby).
@vortex2210
@vortex2210 9 ай бұрын
@@klfjoat Can you please elaborate on the structure and commands used?
@klfjoat
@klfjoat 9 ай бұрын
@@vortex2210 While I appreciate the interest, this isn't exactly the Unix StackExchange. 😜 So I'll just give you one thing I do. I use a script to run all of the `stow` commands on a new host. And I will get the hostname with `hostnamectl status --static`, using that to stow hostname-specific subdirs.
@BekhzodIsmoiliy
@BekhzodIsmoiliy 7 ай бұрын
Or you can use git branches :)
@klfjoat
@klfjoat 7 ай бұрын
@@vortex2210 It's difficult to get specific in YT comments. But in general the script pulls info to figure out if it's a server, desktop, or laptop. Then goes down the dotfiles subdir names. It stows everything without a dash, it then stows everything with a "-desktop" if on a desktop, "-laptop" if on a laptop, etc. Then it pulls hostname and stows "-bartleby" if hostname is "bartleby". General to specific. For certain configs that can't reasonably be split like that (for example, I use topgrade to auto upgrade everything and the config file doesn't support includes), I use the same server/desktop/laptop detection function in my manual upgrade scripts to skip running where they shouldn't.
@thibtube5347
@thibtube5347 9 ай бұрын
thx for the video. I have been using stow for several years to manage my dotfiles. I advise you to consider the following options: - R || -- restow : allows you to delete all existing links and recreate all links. As iniquated in the manual: « This is useful for trimming obsolete symbolic links of the target tree after updating -the software in a package- - > your git dotfiles repo. -- dotfiles: All files starting with « dot- » will be linked by the replacement « dot- » by « » ".". Example dot-zshrc ->.zshrc -- ignore: does not take into account the indicated paths, practical for not using configurations depending on the type of machine (workstation or server).
@BLRMalcolm
@BLRMalcolm 11 ай бұрын
I was managing my own symlinks for this time. I though that stow was more complex but I was wrong. Thank you for this amazing and pleasant video!!
@MikeWasteland
@MikeWasteland 9 ай бұрын
Very nice explanation, and channel! Keep up the good work! I would love to see a video showing your tmux customization.
@klfjoat
@klfjoat 10 ай бұрын
I started using Stow a decade ago, and it changed everything for me! Pro tip: If you do have more than one machine, you might require some dotfiles to have different content. Or you might not use all the same tools on every machine. Create different subdirs of your `dotfiles` dir, and use `stow subdir`. I will leave as an exercise for advanced users a script that can run on a new machine and auto-stow subdirs based on what that script can learn from its environment. Bonus points if it is idempotent and can install dependencies like git on its own.
@touristtam
@touristtam 6 ай бұрын
If only there was more than 24h in a day.... 😂
@oberfeldwedler9999
@oberfeldwedler9999 6 ай бұрын
You can also create a seperate branch in the git repo.
@klfjoat
@klfjoat 6 ай бұрын
@@oberfeldwedler9999 Branch management for this doesn't scale as well for me. I want to be able to see everything all at once.
@KingZero69
@KingZero69 5 ай бұрын
you can literally just "ln -s" bro 🤡😏
@klfjoat
@klfjoat 5 ай бұрын
@@KingZero69 Tell us you didn't watch the video and haven't read the manpage for stow without telling us. 🤣 Go back to Windows.
@NinaSoniq
@NinaSoniq 6 күн бұрын
I only started managing my dotfiles via git a couple of months ago. Never heard of stow before. So far I've been doing symlinks manually or via scripts. I'm definitely going to try stow.
@ypucandeleteit
@ypucandeleteit 5 ай бұрын
I was super skeptical that the symlinks will make something go Boom but so far (the last 10 mins) this is working like a dream! Thank you for the top quality content!
@moonmaan
@moonmaan 11 ай бұрын
I was about 24 hours from setting up a bare repo like every other tutorial, and then this came out! Perfectly timed!
@lunchbox1341
@lunchbox1341 7 ай бұрын
This is so useful, I never even heard of stow before! Dotfiles clutter the home directory so much and this is by far the most convenient way to solve this issue, thanks.
@KaiDoesMineCraft10
@KaiDoesMineCraft10 11 ай бұрын
Found out about stow a few months back when trying to manage my dotfiles Hope this video spreads its utilization
@Jebusankel
@Jebusankel 7 ай бұрын
I heard about stow forever ago but didn't know how to use it. I read some of the official docs but my eyes glazed over and I gave up. This video convinced me to give it a go.
@verb0ze
@verb0ze 10 ай бұрын
This is a neat find! I had rolled out my own script to sort of do this, but I'd manually have to add any new tool to that script. This automates that portion. Thanks for sharing, will give it a go
@dezwujie
@dezwujie 11 ай бұрын
Just fighting with how to add some more organization to my dotfiles. For once, the algorithm did not lead me down a rabbit hole of distraction- it read my mind. Thank you!
@starmechlx
@starmechlx 11 ай бұрын
holy shit. why is this not talked about more? i've been using linux as my daily driver for a year now and this is the first time i've heard anyone talk about this. this is a freaking game changer
@chocolate_squiggle
@chocolate_squiggle 11 ай бұрын
I've been using linux as my daily driver for 10+ years and after watching this video I'm still not sure what the need is for this? It creates symlinks to your dotfiles into another location? Okay...but why? Just to make using git easier? Sure I make occasional changes to dotfiles but not so often that it justifies a version management process. I have several backups of varying age I can refer to if needed.
@xplinux22
@xplinux22 11 ай бұрын
​​​@@chocolate_squiggle I use Git to track all my dotfiles, including my Neovim configuration, tmux configuration, aliases, terminal color scheme, etc. All my machines use a common base, but there is some natural variation between my personal laptop, work machine, development servers at work, and so on. Compared to using a bare Git repository, I can instead track both "aws-personal" and "aws-work" (for instance) in my single dotfiles repo and use GNU Stow to deliberately pick and choose what config files I need when setting up a new machine.
@RamirezGold
@RamirezGold 11 ай бұрын
@@chocolate_squiggle using git is never unjustified. Zero cost, huge benefit.
@CM-mo7mv
@CM-mo7mv 11 ай бұрын
​@@chocolate_squiggleit really depends on how you drive... having more than just 1 computer and a complex preference it can help. anyhow sprinkle scripts, brew and ansible on it and you can have a new install running in no time...
@joelpww
@joelpww 10 ай бұрын
​@@chocolate_squigglei feel the same so far. Even without. My normal repo method has me spinning up my setup elsewhere pretty quick
@readmore8974
@readmore8974 2 ай бұрын
Thanks! Beautifully made video and covered exactly what I wanted to know! One option I wish stow had was overwriting the conflicting files with the files from the git folder, not just the other way around. Apparently you can --adopt and then revert the changes to the git folder but that doesn't seem all that clean either.
@Madinko12
@Madinko12 11 ай бұрын
I switched from manual configuration to stow to chezmoi to ansible. Now I'm not looking back. Ansible is a perfect fit (for me) to manage dotfiles and much more. Every other solutions were making things very rigid: it was hard when not impossible to manage multiple systems, symlinks were often causing sneaky problems to some programs, it was unnatural to deploy only a subset of the dotfiles. But the best part with ansible in my opinion is that it can also manage system configuration (packages to install, /etc, or basically anything I need). Now when I need to deploy my config to a new device, I just run all my playbooks and voilà. I don't even have to remember which programs to install, what were my firewall rules, where to put that custom systemd service file. Ansible handles all that for me in a very customizable way.
@JChen7
@JChen7 11 ай бұрын
I learned about chezmoi and have been using before learning about stow from this video. Will try ansible, but chezmoi has felt unnecessarily complex and unwieldy, and stow seems the right amount of simplicity to me. The symlink issue does sound real though. Do you have any recommended guides on getting started with ansible?
@alexstone691
@alexstone691 11 ай бұрын
Mind sharing your dotfiles, i am struggling how to split configs for multiple devices nicely and sharing roles in ansible I can see why people use ansible, i never broke anything while porting my old dotfiles to it, it just shows how hard it is to shoot yourself into the foot (running with --check / --diff)
@davemeech
@davemeech 11 ай бұрын
That's right, I forgot about ansible. That was a skill I wanted to pick up anyways. I might try and look up some resources on managing system config and dotfiles. Anything you'd recommend?
@Madinko12
@Madinko12 11 ай бұрын
@@JChen7 actually, issues with symlinks is what ended up convincing me to migrate to something else. Can't remember what were the issues exactly. Though I agree with you: ansible is more complex and involved than any other solution that just aims at handling your dotfiles. I'm very used to ansible and some other iaas tools because I use them at work, so that's not really an issue for me, but it might be for many people. Still worth learning IMHO.
@Madinko12
@Madinko12 11 ай бұрын
@@alexstone691 I'd love too, but I'd need to get rid of some personal stuff first, and I'm kind of burned out RN 😟. I think you can follow any starter guide for ansible. The only trick is to set your only host in inventory to localhost, then for multi-devices you may have a tiny wrapper script that runs your playbook some variables to identify your host. I haven't found a way to handle this elegantly in the inventory either.
@TheLazyJAK
@TheLazyJAK 11 ай бұрын
Underrated channel man. Keep it up!
@jevandezande
@jevandezande 11 ай бұрын
I've used rcm for many years. It has the added benefit of prepending a dot to all files and folders in the top level of your dotfiles folder, thus allowing us to use ls normally (e.g. dotfiles/config symlinks to ~/.config).
@lizardspock4746
@lizardspock4746 11 ай бұрын
Is rcm still being maintained? It looks like the last commit (and release) was in 2022
@daleryanaldover6545
@daleryanaldover6545 11 ай бұрын
This is godsend, was planning on having a dotfiles repo but I was overwhelmed by the sheer amount of guides out there that seemed too opinionated.
@GajanandaAdhikari
@GajanandaAdhikari 11 ай бұрын
your fonts are pure treat
@xExekut3x
@xExekut3x 11 ай бұрын
kinda funny, but this is how my dotfiles are currently setup, i just have a script that symlinks them myself. some i don't, such as files i have to merge between personal and work stuff, but yeah . . i can replace that entire script with one command .. wild. awesome vid!
@Beldraen
@Beldraen 11 ай бұрын
@InsanceFirebat Great video on an important subject. As a developer, all those configurations are an often overlooked piece of information to backup. Stow is a good solution for single-machine environment, but when you have multiple machines or virtual machines with different needs, I would suggest RCM. RCM supports tags, whereby the environment can be named. So, common things (git, tmux, etc) configurations can all be shared, but shell environment (.zshrc, per-machine scripts, etc) can be unique to each machine.
@dimitris470
@dimitris470 11 ай бұрын
You can also manage this in git with branches
@leonlee9518
@leonlee9518 3 ай бұрын
I'm using linux a long time ,never heard stow before ,thank a lot , respect!
@benjaminbras7475
@benjaminbras7475 11 ай бұрын
quick tip, you can use ctrl+l to clear the screen instead of running the clear command, works by out of the box in most shells
@a_maxed_out_handle_of_30_chars
@a_maxed_out_handle_of_30_chars 11 ай бұрын
yes, but the author wants to show he's clearing the screen so he uses the clear command to be more explicit
@DeeliN-zzl
@DeeliN-zzl 7 ай бұрын
Really blew my mind, no more bare repos, no more yadm or similar things that adds some abstraction layers, simply stow + git, all done! God, I love this!
@dreamsofautonomy
@dreamsofautonomy 7 ай бұрын
Glad it helped!
@megaxlrful
@megaxlrful 11 ай бұрын
What a great tool! I have been struggling with a homegrown solution in a Makefile, but this is so much better. Though I have been using Syncthing to keep the directory synchronised between machine instead of Git. Just so I don't need to remember to commit, push and pull changes.
@dma98
@dma98 11 күн бұрын
Oh wow, this is amazing. I was using simple sim links up until now, time to rework it a bit
@LucioDaou
@LucioDaou 9 ай бұрын
Amazing. I didn't use symlinks, but stow will help me a lot in setting up my configuration scripts. Thanks a lot.
@LucaCanali
@LucaCanali 11 ай бұрын
Nice video, I've been using stow for a long time, but for each application I use a sub folder and in git I use a branch for each hardware or use !!!
@fire17102
@fire17102 11 ай бұрын
Wooo that's a good take!
@Voshchronos
@Voshchronos 11 ай бұрын
Woah, this is incredibly useful. Thank you so much! Here's hoping more people spread the knowledge about _stow_
@MrShidimaOne
@MrShidimaOne 5 ай бұрын
Great video! I was using stow for a while but switched to Tuckr for my dotfiles.
@dreamsofautonomy
@dreamsofautonomy 5 ай бұрын
I'm gonna add Tuckr to my list of things to check out! Thanks for the rec!
@dalanxd
@dalanxd 11 ай бұрын
Very nice seeing your take on stow. I've been using a setup with stow for years now and it's really great. BTW you don't need to set your files as if they were in the home directory... I find that to be not so organized, specially if you have machines that use different setups, like one for your mac and one for your linux. Alternatively you can pass down some flags to stow to specify the target DIR... so I made a custom script to do that and I have a "packages" folder in my dotfiles where those configurations live pretty much like "packages", which are "stowable" configs I can pick and chose. Like a ".dotfiles/packages/encfs" is a config I can stow on linux while ".dotfiles/packages/macos-encfs" I can stow on apple machines That's close to stow's original use case as it was created as a way to maintain multiple package versions, like multiple different installations of PERL with different symlink files. Stow is also smart enough to handle complex situations where configurations would conflict.... stow will by default symlink the upmost directory / file and then recriate symlinks automatically in a more granular manner to acomodate other "stow installations" you make using the same ownership (read the docs for more info)... it sounds complicated but it isn't once you see it in action. It's pretty genius the way stow handles itself in the file tree. In practice what it means is that you could have a ZSH config for example that is your general config in a public ".dotfiles" repo "installed" at the same time as a personal ".dotfiles" ZSH config that lives in a private repo and has some custom bindings you might not wanna share publicly 😉 Anyway, if you are reading this comment up to this point maybe you could have a fun weekend project by feeding the Stow's Manual Page to ChatGPT and asking it to help you set it up. My strategy is to keep all created symlinks proxied in an "installed" folder, also in the ".dotfiles" but gitignored, to be more organized and to help stow because of how it handles Ownership ( and handles conflicts ) Here's some documentation reference in case you go this far: www.gnu.org/software/stow/manual/stow.html#Ownership Good luck Unix Adventurer!
@dmlsda1
@dmlsda1 11 ай бұрын
Thank you. This sounds like it’s exactly what I’m looking for. Looking forward to digging into this as my next project
@tysufa
@tysufa 11 ай бұрын
Thank you very much, for half a year I played with windows manager and I was constantly updating my dotfiles on many pc and it was really annoying, this method seems great I'm on my way to try it !
@dreamsofautonomy
@dreamsofautonomy 11 ай бұрын
You are welcome!
@EagerEggplant
@EagerEggplant 11 ай бұрын
Very cool. Will implement this weekend. Thanks for the great video, you're awesome.
@Wzooff
@Wzooff 10 ай бұрын
I used to have arch on my pc... Long time ago. Now i'm mac user, but still, if i'll have to choose distro - it will be arch. Because Arch has best wiki and require some knowledge and approach :) love your videos, keep going
@btotta
@btotta 11 ай бұрын
Amazing tutorial, very easy and straight to the point!
@Zeptic1
@Zeptic1 5 ай бұрын
Quite possibly the best solution for dotfiles. Thanks for this!
@Yggdrasil42
@Yggdrasil42 11 ай бұрын
I've been using Stow for two years now, with Git to sync my changes across my Mac and Windows WSL2 machines. Like the simplicity.
@judacs
@judacs 11 ай бұрын
thank you so much for this video, I haven't heard of Stow before. my dotfiles repo was the most atrocious thing ever lmao this is gonna be a fun weekend to update all that
@dawnrazor
@dawnrazor 11 ай бұрын
I didn’t even have a dot files repo, so I’ve really been dragging my knuckles along the floor, but not for much longer after discovering stow via this video
@schwja04
@schwja04 11 ай бұрын
Great video, I've already put my vim config in git. Now I can put the rest of my setup in there as well. Much appreciated!
@berkackgoz7825
@berkackgoz7825 6 ай бұрын
Seems like a nice solution that fits between manual symlinking and Ansible. For those who have time to learn Ansible or already know it, I'd recommend setting up Ansible roles instead to automate the sh*t out of your dotfiles.
@mylinuxforwork
@mylinuxforwork 11 ай бұрын
Great video. Thank you. I manage my dotfiles in a similar way but without stow. I have created a bash script that creates all required symlinks for me. With this setup, I can get rid of the .config folder in the dotfiles folder which makes the structure more readable.
@dreamsofautonomy
@dreamsofautonomy 11 ай бұрын
I'd love to see this bash script!
@kh0lis
@kh0lis 10 ай бұрын
First time to know about Stow. Will try it soon. Thank you 👍
@forest6008
@forest6008 11 ай бұрын
thank u so much, i tried to write a script to manage my dotfiles and almost just deleted them, i really needed this thank u so much
@maabat8142
@maabat8142 11 ай бұрын
I think this has convinced me to make a switch again in how my dotfiles were being setup. I was following my friend who initially did shell scripting configs, then I ended up switching to Ansible. Still trying to figure it out as I am trying to make different use case dotfiles (e.g. work, personal etc). But I think I'll do a switch at some point and figure out the logistics later - thanks for this video!
@itstoxicqt
@itstoxicqt 11 ай бұрын
Nixos is great for having a set for work then personal etc
@maabat8142
@maabat8142 10 ай бұрын
@@itstoxicqt sorry just saw this after finally deciding to revisit and finally being the migration process to stow. Thanks very much!
@backhdlp
@backhdlp 11 ай бұрын
I manage my dotfiles manually with git. Made a ~/.dots directory, moved most my configs there and symlinked them back to the right places. Created a git repo in there and everything just works no problem (tho I made the mistake of putting a GPG key on the repo). It's kinda like using stow, but I just do the symlinks myself. Deployment is also easy because it only really needs coreutils (and optionally git and gnupg for managing the repo).
@anton.plotnikov
@anton.plotnikov 8 ай бұрын
Beautifully done. Amazing tool, thank you!
@beranova.
@beranova. 5 ай бұрын
This looks so wonderful! Thank you!
@konstantink07
@konstantink07 11 ай бұрын
put stuff in subfolders to group your dotfiles, like "zsh" or "Alacritty". That way, you can choose which dotfiles to restore and use the same dotfiles repo in vastly different environments. You can even have multible versions of the same dotfiles and switch between them easily
@vikingthedude
@vikingthedude 11 ай бұрын
I gotta try this . But I probably won’t
@user-sq1oi9qp8w
@user-sq1oi9qp8w 11 ай бұрын
how to switch
@konstantink07
@konstantink07 11 ай бұрын
@@user-sq1oi9qp8w just create a subfolder in your dotfiles directory and move files to it. Then run stow --adopt [name of subfolder] from the dotfiles directory
@mkum2141
@mkum2141 11 ай бұрын
Can you go into more detail as to how this works and how we can do it?
@rationalityfirst
@rationalityfirst 11 ай бұрын
@@mkum2141 man is probably your friend. read the program arguments and test them in an isolated subdirectory because every command in stow is relative to the current dir if you don't use the -d and -t switches.
@anonymousXYZ659
@anonymousXYZ659 11 ай бұрын
Awesome channel, already watched 66% 😉, looking forward to much more!!!
@dawnrazor
@dawnrazor 11 ай бұрын
Hey dude this video is brilliant I can now stop acting like a Neanderthal, with regard to how I manage my dot files. I always felt I was walking a tight rope making changes to my zshrc files that may or may not break without having a clean way to revert changes instead relying on manual backing up files with .back2 .back3 ad infinitum. Using stow alongside git is going to be fantastic so I thank you most wholeheartedly for making this video
@pabloqp7929
@pabloqp7929 11 ай бұрын
Heard about stow about a year ago but seemed awkward. Instead I've been writing one too many 'ln -s' in my setup scripts and it dayum it might be about time. Ye've truly pushed to try stow, cheers mate. Can't wait for the self-hosted git server vid!
@ChosunOne
@ChosunOne 11 ай бұрын
Love this approach! I also was using a bare git setup but found it hard to work with. I'll switch to this way from now on
@jtsiomb
@jtsiomb 11 ай бұрын
I used to do pretty much the exact same thing manually, but GNU stow seems nice. I'll give it a try.
@skeilnet
@skeilnet 11 ай бұрын
I use a bare repo and a few handy aliases but I like stow will try it thank you for this amazing video!
@Patterner
@Patterner 10 ай бұрын
last time i used stow was about a decade ago. but it's interesting and i may change my setup. good video
@jakobheine578
@jakobheine578 11 ай бұрын
Your Videos are very promising. I already recommended your channel to several collegues. How about a part 2, how to handle .env files (or an alternative) with secrets and keys properly?
@dreamsofautonomy
@dreamsofautonomy 11 ай бұрын
This is a great idea!
@kevinc.7730
@kevinc.7730 9 ай бұрын
stow is great and I used it for over a year. Would also suggest building out an ANSIBLE role that completely configures any number of machines fully to the way you like it. Another great option is a lightweight container image with zsh and a config repo/sshkey baked in.
@berk_karaal
@berk_karaal 11 ай бұрын
Wow, I instantly switched to stow after this video. Thanks!
@duhnyel1697
@duhnyel1697 11 ай бұрын
Very well made and higly informative. Keep it up!
@jonesy_b
@jonesy_b 10 ай бұрын
I've been developing my own config files sync program for the last few weeks. Now I see this and makes my whole project useless since this is so much better 😭
@ebouchut
@ebouchut 7 ай бұрын
Thanks for the great video. I personally use rcm but will give stow a try.
@ru31k32
@ru31k32 10 ай бұрын
You created a new channel without knowing it!!!! :OOOO Insta-subscribed
@oshdubh
@oshdubh 11 ай бұрын
when is “since i use nixOS, btw” coming to DoA 🙏
@andremaldonado7410
@andremaldonado7410 11 ай бұрын
Seriously, only thing I don't use nixos for anymore is proxmox containers (all my vms are nixos), and that's solely because the lxc file made by hydra is almost always broken as shit
@andremaldonado7410
@andremaldonado7410 11 ай бұрын
Also doa if you read this you probably want nixos *and* home manager
@IogaMaster
@IogaMaster 11 ай бұрын
Fr
@woeky
@woeky 11 ай бұрын
@@andremaldonado7410 Or simply a good flake setup, managing the entire system (so both the home directory and the system)
@lucasew
@lucasew 11 ай бұрын
Me and the boys using nix modules to setup common logic on a whole network of machines
@dino_source
@dino_source 9 ай бұрын
Thank you very much for this brilliant idea!
@Br4mVAL
@Br4mVAL 11 ай бұрын
great video! i expected this channel to have at least 50k subs lmao. great production quality
@oaken-877
@oaken-877 11 ай бұрын
his main channel has 90k it's called dreams of code you should check it out
@lileightright
@lileightright 5 ай бұрын
amazing thanks now i can safely install and migrate to arch linux
@onetwothree123-
@onetwothree123- 9 ай бұрын
On my side I switched to dotbot with comprehensive scripts that handle package installations for various tools like LSP servers for Neovim, terminal, window manager, etc. Setting it up initially took some time, but now on a new machine, I can execute a single script to install everything at once. Additionally, I have another script that efficiently uninstalls packages and removes symlinks.
@dawnrazor
@dawnrazor 11 ай бұрын
As great as this video is, thanks to the KZbin algorithm, I have discovered an even better approach that using stow and that is ansible. It’s a bit of a beast compared to stow, but its power makes it worth taking the time to learn how to use it rather than the comparitive simplicity of stow. I’ve setup my dot files config with all the steps in this video, but that will effectively last for less than 2 days as I prepare to migrate to ansible!
@a_maxed_out_handle_of_30_chars
@a_maxed_out_handle_of_30_chars 11 ай бұрын
simple and to the point, thank you :)
@dreamsofautonomy
@dreamsofautonomy 11 ай бұрын
I'm glad you liked it! Thank you for the feedback!
@kevinnielsendev
@kevinnielsendev 11 ай бұрын
Great video as always! Keep going ❤
@LielAlmog
@LielAlmog 4 ай бұрын
Just want to point out that in the 'stow' docs they state that it was originally used with individual packages "The examples in this manual will use /usr/local/stow as the stow directory, so that individual packages will be, for example, /usr/local/stow/perl and /usr/local/stow/emacs. " So there will be 'stow' directory, or 'dotfiles' directory and inside of it there will be the replicas of the folder.
@simondj8572
@simondj8572 4 ай бұрын
Indeed good job, you explained step by step in the simplest way possible, now I marked your video for my future fresh reinstall cause now I had to share my laptop with my partner. By the way speaking of your accent, are you from UK?
@cg219
@cg219 11 ай бұрын
I actually like this, I'm not going to lie. I'm sold
@soaring_dove
@soaring_dove 6 ай бұрын
Request !! 🙏 on mac, when i use shift+click text highlighting is not working please halp
@ananyobratapal5521
@ananyobratapal5521 6 ай бұрын
Stow needs more love ❤
@1Iljo1
@1Iljo1 11 ай бұрын
Is there a change we could get an overview of your terminal and desktop/wm setup? It looks so nice and functional
@Jamiered18
@Jamiered18 11 ай бұрын
Not knowing Stow existed, I've been using my own script that does the same thing and has all the features in this video. Could've saved some time there 🙃
@ShinigamiRyto
@ShinigamiRyto 11 ай бұрын
😅 that's exactly what just happened to me, it's too late I'll keep using my scripts
@dreamsofautonomy
@dreamsofautonomy 11 ай бұрын
I find this happens often to me as well 😅
@mykhailosichkaruk
@mykhailosichkaruk 11 ай бұрын
Great video, I will definitely try this out. But doe's anyone know what to do with configs in root directory? Like '/etc/wpa_supplicant.conf', '/etc/tlp.conf', etc?
@KevinLyda
@KevinLyda 11 ай бұрын
I use vcsh to manage my entire ~. It allows me to put ~ into multiple git repositories. So I can have a repo for history files, one for desktop systems, some for a base home dir, etc.
@dameanvil
@dameanvil 7 ай бұрын
00:00 🔧 Managing DOT files was initially complex with the Atlassian guide. 00:17 🌟 Discovery of GNU Stow significantly improved DOT file management. 00:29 📁 Created a new directory for DOT files in the home folder. 00:39 🗂 Copied zshrc file into the DOT files directory and renamed the original. 01:21 🔄 GNU Stow creates symlinks for organized DOT files. 02:00 📦 Installed Stow using the package manager and linked zshrc. 02:25 🗃 Enabled version control by turning the DOT files directory into a Git repository. 03:03 🚫 Stow ignores certain files/directories by default, like .git. 04:07 ✏ Edits to symlinked files reflect in the DOT files directory. 04:36 📂 Added alacritty config by mirroring home folder structure. 05:56 🌐 Created a remote Git repository on GitHub for DOT files. 07:04 📄 Added a README file for documentation on setting up DOT files.
@kartikmahajan4405
@kartikmahajan4405 10 ай бұрын
Extremely useful, thanks a lot
@nightwing8666
@nightwing8666 7 ай бұрын
anyone know what dm he is using? it looks so clean
@wojciech-kulik
@wojciech-kulik 6 ай бұрын
Great stuff!
@steeltormentors
@steeltormentors 8 ай бұрын
I just tried chezmoi...anyone knows the pros and cons between stow and chezmoi? both looks similar
@teezettsb
@teezettsb 11 ай бұрын
The problem is, that some tools obey to the XDG base directory structure and some not. The latter flood the home directory with the dotfiles But just moving these dotfiles in a separate folder does not split between config, cache and data files
@PeterDebacker
@PeterDebacker 3 ай бұрын
Stow is definitely useful and way better than manually linking, but for dotfiles, thoughtbot/rcm is THE way to go: easy way to make a real .dotfile a symlink with 1 “mkrc” command (so no need copy first before you call stow), or the other ay around. It has its own rc file to remember what to include and exclude, and other nice features, like support for tags for some or all dotfiles if you differentiate work and home, Mac and Linux setup etc.
@lavoaster
@lavoaster 11 ай бұрын
Nice. Personally I've found YADM to be the one for me when managing my dotfiles, rather than deal with symlinks YADM works with the files in place. Under the hood YADM is a thin wrapper over git that essentially turns your home directory into a git repository, but with everything ignored unless you add it to be tracked. If you know git, you know YADM. Plus some additional features mentioned by others to help portability of files between various operating systems if you need to deal with that. I'd also suggest where possible in dotfiles to use XDG paths for storing your configuration, I.E using ".config" in home folder. So you can properly group up configurations and leave your home folder a little tidier.
@devhammed
@devhammed 9 ай бұрын
I use yadm, it is much more easier because you don't have to worry about creating a separate folder, it uses bare repository but is a complete wrapper on Git. Just create the file where it is supposed to be and run "yadm add FILE" then "yadm commit -m 'fix: issue with my FILE'" then "yadm push". It also have things like templating for cases where you want to run some logic based on the OS and other factors. And to end it all, you can add a bootstrap script that can be run on new systems, useful for when you want to create a reproduceable setup.
NEVER lose dotfiles again with GNU Stow
14:33
typecraft
Рет қаралды 69 М.
She made herself an ear of corn from his marmalade candies🌽🌽🌽
00:38
Valja & Maxim Family
Рет қаралды 18 МЛН
Мен атып көрмегенмін ! | Qalam | 5 серия
25:41
Quando eu quero Sushi (sem desperdiçar) 🍣
00:26
Los Wagners
Рет қаралды 15 МЛН
Dotfiles! Here's how I organize them.
9:37
Andrew Burgess
Рет қаралды 50 М.
Using docker in unusual ways
12:58
Dreams of Code
Рет қаралды 468 М.
The RTX 5090 - Our Biggest Review Ever
22:54
Linus Tech Tips
Рет қаралды 581 М.
How A Steam Bug Deleted Someone’s Entire PC
11:49
Kevin Fang
Рет қаралды 1 МЛН
This may be my favorite CLI tool ever
8:15
typecraft
Рет қаралды 101 М.
Tmux has forever changed the way I write code.
13:30
Dreams of Code
Рет қаралды 1,1 МЛН
zoxide has forever improved the way I navigate in the terminal.
9:53
Dreams of Autonomy
Рет қаралды 487 М.
I forced EVERYONE to use Linux
22:59
NetworkChuck
Рет қаралды 656 М.
How GitHub's Database Self-Destructed in 43 Seconds
12:04
Kevin Fang
Рет қаралды 1 МЛН
~/.dotfiles in 100 Seconds
13:54
Fireship
Рет қаралды 432 М.