this post was submitted on 29 Nov 2023
1 points (100.0% liked)

Emacs

311 readers
2 users here now

A community for the timeless and infinitely powerful editor. Want to see what Emacs is capable of?!

Get Emacs

Rules

  1. Posts should be emacs related
  2. Be kind please
  3. Yes, we already know: Google results for "emacs" and "vi" link to each other. We good.

Emacs Resources

Emacs Tutorials

Useful Emacs configuration files and distributions

Quick pain-saver tip

founded 1 year ago
MODERATORS
 

Hi,

as nvim-user I am just starting out with orgmode and want to use emacs on 4 systems: 2 linux-boxes and 2 android-systems.

The linux-boxes run emacs 29, on android (in a termux/proot environment) the emacs version currently is 27.

I am using emacs only for orgmode with evil-mode and the modus-themes.

What I want is to have the same environment on all machines and so this is my plan:

I will use syncthing to sync all my org-files as well as the init.el between all machines and in the init.el I will only load packages with use-package.

So the idea is that when I e.g. introduce a new package on one machine, the new config is synced to the other machines and when I start emacs there the package is installed automatically - everything stays in sync.

My question: Would that work in practice or are there pitfalls I am not aware of?

top 2 comments
sorted by: hot top controversial new old
[–] camber-weaver@alien.top 1 points 11 months ago

This is pretty much exactly what I do. The only real hiccups I can think of:

  1. If you use Org Roam the different machines will have their own Sqlite databases and thus you may need to do an org-roam-db-sync when hopping.

  2. org-agenda may need to be refreshed when hopping machines.

I have bound keys for both of those things to make the manual portion as non-disruptive as possible.

[–] arthurno1@alien.top 1 points 11 months ago

Why did you make three threads with the same content?

the new config is synced to the other machines

I don't know man; how do you plan to sync those machines? If you have 4 machines involved, there are always problems with machines being online/offline and talking to each other that you will have to solve somehow. If I were you, I would make a public or private repo on Github and use git to version control your content. You can push/pull from each machine when you make changes and need to propagate those changes. You can potentially automate the process of pushing and pulling via shell or elisp script.

Would that work in practice or are there pitfalls I am not aware of?

The most important thing is to keep eyes on your paths when it comes to documents and packages. I suggest keep all your org files in one directory, say ~/documents or whatever you prefer, and keep all of your Emacs config in .emacs.d, so you can just push/pull the entire .emacs.d. Another thing to keep eye in your config on are external programs, ag, ripgrep, etc. Since you are basically in the *nix world, it shouldn't be too difficult, but there still might be differences where they are found etc; so you might need to keep an eye on paths and which programs you use. You can solve it in different ways, at your discretion, either directly in Emacs setup or in your login shell.