I am a product engineer and have helped build software from small startups, to manipulating hundreds of millions of data points. I write API's and make tools that make developers lives easier.
I use stow. I have a repo where each folder in there, is a configuration for some thing. Like zsh, bash, vim, tmux, etc. Then I have a setup script that runs stow on everything i want to run it on. I also have a flag in there so if I run it as root, it installs only what root needs.
and each of those names like tmux is a folder in my repos dir. and when I install them I default to my home directory. so the command that is run equates to stow -v -R -t ${HOME} tmux for example. And the directory structure for each folder is like so:
so that will link the .tmux directory, into my $HOME directory. tmuxp is a python binary for managing preset tmux pane configs, like tmuxinator.
Lastly, in my .bashrc and .zshrc (i default to zsh) I check if the file $HOME/.env_secrets is available which will have api keys, and other secret keys and it NOT kept in git. This way i can manage secrets, db connections, etc. I would link mine, but it has stuff in it I dont want public. but if theres any part of the config you want to know about, just let me know.
I also have a _setup directory that has anything specific i want to run based on OS. such as installing applications. I run arch so I have a arch_setup.sh and an osx_setup.sh for installing things in homebrew. though that one is pretty out of date since i haven't updated it for osx in a while. As i have been using linux.
Now that I think about it, might be a good post to talk about how I have this setup. lol
One last thing, in the start of the setup script I make sure to get any submodules so I can pull in tmux/nvim configs I use that others make. that way I can still use them without maintaining them.
I've been a professional C, Perl, PHP and Python developer.
I'm an ex-sysadmin from the late 20th century.
These days I do more Javascript and CSS and whatnot, and promote UX and accessibility.
I'm a Sr. Software Engineer at Flashpoint. I specialize in Python and Go, building functional, practical, and maintainable web systems leveraging Kubernetes and the cloud. Blog opinions are my own.
I am a product engineer and have helped build software from small startups, to manipulating hundreds of millions of data points. I write API's and make tools that make developers lives easier.
Of course. This "how to manage dotfiles" is a path I have treaded off an on for a long time. I have went through a handful of iterations. Sure there are tools out there that give you command line binaries to add/remove things in your env, but I found that they tend to over complicate things.
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
I use
stow. I have a repo where each folder in there, is a configuration for some thing. Like zsh, bash, vim, tmux, etc. Then I have a setup script that runs stow on everything i want to run it on. I also have a flag in there so if I run it as root, it installs only what root needs.setup.shand each of those names like
tmuxis a folder in my repos dir. and when I install them I default to my home directory. so the command that is run equates tostow -v -R -t ${HOME} tmuxfor example. And the directory structure for each folder is like so:so that will link the
.tmuxdirectory, into my $HOME directory.tmuxpis a python binary for managing preset tmux pane configs, liketmuxinator.Lastly, in my
.bashrcand.zshrc(i default to zsh) I check if the file$HOME/.env_secretsis available which will have api keys, and other secret keys and it NOT kept in git. This way i can manage secrets, db connections, etc. I would link mine, but it has stuff in it I dont want public. but if theres any part of the config you want to know about, just let me know.I also have a
_setupdirectory that has anything specific i want to run based on OS. such as installing applications. I run arch so I have aarch_setup.shand anosx_setup.shfor installing things in homebrew. though that one is pretty out of date since i haven't updated it for osx in a while. As i have been using linux.Now that I think about it, might be a good post to talk about how I have this setup. lol
One last thing, in the start of the setup script I make sure to get any submodules so I can pull in tmux/nvim configs I use that others make. that way I can still use them without maintaining them.
Stow is great.
Wow! There is a lot here. Thank you! I haven’t even heard of stow, I’ll look into it. Thanks for such a detailed answer!
Of course. This "how to manage dotfiles" is a path I have treaded off an on for a long time. I have went through a handful of iterations. Sure there are tools out there that give you command line binaries to add/remove things in your env, but I found that they tend to over complicate things.