Commit graph

263 commits

Author SHA1 Message Date
Daniel Eklöf
c66ad118b7
changelog: add contributor 2020-10-09 19:19:40 +02:00
Daniel Eklöf
5b0af8ed59
csi: only respond to Primary DA when Ps == 0 2020-10-09 18:53:00 +02:00
Daniel Eklöf
606e901cea
changelog: we’ve fixed several sixel+reflow related bugs 2020-10-09 07:44:18 +02:00
Daniel Eklöf
bc75f4744c
sixel: fix sheared image when image crosses scrollback wrap-around
When a sixel image crosses the scrollback wrap-around, it is split up
into (at least) two pieces.

We use cursor->point.col for all pieces’ x-coordinate. This caused the
final image to appear sheared, since we do a carriage-return (after a
number of linefeeds) after each piece - this causes the cursor’s
position to be reset to the left margin.

The solution is simple; remember the cursor’s initial x-coordinate,
and use that to position all image pieces.

Closes #151.
2020-10-09 07:44:15 +02:00
Daniel Eklöf
96405c2ca9
sixel: overwrite-by-rectangle expects ‘width’ to not exceed screen
This fixes a crash when the emitted sixel extends beyond the right
margin. The crash only happens when there are other sixel images
already emitted.

Fixes part of #151
2020-10-09 07:44:13 +02:00
Daniel Eklöf
7c6686221f
bell: optionally render margins in red when receiving BEL
Add anew config option, ‘bell=none|set-urgency’. When set to
‘set-urgency’, the margins will be painted in red (if the window did
not have keyboard focus).

This is intended as a cheap replacement for the ‘urgency’ hint, that
doesn’t (yet) exist on Wayland.

Closes #157
2020-10-08 19:55:32 +02:00
Daniel Eklöf
279341dd8e
render: apply opacity correctly when in reverse video mode 2020-10-08 19:53:11 +02:00
Daniel Eklöf
2b3cfb525a
changelog: fix CSI escape sequence 2020-10-08 19:52:10 +02:00
Daniel Eklöf
b1bdc2d4c1
config: ignore key/value pairs following an invalid section name
When we detected an invalid section name, we correctly logged this and
warned the user.

However, the internal state machine now had an invalid section enum
value. This caused a crash when the next key/value pair was to be
parsed and we tried to lookup which parser function to call.

Closes #159.
2020-10-07 18:34:48 +02:00
Daniel Eklöf
207b24538d
term: enable reverse wrap-around by default
Since we’re now doing reverse auto-wrapping by default, we add
‘bw’ (‘auto_left_margin’)to terminfo.
2020-10-06 18:42:26 +02:00
Daniel Eklöf
1ad766f4fb
changelog: reverse auto-wrap 2020-10-02 21:44:03 +02:00
Daniel Eklöf
5594746e49
Revert "term: cursor-left: reduce move count by one when lcf=true"
This reverts commit 02e3e4ac9b.

This broke at least Emacs. Cursor movement at the margins *is*
undefined, and the behavior we’re now reverting to matches XTerm.
2020-10-02 20:02:36 +02:00
Daniel Eklöf
02e3e4ac9b
term: cursor-left: reduce move count by one when lcf=true
When lcf is true, cursor is actually beyond the right margin, but the
stored coordinate is at the margin.

This means we need to reduce the number of cells to move the cursor by
one.

This fixes an issue where e.g. backspacing when the cursor is at the
right margin erased the next-to-last character instead of the last
character.
2020-10-01 20:08:29 +02:00
Daniel Eklöf
1110108c84
changelog: trackpad scrolling: ‘multiplier’ is in the ‘scrollback’ section 2020-09-29 19:47:29 +02:00
Daniel Eklöf
9c84b08ae4
changelog: multiplier: the option belongs to the ‘scrollback’ section 2020-09-29 19:43:39 +02:00
Daniel Eklöf
2cee11d74d
changelog: multiplier default value changed from 1.0 -> 3.0 2020-09-29 19:42:50 +02:00
Daniel Eklöf
08c1b35614
changelog: reword trackpad scrolling speed entry 2020-09-29 19:42:47 +02:00
Daniel Eklöf
a0ce7e40af
input: trackpad scroll: correctly convert pixel movements to line movements
Trackpad scroll movements are in pixels. Foot previously “translated”
these directly to line movements (i.e. a one pixel scroll event was
translated into a one line scroll).

Now we use the line height of the terminal and correctly convert
pixels to lines.

This makes the trackpad scroll speed in foot consistent with the
scroll speed in e.g. Alacritty and Kitty.
2020-09-29 19:42:31 +02:00
Daniel Eklöf
a0d1d2f1c8
grid: reflow: retain scrollback position
Closes #142
2020-09-29 19:40:14 +02:00
Daniel Eklöf
002648d2a9
changelog: fixed color flashes with OSC 4,10,11 2020-09-29 10:11:03 +02:00
Daniel Eklöf
6a089c92ca
input: mouse: match binding if binding’s click count is *less*
Allow a mouse binding to match even if its click count is less than
the actual click count.

If there are multiple bindings that match, use the one with the
highest click count (that less than, or equal to the actual click
count).

Closes #146
2020-09-27 14:31:39 +02:00
Daniel Eklöf
a683a13120
Revert "meson: add -Dwith-docs=disabled|enabled|auto"
This reverts commit 9d6b2c9342.
2020-09-24 16:44:26 +02:00
Daniel Eklöf
9d6b2c9342
meson: add -Dwith-docs=disabled|enabled|auto
When enabled, man pages are generated and installed, along with
README.md, CHANGELOG.md and LICENSE. This requires ‘scdoc’ as a make
dependency.

When disabled, ‘scdoc’ is no longer required, no man pages will be
built, and no documentation at all is installed.

Defaults to ‘enabled’.
2020-09-24 16:39:19 +02:00
Daniel Eklöf
f8174ebb93
changelog: add new ‘unreleased’ section 2020-09-18 21:29:39 +02:00
Daniel Eklöf
377a721b08
changelog: prepare for 1.5.0 2020-09-18 21:22:59 +02:00
Daniel Eklöf
70cf0966a5
changelog: add cherti to contributors 2020-09-18 21:22:27 +02:00
Daniel Eklöf
c244ff522e
Revert "changelog: add cherti to contributors"
This reverts commit 8f3692f9a6.
2020-09-18 21:22:10 +02:00
Daniel Eklöf
8f3692f9a6
changelog: add cherti to contributors 2020-09-18 21:20:12 +02:00
Daniel Eklöf
3e9186a042
changelog: mouse events -> mouse scroll events 2020-09-15 19:29:38 +02:00
Daniel Eklöf
f2497320c6
config: add mouse.alternate-scroll-mode option
This option controls the initial state of the Alternate Scroll Mode,
and defaults to ‘enabled’.
2020-09-15 19:12:29 +02:00
Daniel Eklöf
51a7e44fa2
config: add tweak.scaling-filter
Use the new fcft_set_scaling_filter() API to use a non-default scaling
filter.

By default, we use lanczo3, the ‘best’ filter. This overrides the
default in fcft, which is ‘cubic’ filtering.
2020-09-13 17:59:56 +02:00
Daniel Eklöf
2d4a59ab99
Merge branch 'scroll-half-page' into master
Closes #128
2020-09-11 18:22:09 +02:00
Daniel Eklöf
4d13429235
key-binding: deprecate scrollback-up/down, add scrollback-up/down-line
This deprecates/renames scrollback-up/down to scrollback-up/down-page.

It also renames scrollback-up/down-half to
scrollback-up/down-half-page, and adds the new bindings
scrollback-up/down-line.
2020-09-10 18:17:47 +02:00
Daniel Eklöf
3a308cc870
render: csd: hide buttons when title bar gets too small to fit them 2020-09-10 07:37:54 +02:00
Daniel Eklöf
a1ab31eea5
grid: reflow: make sure cursor is within the visible screen area
Even though we translate the cursor position from the old grid
coordinates to the new, the cursor may _still_ end up outside the
visible area.

Make sure it doesn’t.
2020-09-10 07:37:08 +02:00
Daniel Eklöf
2e3bd5e23c
config: add scrollback-{up,down}-half key bindings
These new bindings scroll up/down half a page in the
scrollback (instead of the full page scrolled by
‘scrollback-{up,down}’).

Closes #128.
2020-09-09 19:40:48 +02:00
Daniel Eklöf
776b831d89
osc52: unset (clear) selection when an invalid payload is received 2020-09-09 19:01:39 +02:00
Daniel Eklöf
99023cae99
Merge branch 'window-size-in-characters' into master 2020-09-09 19:00:30 +02:00
Daniel Eklöf
da091fb9d3
Merge branch 'keymap-shift-return' into master 2020-09-09 19:00:13 +02:00
Daniel Eklöf
eb6737ca25
Add -W,--window-size-chars, and foot.ini:initial-window-size-chars
* Add -W,--window-size-chars command line option
* Add initial-window-size-chars foot.ini option
* Add -w,--window-size-pixels command line option
* Add initial-window-size-pixels foot.ini option
* Deprecate -g,--geometry command line option in favor of
  -w,--window-size-pixels
* Deprecate geometry option in foot.ini in favor of
  initial-window-size-pixels
2020-09-08 19:41:00 +02:00
Daniel Eklöf
fa6ad0f030
changelog: move deprecation section up first, change most ‘footrc’ -> ‘foot.ini’
The deprecation sections mentions ‘footrc’ being deprecated, and
replaced by ‘foot.ini’. Since a lot of the changelog entries refer to
foot.ini, make sure the user sees this first.

Also, use foot.ini (and not footrc) consistently in all changelog entries.
2020-09-08 19:37:59 +02:00
Daniel Eklöf
18e00a55f6
keymap: emit \E[27;2;13~ for all key combinations involving Shift+Return
This is what XTerm emits with `modifyOtherKeys=1`, which is foot’s only mode.
2020-09-07 22:20:13 +02:00
Daniel Eklöf
19ec06b999
Merge branch 'reflow-multi-column-composed-characters' into master 2020-09-07 19:41:42 +02:00
Daniel Eklöf
6e4d29ef71
render: change minimum window size from 4x20 -> 1x2 (rows/cols) 2020-09-07 19:34:06 +02:00
Daniel Eklöf
61f950f77a
grid: reflow: calculate width of composed characters correctly
Before this patch, reflow called `wcwidth()` on our magic values for
composed characters.
2020-09-06 19:14:46 +02:00
Daniel Eklöf
f9cbdd3b11
changelog: scrollback indicator did not exist in 1.4(.4)
Thus it’s wrong to say its behavior has changed.
2020-09-06 19:05:17 +02:00
Daniel Eklöf
dd19173989
Merge branch 'improve-handling-of-private-usage-area-characters' into master
Closes #116
2020-09-06 08:28:20 +02:00
Daniel Eklöf
26d37b3305
changelog: output objects received before XDG output manager 2020-09-04 18:08:37 +02:00
Daniel Eklöf
b71016c25d
render: optionally enable heuristics that deal with private usage area chars
Try to detect double-width *glyphs* for single-width *characters*, and
allow them to overflow into the next cell.

This is only done for single-width chars with a glyph width that is at
least 1.5 cells wide, but at most 3 cells.

The feature is gated by the new
‘tweak.allow-overflowing-double-width-glyphs’, and is disabled by
default.

Closes #116
2020-09-03 17:37:44 +02:00
Daniel Eklöf
3309d8d779
changelog: new configuration file location 2020-08-27 20:02:43 +02:00