Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I have two macs that both run emacs. I have a private git repository for my .emacs.d folder (an old mirror can be found here: https://github.com/elarkin/.emacs.d ). I have taken special care to make sure that the init.el file is readable, and can be used with a fresh copy of emacs (without any packages installed) and everything works just fine.

If you want to try it, just brew install emacs --cocoa and clone the repo to ~/.emacs.d

A coworker and I trade snippets of elisp for our configurations over email, and whenever I update the repo on one machine, the other needs to pull it down and evaluate the file (eval-buffer)

I have not found sharing customizations of emacs to be very difficult, but I also don't use any god packages like emacs starter-kit, or prelude (which I haven't heard of). I have let my configuration grow organically.



My emacs automatically downloads and installs all my used packages on first startup on a fresh install. Literally all I have to do on a new box is clone my dotfiles and start emacs.


How do you achieve that?


This is what I have at the top of my ~/.emacs.d/init.el:

  (require 'package)
  (add-to-list 'package-archives
               '("marmalade" . "http://marmalade-repo.org/packages/") t)
  (package-initialize)
  (when (not package-archive-contents)
    (package-refresh-contents))
  (defvar my-packages  '(clojure-mode ...)) ; list of packages
  (dolist (p my-packages)
    (when (not (package-installed-p p))
      (package-install p)))


https://bitbucket.org/zaphar/dotfiles/src/6ce04e6c7bbb03b21f... shows the current setup.

It's gotten more sophisticated over the years. I can probably clean it up some but it works so I haven't touched it :-)




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: