🌈 I provide private lessons on Emacs, Linux, and Life in general: https://protesilaos.com/coach/.

Change Log of lin (lin.el)

The newest release is at the top. For further details, please consult the manual: https://protesilaos.com/emacs/lin.

Version 1.0.0 on 2022-09-08

  • Clarified the doc string of the user option lin-mode-hooks. This variable specifies the list of hooks that lin-global-mode will use to apply its effect. Lin enables hl-line-mode in the given buffer and remaps its face to the value of the lin-face user option.
  • Added pdf-outline-buffer-mode-hook (from the pdf-tools package) to the user option lin-mode-hooks. Thanks to Gautier Ponsinet for the patch which was sent to my personal email. The change is below the ~15 line threshold and thus requires no copyright assignment to the Free Software Foundation.
  • Named the mailing list address as the Maintainer: of Lin. Together with the other package headers, they help the user find our primary sources and/or communication channels. This change conforms with work being done upstream in package.el by Philip Kaludercic. I was informed about it here: https://lists.sr.ht/~protesilaos/general-issues/%3C875ykl84yi.fsf%40posteo.net%3E.
  • Made all user-facing variables specify the package version that introduced them or last affected their specification. This information is presented in Help buffers.
  • Configured the Lin group in Custom UI buffers to show a link to the package's Info manual. Again, this helps the user find information about Lin.
  • Removed old forms that rendered obsolete certain functions or variables. This keeps the code base small and focused on the current feature set.

The switch to version 1.0.0 is mostly symbolic. Lin has been stable and feature-complete practically since its inception. This change shows that most (all?) of the work has been accomplished.

Version 0.4.0 on 2022-06-09

Version 0.3.0 on 2022-04-08

  • Changed the source repository from GitLab to SourceHut: https://git.sr.ht/~protesilaos/lin. Use the mailing list to start a discussion, report a bug, send a patch, etc.: https://lists.sr.ht/~protesilaos/lin. The GitLab URL will serve as a mirror from now on (a GitHub mirror is still available and will remain that way).
  • Introduced a buffer-local minor mode as well as its global equivalent: lin-mode and lin-global-mode. This makes it easier to set up Lin in user init files and/or toggle it on demand. The following shows how the package can be used:

    (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)
    
    (setq lin-mode-hooks
          '(bongo-mode-hook
            dired-mode-hook
            elfeed-search-mode-hook
            git-rebase-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
            tabulated-list-mode-hook))
    
    (lin-global-mode 1)
    
  • The lin-face now has a custom setter which automatically updates its appearance in all buffers where lin-mode is enabled. Users might thus prefer to set its value with customize-set-variable in order to find the style they like the most. Otherwise setting the value with setq is just fine for stable configurations. If, in that case, the user wants to update the face, they must invoke revert-buffer or equivalent (e.g. type g in Dired with the default key bindings) or evaluate the function lin-enable-mode-in-buffers.
  • The user option lin-mode-hooks now includes bongo-mode-hook (from the bongo package). Its default value is shown in the sample code above.

Version 0.2.0 on 2022-03-16

Rewrote the entirety of lin.el to make the configuration easier and keep the code streamlined. The gist is that now Lin automatically enables hl-line-mode in every mode implied by lin-mode-hooks. Here is how Lin should be set up henceforth:

(require 'lin)

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

(lin-setup) ; Either run this or change `lin-mode-hooks'

(customize-set-variable
 'lin-mode-hooks ; do not use `setq' with this; `customize-set-variable' runs `lin-setup' automatically
 '(dired-mode-hook
   elfeed-search-mode-hook
   git-rebase-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
   tabulated-list-mode-hook))

The manual has been updated to reflect those changes: https://protesilaos.com/emacs/lin.

Thanks to:

  • Christian Tietze for showing how the Lin face can use colors from the macOS palette. The original contribution was in merge request 2: https://gitlab.com/protesilaos/lin/-/merge_requests/2. Now we provide the lin-mac and lin-mac-override-fg faces. These can be assigned as a value to the user option lin-face.
  • Damien Cassou for suggesting that Lin sets itself up for a list of mode hooks. The original contribution was in merge request 3: https://gitlab.com/protesilaos/lin/-/merge_requests/3. It has now been rewritten as the lin-mode-hooks user option, though the idea is the same.
  • Federico Stilman for adding mu4e-headers-mode to the list that Damien had provided and which now lives as lin-mode-hooks. Federico's contribution was sent as a patch via email.

Version 0.1.0 on 2022-03-14

Initial release of the package. Please read the manual.