- Only scale body width with
text-scale-mode
for integer body width
- Reset window margins upon exit.
- Prevent initialize failure in console Emacs (#71).
- Quote mouse wheel events.
- Require
face-remap
.
- Add
olivetti-mode-off-hook
option
- Explicitly require fringe for console Emacs versions < 27
- Fix option misspelling of
olivetti-minimum-body-width
- Fix
olivetti-reset-window
with consfringe-mode
value
-
New option
olivetti-style
allows a choice of window elements to balance text body:nil
margins (default)t
fringesfancy
fringes and margins (fringes outside) -
Add
olivetti-fringe
face, remapped in olivetti buffers -
Change default value of
olivetti-body-width
tonil
, which calculates tofill-column
+2 -
Rewrite internals to use pixels
-
Avoid overriding
split-window-preferred-function
-
Call
mouse-set-point
to move point when clicking in margins and fringes -
Fix calling
olivetti-set-width
with prefix arg as width -
Kill local variables on quit
-
Walk all windows when calling
olivetti-reset-all-windows
, not just windows in the current frame -
Remove obsolete
olivetti-enable-visual-line-mode
-
Remove use of
min-margins
window parameter -
Remove obsolete alias for
turn-on-olivetti-mode
-
olivetti-(shrink|expand)
now allow setting body width to any value, no matter how stupid -
Simplify code
- On quit, only activate
visual-line-mode
if it was enabled before and not now; only deactivatevisual-line-mode
if it was disabled before and enabled. This prevents killing local variabletruncate-lines
.
- Update copyright, email, URLs
- Make
set-transient-map
a little more safe - History is now tracked in a fancy NEWS file
- Fix issue when deactivating olivetti in single window with multiple windows with olivetti active in frame (#50)
This release is not affiliated with CloudFlare DNS :)
- Use
olivetti-mode-on-hook
to enablevisual-line-mode
rather thanolivetti-enable-visual-line-mode
. This option is marked obsolete and has a setter function to add/remove visual-line-mode to the hook. - Implement scrolling when pointer is in margin 1
- Added undocumented
C-c |
binding shadowingC-\
- Refactor code for clarity.
1 code taken from https://github.com/joostkremers/visual-fill-column
- Use tradition coding style for mode map to allow for user override (#44)
- Add
olivetti-enable-visual-line-mode
user option (defaults to true) to make visual lines optional (#46)
- Fix an issue where calling some commands after
olivetti-expand
would break the transient keymap (#36)
- Run
olivetti-set-margins
when changing text-scale (#37)
- Add file-local variables (only affects hacking the package itself)
- Fixes an edge case where rebinding
olivetti-expand
would break everything - Removes
seq
requirement and thus can run on Emacs 24.5 again
- Fix compilation warnings
- Allow custom key binding on
olivetti-(expand|shrink)
- Add olivetti-mode-hook as user option
- olivetti now requires Emacs 25.3
Documentation fixes
-
Change key bindings to match Emacs builtin commands for shrinking/exapanding window:
olivetti-shrink C-c {
olivetti-expand C-c }
-
Update copyright to reflect move away from GNU ELPA
-
Fix for when
olivetti-scale-width
incorrectly assumes face height is always a fraction -
Change
olivetti-set-environment
->olivetti-set-margins
olivetti-set-all-margins
-
Remove redundant
turn-on-olivetti-mode
(just callolivetti-mode
) -
Explicitly require Emacs 24.5
-
Remove
olivetti-hide-mode-line
-- out of scope
- Change top-level customization group wp -> text
- Change default body width to 70
- Style refactoring
- Use both
post-command-hook
andwindow-configuration-change-hook
- Added safe custom variable properties (to ease use of file local variable for olivetti-body-width)
- Improved dealing with fringes
- Improvements to finding safe body width value and setting environment
- Fixed an issue where environment would not be set on all frames
- Now take into account size of window fringes #20
- Adds workaround for pointless stupid changes in Emacs 26.1.
- Only reset window parameter split-window if it's already
olivetti-split-window
- Fixed an issue when calling
whitespace-toggle-options
attempts to split window causingmax-specpdl-size
to be exceeded
- Fixed multiple problems with splitting windows, but it should all work now
Olivetti now works nicely with the improved window splitting functions in Emacs 25.1 without resorting to patching functions or using kludge window parameters.
Also
- Windows will split vertically when it is sensible to do so (previously windows would always split horizontally).
- Hiding the mode line is now compatible with
global-eldoc-mode
.
- Use the newly introduce
min-margins
window parameter introduced in Emacs 25.1 to avoid Emacs thinking the window is too small for splitting or needing to patchsplit-window-right
. - Fixed a possible issue where multiple windows displaying the same buffer would inherit smaller-than-suitable text body widths.
- Adds advice to
split-window-right
to workaround changes inwindow-min-size
introduced in Emacs 25.1 that return erronously large minimum window widths when using large margins. n.b. This is planned as a temporary measure until the Emacs maintainers fix the problems withwindow-min-size
and will hopefully be removed. See http://debbugs.gnu.org/24193. (#12)
- Olivetti now uses lexical binding
- Addition of
olivetti-mode-map
(key bindings were previously hard-coded) C-c
\ to interactively set text width- Change the lighter with
olivetti-lighter
- Added function quoting for betting byte compilation
-
Added a feature by @larstvei to more easily use
olivetti-shrink
andolivetti-expand
by pressing[
or]
in succession:olivetti-shrink C-c [ [ [ ...
olivetti-expand C-c ] ] ] ...
-
Olivetti now acts uniformly on all windows displaying the current buffer.
-
Olivetti now has a keymap. Interactively change olivetti-body-width with:
olivetti-shrink C-c [
olivetti-expand C-c ]
andolivetti-set-width
-
Optionally remember the state of
visual-line-mode
on entry and recall its state on exit. -
Fixes some bad behaviour when exiting (ref #7).
-
Added some missing docs.
- Added integration with
text-scale-mode
(#5)
- Fixed #3
- Allow
olivetti-set-width
to accept any number
- Made
olivetti-body-width
a buffer-local variable, so buffers can have different text body widths - Added
olivetti-set-width
to interactively change the text body width - Added
olivetti-expand
andolivetti-shrink
to change the text body width incrementally - Always checks that the text body width is "safe"
- Hard-coded
visual-line-mode
and removed mode hook bug
- Fixes #1
- Set a desired text body width to automatically resize window margins to keep the text comfortably in the middle of the window
- Text body width can be the number of characters (an integer) or a fraction of the window width (a float between 0.0 and 1.0)
- Optionally hide the modeline for distraction-free writing