Commit graph

567 commits

Author SHA1 Message Date
Daniel Eklöf
aee5045395
search: wip: initial search matching
* match search buffer against scrollback content
* adjust view to ensure matched content is visible
* create selection on a successful match
* finalize selection when user presses enter (to "commit" the search)
* ctrl+r searches for the next match. Needs more work though.
2019-08-27 19:33:19 +02:00
Daniel Eklöf
61cabdac13
search: wip: re-direct input while searching, and build a search buffer
This adds a new state, 'is_searching'. While active, input is
re-directed, and stored in a search buffer. In the future, we'll use
this buffer and search for its content in the scrollback buffer, and
move the view and create a selection on matches.

When rendering in 'is_searching', everything is dimmed. In the future,
we'll render the current search buffer on-top of the dimmed "regular"
terminal output.
2019-08-27 17:23:28 +02:00
Daniel Eklöf
2d7ca416f0
render: center grid in window
Instead of placing the upper left corner of the grid at 0,0 in the
window, center it.
2019-08-27 15:25:35 +02:00
Daniel Eklöf
382bea8309
vt: tidy lazy initialization of escape parameters 2019-08-27 15:24:49 +02:00
Daniel Eklöf
936526ed5b
vt: no need to reset OSC string in CLEAR action
... as this is done when a new OSC string is started
2019-08-27 15:24:19 +02:00
Daniel Eklöf
8d65f45bf5
vt: store alt charset characters as wchars 2019-08-27 15:23:50 +02:00
Daniel Eklöf
0c5a19f950
vt: bug: fix lazy initialization of sub parameter value (off-by-one) 2019-08-24 11:39:28 +02:00
Daniel Eklöf
9b74cedb20
vt: clear CSI parameters lazily
The CLEAR action is so common, that explicitly clearing the entire
params array, which is kind of big, is too slow.

Clear it lazily instead. Meaning, we only set 'idx' (count) to 0 in
CLEAR. Then whenever we parse a parameter, clear the value and sub
parameters.
2019-08-24 11:33:13 +02:00
Daniel Eklöf
dcf6d18872
render: log frame rendering time with microseconds instead of milliseconds 2019-08-24 11:32:28 +02:00
Daniel Eklöf
6f0e92627e
generate-alt-random-writes: reset SGR and scroll region at the end 2019-08-23 21:06:33 +02:00
Daniel Eklöf
5ce60703a5
config: turn info log message into a debug log message 2019-08-23 20:21:27 +02:00
Daniel Eklöf
0c90717249
grid: remove commented out code 2019-08-23 20:07:27 +02:00
Daniel Eklöf
0a40a5b6a2
term: remove commented out code 2019-08-23 20:07:05 +02:00
Daniel Eklöf
990eacdad4
colors: change default 'bright0' from 000000 -> 666666 2019-08-23 19:42:14 +02:00
Daniel Eklöf
7026f60717
add config + command line option for setting initial window width/height 2019-08-23 17:26:41 +02:00
Daniel Eklöf
4e2067446a
main: use slave's exit value as our exit value 2019-08-23 17:23:47 +02:00
Daniel Eklöf
74a0c5f3fc
render: change resize debug log message to an info log message 2019-08-23 17:23:09 +02:00
Daniel Eklöf
7c7720a3ab
scrolling: optimize row access by assuming number of rows is a power of 2
With this assumption, we can replace 'a % b' with 'a & (b - 1)'. In
terms of instructions, this means a fast 'and' instead of a slow
'div'.

Further optimize scrolling by:

* not double-initializing empty rows. Previously, grid_row_alloc()
  called calloc(), which was then followed by a memset() when
  scrolling. This is of course unnecessary.

* Don't loop the entire set of visible rows (this was done to ensure
  all visible rows had been allocated, and to prefetch the cell
  contents).

  This isn't necessary; only newly pulled in rows can be NULL. For
  now, don't prefetch at all.
2019-08-22 17:33:23 +02:00
Daniel Eklöf
f0663c951e
generate-alt-random-writes: generate color, scroll and scroll region sequences 2019-08-22 17:31:13 +02:00
Daniel Eklöf
0cb3e70ecf
PKGBUILD: profiling payload: random writes to the alt screen 2019-08-21 20:01:59 +02:00
Daniel Eklöf
832f6520d0
generate-alt-random-writes: script to generate payload for profiling 2019-08-21 20:01:17 +02:00
Daniel Eklöf
2b96f32d19
PKGBUILD: prepare for profile guided compilation 2019-08-21 19:41:41 +02:00
Daniel Eklöf
c75518123b
PKGBUILD: performance: build without stack protector 2019-08-21 19:38:48 +02:00
Daniel Eklöf
675504308a
osc: add debug logs when colors are changed and reset 2019-08-21 18:54:12 +02:00
Daniel Eklöf
d8fb80ea32
term: rename colors256 -> table 2019-08-21 18:50:24 +02:00
Daniel Eklöf
631e0c0870
term: use colors256 array for *all* colors
That is, remove the 'regular' and 'bright' color arrays. This is
possible since the 256-color array is defined such that the first 16
colors map to the regular and bright colors.
2019-08-21 18:47:48 +02:00
Daniel Eklöf
65e4b93a03
osc: fix indexing into 'bright' color array 2019-08-21 18:02:18 +02:00
Daniel Eklöf
52ece3592c
osc: implement "change color" commands
This implements OSC 4, 10, 11 - change <color>/foreground/background,
and their corresponding 'query' variant (which was already implemented
for OSC 10/11).

It also implements OSC 104, 110, 111 - reset
<color>/foreground/background.

Set corresponding terminfo entries to signal this support to clients.
2019-08-21 17:57:02 +02:00
Daniel Eklöf
c1903f5522
render: multiply width/height with *new* scale factor, not old 2019-08-21 17:56:41 +02:00
Daniel Eklöf
d7aaeaedee
csi: move 256-color table into the terminal struct 2019-08-21 17:56:21 +02:00
Daniel Eklöf
3efc30c6a1
main: fix debug logs 2019-08-21 17:55:40 +02:00
Daniel Eklöf
842d114cdb
main: don't set scale before we know what it actually should be 2019-08-21 17:55:11 +02:00
Daniel Eklöf
0a80269be7
main: we *do* track outputs 2019-08-21 17:54:58 +02:00
Daniel Eklöf
d5bc46f333
render: reload cursor theme when scale (may) have changed 2019-08-21 17:53:52 +02:00
Daniel Eklöf
776432ded3
erase-cells: don't memset when keeping background color 2019-08-20 21:11:09 +02:00
Daniel Eklöf
71c6f11e86
input: back out accidental commit of debug code 2019-08-19 21:18:43 +02:00
Daniel Eklöf
4168f91d40
csi: implement CSI ? 1007 h/l - alternateScroll
When enabled, mouse scrolls in the alternate screen are converted to
up/down key presses.
2019-08-19 21:16:47 +02:00
Daniel Eklöf
9029478e8c
font: tentative support for BGR, V-RGB and V-BGR 2019-08-19 17:45:21 +02:00
Daniel Eklöf
d84b485202
render: don't 're-calculate fg unnecessarily 2019-08-18 18:11:38 +02:00
Daniel Eklöf
33b5210a6a
refactor: break out stride calculation to new function 2019-08-18 17:59:43 +02:00
Daniel Eklöf
8aa53d1508
README: subpixel antialiasing has been implemented 2019-08-18 17:41:49 +02:00
Daniel Eklöf
0060e33912
font: implement subpixel antialiasing 2019-08-18 17:40:57 +02:00
Daniel Eklöf
9b6d0cfcd1
render: minor optimization
Don't instantiate a pixman color unnecessarily when drawing a block
cursor.
2019-08-17 17:43:47 +02:00
Daniel Eklöf
80aef9b6af
render: use 32-bit pixman calls, where applicable 2019-08-17 17:36:27 +02:00
Daniel Eklöf
e356dd6cac
README; emphasize bitmap and color emoji font support 2019-08-17 12:51:40 +02:00
Daniel Eklöf
579a6bf6f6
ci: need ncurses (for 'tic' - to generate terminfo) 2019-08-17 12:47:18 +02:00
Daniel Eklöf
c4c2b93751
ci: initial CI 2019-08-17 12:44:51 +02:00
Daniel Eklöf
a421c2ad60
README: split up requirements into "running" and "building" 2019-08-17 12:42:28 +02:00
Daniel Eklöf
3d6bbf0fe8
meson: remove unused wayland protocols 2019-08-17 12:02:05 +02:00
Daniel Eklöf
d21c4a02a0
Merge branch 'pixman' 2019-08-17 11:59:52 +02:00