This is a short post pulling in my comment on a /r/unixporn submission where I document my Org mode dotfiles for a word processor like interface. The aim is to recreate a rice I submitted on /r/unixporn some time back. Shown below is a demo of what the thing actually looks like.

Following screencast shows the setup in action.

The look is inspired from the style used by Edward Tufte in his books. A replication of the style in CSS is up on github for free at tufte-css. Other than the proper spacing and margins, the thing that I like in Tufte's style is the font ET Book which is an old-style serif font with beautiful italics.

Figure 2: Et Book font

To start, we need a nice looking light color scheme so that faces other than that of Org mode look decent. I selected spacemacs-light mostly because I use spacemacs and it is pretty complete as far as number of faces covered is concerned. Also, it has a good off-white background ( #fbf8ef ). There are three basic steps involved from here:

Setting faces and themes

Padding and stuff

Other Org-mode visual and usability tweaks

1 Faces We will set Et Book (named EtBembo ) font to most of the org mode. Get the font here. If you are using spacemacs, the easy way is to use the theming layer in spacemacs to set faces. My face config are available here. For each face, the second set of properties are for the light theme (spacemacs-light). I have set the variable-pitch font to be EtBembo (along with title and stuff) and enable variable-pitch-mode when in an org buffer. Note that unlike other face settings, org-indent 's (:inherit (org-hide fixed-pitch)) has a crucial effect of aligning text under Org heading in a non-monospace font, so you might not want to miss that.

2 Padding There are a few places where you can gain some breathing space. Line spacing Per buffer line spacing can be set using the variable line-spacing . Something like 0.1 goes well here.

Top padding Similar to mode-line , Emacs also has header-line for windows. Setting its format to empty string (setq header-line-format " ") gives you top padding. Also by changing header-line face height, you can change this spacing.

Side padding Adding side spaces is possible by setting margin width. You also need to reset the buffer to make the change visible. Here is a function that does that: ( lambda () ( progn ( setq left-margin-width 2 ) ( setq right-margin-width 2 ) (set-window-buffer nil (current-buffer )))) If you need padding all around the frame so that everything (including mode-line) goes inside the padded view, you can set internal-border-width . You can also try writeroom-mode which makes the writing buffer cleaner and has settings for many of the padding related stuff. One neat feature is that it makes the buffer text centered and hides mode line. I don't use it much since my current settings reproduce pretty much what I need from it. Nevertheless, here is some config for writeroom.