What do you use to share common (configuration) files between computers?

I’m currently setting up EOS + i3 on my laptop and will soon proceed and do the same on my stationary computer. I’ve done numerous changes to especially i3’s configuration, but also other misc things. I’d like to have these changes synced between the two computers in a natural way.

I’m a long user of Dropbox and was planning to use that. Move certain files and directories into the folder Dropbox keeps in sync, and then create symlinks where they originally were. For example, I moved .config/i3 into my Dropbox folder and replaced .config/i3 with a symlink.

A hack for sure, but it will probably work well though I’ll need to maintain symlinks manually between the computers. The most general solution I could imagine would be to somehow sync the whole home directory, but I’m both not sure how that would be done, or if it is even something that you want to do.

What do you use?

Git with Gitlab.

1 Like

You put your whole home directory in git?

I simply move my dotfiles via a usb drive… I use Dropbox for syncing data files only. Additionally, I have all my installable apps in a script file that I run when I build a new setup.

If you care to read a pile of things (I mean 100+ posts on related topics I have them published on my site):


FWIW. I’m in the process of making SwayWM one of the wms I move. These days I run 7 wms in a single user-space, probably because I vacillate a lot and am indecisive. There are a few threads here on the subject.

Not the home directory but the dotfiles. generally your ./config ./local and what other config files that you have in the home directory.

I’ve got my dotfiles on a raspberry pi and use sshfs or scp to move them.

No, only the directories in $HOME/.config where I have customized configs for and dot files where I have customized configs for in $HOME.

I’ve used unison before. I have also used rsync and still use rsync, which is basically just a better deal that cpio or tar for syncing a bunch of files.
Could use git as been said. Git means you can go forward and back.
Either way you need to either blindly trust a sync from a mastrer, to get it right, which is probably OK, or you use something like git where you can document the evolution of your configs. Bidirectional sync is more of a problem. Synchting can work in some cases.
I use ansible to push system configuration across my environment, and system configuration is somewhat synonymous with personal configuration when you have a single user environment.

Typical personal stuff, I mostly rsync from my desktop, to my laptop, and selected rsync to the servers. Thinks I sync are .ssh .bash* .profile .vimrc .ansible .gitconfig .gnupg. I use Syncthing for Documents between desktop and laptop and file server, Camera Pictures and a shared folder between those and the phones / tablets also with Syncthing.

Generally there isn’t much I care about in .config except syncthing config, which is symlinked elsewhere anyway. Similarly .local. If I want something I get it, or pull it from my backups, or do without. Looking into .config maybe htop kicad are interesting. Most of the desktop I don’t customize much beyond a few things that are easily redone. Over they years, things change anyway, desktops mutate. I used twm & xterm for many many years, and when they became more difficult to use, I just went with gnome because that was ubuntu default. Can’t say I particularly like it, or dislike it, it mostly works, so I keep using it. Last time I tried customising .config/user-dirs it just put back all the crap I tried to delete as useless for me, and I didn’t care enough to bother trying the chase it down.

.mozilla is a PITA all the cache is buried inside there and also ~/.cache, and the last place I want temporary cache files is in my home directory which get regularly snapshot and backedup. I have ~/.cache symlinked off to a non-backup temp folder elsewhere on the system, and would like to do that with firefox too, but the cache is too mixed in the with other files for it to be easy, and there is no way there is 500-1000 GB of flux in my home directory daily, it is poisoned by the cache. All the cache makes it diffuclt to sync in a meaningful way other than all the crap included.