🏆 I provide private lessons on Emacs, Linux, and Life in general: https://protesilaos.com/coach/. Lessons continue throughout the year.

Emacs: lin version 0.4.0

Lin is a stylistic enhancement for Emacs’ built-in hl-line-mode. It remaps the hl-line face (or equivalent) buffer-locally to a style that is optimal for major modes where line selection is the primary mode of interaction. In concrete terms: (i) let your theme use a subtle gray to highlight the current line in text-editing buffers like Org, and (ii) render the current line with a more prominent colour in Dired, Ibuffer, et cetera. Why? Because the two types of interaction have different requirements about how intensely the current line should be highlighted.

Sample configuration:

(require 'lin)

(setq lin-face 'lin-blue) ; check doc string for alternative styles

;; You can use this to live update the face:
;;
;; (customize-set-variable 'lin-face 'lin-green)

;; This is the default value
(setq lin-mode-hooks
      '(bongo-mode-hook
        dired-mode-hook
        elfeed-search-mode-hook
        git-rebase-mode-hook
        grep-mode-hook
        ibuffer-mode-hook
        ilist-mode-hook
        ledger-report-mode-hook
        log-view-mode-hook
        magit-log-mode-hook
        mu4e-headers-mode
        notmuch-search-mode-hook
        notmuch-tree-mode-hook
        occur-mode-hook
        org-agenda-mode-hook
        proced-mode-hook
        tabulated-list-mode-hook))

(lin-global-mode 1)

Below are the release notes.


  • The official Git repository is now hosted on SourceHut. Mirrors are available on GitHub and GitLab—users can open issues there if they find it difficult to use the mailing list. The sources:
  • The grep-mode-hook and proced-mode-hook are included in the default value of the user option lin-mode-hooks. This practically means that Lin will be active in the implied modes when lin-global-mode is enabled. Thanks to Nicolas De Jaeghere for the patch (Nicolas has assigned copyright to the Free Software Foundation).

  • The faces that leverage the macOS palette (lin-mac{,-override-fg}) are made to work with Mitsuharu Yamamoto’s emacs-mac port: https://bitbucket.org/mituharu/emacs-mac/src/master/. They read the mac display specification in addition to the ns one. Remember that you can specify the desired face as the value of lin-face (its doc string documents all the stylistic options we provide). Thanks to Kai von Fintel for the patch (the change is well below the ~15 line threshold for copyright assignment).