How does Jow Forums manage their .dotfiles across multiple machines? I've got a laptop and a pc...

How does Jow Forums manage their .dotfiles across multiple machines? I've got a laptop and a pc, both are different in terms of hardware, display resolution, etc. So the way I came up with is to add suffixes to config files i.e. .config-pc/.config-laptop. Is there a more ele/g/ant way to do this?

Attached: automate_boomer_stuff.png (986x1495, 1.14M)

I do it entirely manually but then again I don't have a lot of dotfiles and the ones I do have I generally want to be the same across machines.

Also some of them I just don't bother keeping. If it's just like one or two options I change for a given application, I don't bother with saving its config file or anything, I just change those options over again if I ever need to reinstall.

Use Stow.

Attached: gnucar.jpg (576x382, 54K)

How do you implement different config files for different hosts?

Attached: 2_weeks_void.jpg (2622x1870, 1.01M)

This.

If they truly are different, they don't need to be shared. If there's minor differences, use different branches and rebase to sync changes to common stuff. You ARE keeping it in version control, right?

Ansible + Stow

Attached: efd5a6d1e598823f0f13baeafaa83005.png (341x342, 62K)

This.
I use both a Mac and a PC with Ubuntu,
and Ansible is amazing for installing both specific and common packages

Attached: 68c979868fbc1c07a4fce79b0ea16f76.jpg (441x294, 37K)

What about ln -s each file to a directory that is a git repo?

That's what stow does. With less hassle.

SSH keys with the sss-ssh-authorized_keys utility by sssd integrated into my FreeIPA server, the other stuff is synced using Ansible via an AWX host

> You ARE keeping it in version control, right?
Sure, but I don't know if it's comfy to rebase a branch after each change. Do you need to modify all changes each time you rebase or only the hunk that's been modified the last time? (sorry for a dumb question)

Changes that affect all machines are made on master. Then you rebase the specific branches on master.
$ git checkout $hostname
$ git rebase master
Rebase can be a bit tricky if you get conflicts.
$ git merge master can be better in those instances. Usually it's not much trouble if the differences between machines are small and isolated.

Check out homeshick, sweet program written in bash that uses git to synchronise your dotfiles across your different machines

Thanks, user, I'll try it.

I believe I misread your question.

Your host-specific branches will probably be only a few commits ahead of master so there should not be many conflicts.
Rebasing/merging can probably be automated with a git hook but I never bothered to do so.

Attached: 1561513926616.png (1357x1281, 1.49M)

This OP.
Use Ruby, it's a great scripting language

Attached: 5d046be8321da18a4ca204f4e9bd9b2f.jpg (365x365, 34K)

why not just use python?

That's the point.
My post was just a bait.
Python is far superior for scripting

>Python is far superior for scripting
okay buddy retard

Attached: moustache.jpg (468x589, 226K)

I have different configs for different machines, so I don't.

ITT: we find out why Windows has had a registry for 30 years.

And how exactly do you copy all your settings across multiple machines (and with some variety between them) and automatically keep the settings up to date on Windows using registry?

i thought naked breasts weren't allowed here

Attached: arch_user.jpg (1024x609, 465K)