diff options
Diffstat (limited to '.config/emacs/libraries/fill-column.el')
-rw-r--r-- | .config/emacs/libraries/fill-column.el | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/.config/emacs/libraries/fill-column.el b/.config/emacs/libraries/fill-column.el new file mode 100644 index 0000000..2a70cd6 --- /dev/null +++ b/.config/emacs/libraries/fill-column.el @@ -0,0 +1,39 @@ +;;; -*- lexical-binding: t; -*- +;;; Commentary: + +;; yanked from https://codeberg.org/daviwil/dotfiles/src/branch/master/emacs + +;;; Code: + + +(defvar fill-column-desired-width 120 + "The desired width of a document centered in the window.") + +(defun fill-column--adjust-margins () + "Resets window margins, then calculates the appropriate +margin given the window width and `fill-column-desired-width' +if fill-column-mode is t." + (set-window-parameter nil 'min-margins nil) + (set-window-margins nil nil) + (when fill-column-mode + (let ((margin-width (max 0 + (truncate + (/ (- (window-width) + fill-column-desired-width) + 2.0))))) + (when (> margin-width 0) + (set-window-parameter nil 'min-margins '(0 . 0)) + (set-window-margins nil margin-width margin-width))))) + +(define-minor-mode fill-column-mode + "Toggle centered text layout in the current buffer." + :lighter " Centered" + :group 'editing + (if fill-column-mode + (add-hook 'window-configuration-change-hook #'fill-column--adjust-margins 'append 'local) + (remove-hook 'window-configuration-change-hook #'fill-column--adjust-margins 'local)) + (fill-column--adjust-margins)) + + +(provide 'fill-column) +;;; fill-column ends here |