I'm currently traveling and working off my other laptop. My main computer is now a desktop machine.
My question is: What do you do to share your d...
For further actions, you may consider blocking this person and/or reporting abuse
Git is the answer. This allow you to store config/dotfiles in the cloud and version control it. I've follow this guide many moons ago and have been seamlessly transferring config back and forth. The downside is this isn't automatic.
my dotfiles
Was going to say the same. git is a pretty good solution.
Nice. Thanks Mac!
I recommend having an installable dotfiles repo (mine is github.com/markoa/dotfiles).
By linking your local files to the files in the repo, you almost completely eliminate the effort of keeping it up to date.
This! And add a Cron that runs a script that updates everything from git, including itself and the Cron, so you get the changes with 0 effort
Great tip!
The first part is good. But it's the second that made me realize this is the best option!
I haven't applied this in the context of sharing IDE config between devices, but...
I have 2 git repos that correspond to physical devices (my working laptop & my home server). I use each git repo as the source of truth for configs (typically via
ln -s
) and scripts for both provision & maintenance.I did this primarily for disaster recovery but it's easily repurposed for sharing
I am a huge fan of using Docker for any thing I need for development...
When I say anything I include text editors like Sublime or Visual Studio Code. I also have dockerized Browsers, Postman, MySQL workbench, Android Studio 3, just to name a few.
So my strategy is to build docker stacks for all the programming languages I work with and then I add and extend them in each project I work.
My computers are not MAC but others using vanilla Ubuntu installations where I install docker, docker compose, git and almost nothing else more, thus when I need to upgrade OS is dead simple. Maybe you can use more Docker in your MAC???
In each computer I need to work I just download a github repo that install all this in a bin folder to be accessible in my path, as any other linux tool... The repo is still a work in progress, but you can get an idea of it here and you can see all my current docker images here and here and finally the Elixir Docker Stack.
There's a lot of direction here towards storing your config in source control, just make sure you're OK with what you're storing and assure yourself that if a stranger were to get ahold of your config that nothing could be exploited with that config data.
For example, don't store your secret API access keys in your config in your git repository. I've seen plenty private repositories get forked by contractors (or inexperienced friends/developers) and somehow get published publicly or leaked. It's easiest to avoid all of this by having other means of sharing that sensitive data.
I'm using VSCode with the Settings Sync extension. This allows you to create a private Gist to sync your settings. I have found this to work pretty well.
It may not be a shiny new fancy solution, but if you can access your other host directly,
rsync
is great for this. Ignore identical files, set things to specifically exclude, and it doesn't involve an intermediate stage, so you're not doing something like committing secrets into a repo.About using
rsync
I use github gists to store simple things. My VS code settings is in a gist, I use an extension for this.
All other quick settings or desc, or anything code/dev related, I use gists for that as well. I use the app called Lepton and you can use your gist like Evernote with it. Except, you wouldn't need your gists in your mobile. I also store all my quick reference code snippets there. It's super cool and comes handy at times.
A dotfiles repo for sure! Many tools also let you export your configuration profile as JSON or some other format, conducive to being committed as well. Not sure if you can point to a version-controlled file or if you have to re-import when there are changes, but better than tweaking tens of checkboxes and values in a GUI! I haven't done this yet but I will be mad I didn't the next time I set up a new machine π
In a way, this is a follow up to this post:
I'm planning to ditch my MacBook and move away from laptop computing
Ben Halpern
Things have been going well, but still have some things to work out, clearly.
I use docker heavily for development so i just spin up whatever I need but most importantly I've a docker image saved with VSCode with all my preferred configuration and extension so that I don't have to configure it every time I use new pc or install new OS.
There's a ton of dotfiles management solutions, even multiple lists of them:
I'm currently using GNU Stow to do a lot of the management from this guide coupled with a Brewfile and a small shell script to install a few crucial things. I'm still not terribly happy with it.
This biggest issue I have is crossing operating systems. My work computer is a MacBook Pro, but my home desktop is a Windows PC also running Ubuntu on WSL. So I'll run VS Code, IntelliJ and any other graphical stuff there but run Java, Node and the link in the WSL.
Dotfiles repository on gitlab.
Using stow to setup config files.
Check this out: github.com/technicalpickles/homesick
The other day I randomly ended up in this homesick tool and it reactivated my intention of having a dotfiles repository.
I've heard good things about github.com/lra/mackup. i'm about to experiment with that now
For personal projects and small ones I keep them in the main repo, as .sample files with all the real settings, except secrets ofc.
Yes. I put my configs and dotfiles in a GitHub repo. One thing on my todo list is to make a script to install them using symbolic links.
I use Sync on VSCode and for all products JetBrains, I export all configs and sync on my Cloud Jetbrains.
I use dotfiles and homeshick to sync my configuration between machines.
Homeshick automates the process to a good level in my opinion.
github.com/andsens/homeshick