Mac – Setting default Emacs window margins


I'm trying to emulate some behavior of the darkroom-mode Emacs mode — specifically the margins setup.

I've figured out one piece of the puzzle — specifically, to change window margins, I can eval (set-window-margins nil <left margin> <right margin>).

Which is fine, but I'm noticing that the changes only occur in the current window, and will actually go back to the default margin if I switch to a different buffer using C-x left or right arrow key.

I'd like to figure out how to do the following:

  • Set it so that all buffers get the same window-margin settings.
  • Set it so that the margin settings persist after changing windows.

I know that it might involve using hooks, but I'm not exactly sure which hooks to use.

Best Answer

Do this in your init file (~/.emacs) -- use whatever values you want in place of 10 and 8:

 (setq-default left-margin-width 10 right-margin-width 8) ; Define new widths.
 (set-window-buffer nil (current-buffer)) ; Use them now.
Related Question