Across the Universe: how to have consistent tools across machines…

Across the Universe: how to have consistent tools across machines and OSes? Work requires a mac and I have a linux desktop and several old linux laptops around the house for various uses (e.g I have one setup as ‘typewriter’ that just boots to emacs, full screen, that I use as a way to type out drafts which are sync’s between my computers. But sometimes I have to work on the setup, so having a consistent toolset would be helpful. And I just added a windows machine. Ideally, no matter what machine I have I would log into a relatively similar environment. For example, my shell (zsh) would have all the same keybindings and plugins installed. Same for my window managers, emacs, pycharm, kitty etc. For a single tool, it’s relatively straight forward to sync a dot file. Even still, I find that machines get out of date or a plug-in doesn’t work the same way on Mac as linux etc. I have a home grown installer my dotfiles repos but the paradigm isn’t really holding up for an entire environment. There’s lots of if MAC do X if LINUX do Y complexity. I use barrier to handle moving from my linux desktop and mac, so the swap of CTRL and CMD as the major modifier key causes muscle memory errors. Docker is too heavy for this use case for me, maybe something like nix could be useful. My current solution is dotfiles and spending time updating and tweaking them, which is usually manual and error prone. —- UPDATE: Turns out nix is a great fit. Amazing.