Commit graph

1183 commits

Author SHA1 Message Date
Daniel Eklöf
b100a82c2a
wayland: only bind to 'presentation' interface if -p,--presentation-timings 2019-12-31 16:12:48 +01:00
Daniel Eklöf
7fe081600a
wayland: remove empty line 2019-12-31 16:07:05 +01:00
Daniel Eklöf
2cd7e51002
render: reset input/commit timestamps on presentation discarded event 2019-12-31 16:03:42 +01:00
Daniel Eklöf
d8761f31a2
wayland: make zxdg_output_v1_listener struct const 2019-12-31 15:43:15 +01:00
Daniel Eklöf
5a07419096
wayland: optionally use the presentation time protocol to measure input lag
This adds a flag, -p,--presentation-timings, that enables input lag
measuring using the presentation time Wayland protocol.

When enabled, we store a timestamp when we *send* a key to the
slave. Then, when we commit a frame for rendering to the compositor,
we request presentation feedback. We also store a timestamp for when
the frame was committed.

The 'presented' callback then looks at the input and commit
timestamps, and compares it with the presented timestamp.

The delay is logged at INFO when the delay was less than one frame
interval, at WARN when it was one frame interval, and at ERR when it
was two or more frame intervals.

We also update statistic counters that we log when foot is shut down.
2019-12-31 15:39:40 +01:00
Daniel Eklöf
ea1d072f52
main: let getopt_long() print error message 2019-12-29 18:35:06 +01:00
Daniel Eklöf
58a7ab76ba
main: third member in "struct option" is a pointer 2019-12-29 18:27:31 +01:00
Daniel Eklöf
67bacc2a94
main: use a single printf() when printing usage 2019-12-29 18:26:29 +01:00
Daniel Eklöf
8854ae134d
README: use triple quoted blocks for meson/ninja examples
This allows us to specify which syntax highlighting (sh) to use.
2019-12-29 15:37:35 +01:00
Daniel Eklöf
57956634e8
PKGBUILD: add 'wayland-protocols' to makedepends 2019-12-29 15:34:59 +01:00
Daniel Eklöf
135dbc301c
README: expand the 'install' section
* Talk about tllist + fcft
* Mention that the PKGBUILD requires tllist+fcft to be installed as
  system libraries
* Provide a short how-to-configure-and build with meson description
2019-12-29 15:28:34 +01:00
Daniel Eklöf
8a3fbf4419
README: remove combining character example that doesn't render in browsers 2019-12-29 14:53:45 +01:00
Daniel Eklöf
222b7c91e4
terminfo: set RGB flag in foot-direct 2019-12-26 17:57:45 +01:00
Daniel Eklöf
2667fdd877
csi: change DA3 reply to "FOOT", in hex 2019-12-21 20:35:55 +01:00
Daniel Eklöf
c91ef4c512
server: verify CWD string length matches the indicated length 2019-12-21 20:05:14 +01:00
Daniel Eklöf
cd382a467c
server: move forward the indicated number of TERM bytes 2019-12-21 20:05:00 +01:00
Daniel Eklöf
2a58fc27b7
server: bug: move forward 2 bytes, not whatever the client sent 2019-12-21 20:04:40 +01:00
Daniel Eklöf
39146fac5c
term: term_init: add 'cwd' argument
This is used when spawning the slave, to set its current working
directory just before we exec() the client.

In a regular foot instance, we set the cwd from getcwd().

In a foot server instance, each connecting client sends its cwd to the
server, and we use that.
2019-12-21 19:57:28 +01:00
Daniel Eklöf
277735db65
client/server: client sends its CWD to server 2019-12-21 19:56:37 +01:00
Daniel Eklöf
0bb15d3d16
Merge branch 'launch-new-instance' 2019-12-21 19:44:36 +01:00
Daniel Eklöf
c3a23cf5b7
osc: implement OSC 7 - set PWD
OSC 7 updates the terminal's view of the current working
directory. The format is OSC 7;URI ST

We decode the URI and updates the term structs 'cwd' member.

This is then used when spawning a new terminal instance.
2019-12-21 19:42:59 +01:00
Daniel Eklöf
016bde1bd4
term: wip: track current working directory
This sets the initial current working directory, as it is when the
terminal is instantiated.

We chdir() to it just before spawning a new terminal.
2019-12-21 15:35:54 +01:00
Daniel Eklöf
a484a65fef
term: term_spawn_new: always spawn foot/footclient from PATH 2019-12-21 15:29:42 +01:00
Daniel Eklöf
57de9feaa5
term: term_spawn_new(): new function, spawns a new foot/footclient process
Bind ctrl+shift+return to it
2019-12-21 15:27:17 +01:00
Daniel Eklöf
2a95f2949b
term: experimental: tweak delay timeouts
Increase the low timeout, to try to give clients/slaves more time to
emit data.

Decrease the upper timeout. On average, we should have ~½ frame left
until the next frame. So a maximum delay of a whole frame *will* delay
the update one extra frame in many cases.

Hopefully, the low timeout is still low enough that we don't miss the
next frame, on average.
2019-12-21 00:12:00 +01:00
Daniel Eklöf
b92cc9a7c7
Merge branch 'switched-based-vt-parser' 2019-12-21 00:05:21 +01:00
Daniel Eklöf
56824e459d
Revert "vt: refactor"
This reverts commit a575204bc7.
2019-12-20 23:59:23 +01:00
Daniel Eklöf
a575204bc7
vt: refactor 2019-12-20 23:45:21 +01:00
Daniel Eklöf
1bc8562026
vt: visually compact the switch tables 2019-12-20 23:38:16 +01:00
Daniel Eklöf
5a0e27fd6c
vt: remove enum action; add separate functions for each action instead 2019-12-20 23:27:15 +01:00
Daniel Eklöf
032f478661
vt: remove debug assert 2019-12-20 23:26:18 +01:00
Daniel Eklöf
9ad9e4ccaf
vt: use a pointer that we increment, instead of indexing 2019-12-20 23:00:07 +01:00
Daniel Eklöf
914b96cc9a
vt: use break, not continue 2019-12-20 22:13:23 +01:00
Daniel Eklöf
ee8a9674c4
vt: no need to assign to term->vt.state for *every* input byte 2019-12-20 22:12:35 +01:00
Daniel Eklöf
f36752f4d0
vt: remove dead code 2019-12-20 22:11:35 +01:00
Daniel Eklöf
d29de6f90a
vt: don't special case UTF-8 collect state 2019-12-20 22:10:27 +01:00
Daniel Eklöf
2d79497093
vt: convert SOS/PM/APC string from table lookup to switch 2019-12-20 21:50:54 +01:00
Daniel Eklöf
ad1773d7bc
vt: convert DCS from table lookup to switch 2019-12-20 21:48:04 +01:00
Daniel Eklöf
dca403e100
vt: convert CSI ignore from table lookup to switch 2019-12-20 21:13:06 +01:00
Daniel Eklöf
0d6555bea9
vt: convert CSI intermediate from table lookup to switch 2019-12-20 21:09:00 +01:00
Daniel Eklöf
d325ae10ee
vt: convert CSI param from table lookup to switch 2019-12-20 21:04:47 +01:00
Daniel Eklöf
23a6c6b711
vt: add missing 'entry' actions to 'anywhere' sections 2019-12-20 20:58:02 +01:00
Daniel Eklöf
b1fd960b4b
vt: convert CSI entry from table lookup to switch 2019-12-20 20:57:38 +01:00
Daniel Eklöf
a5f238b388
vt: re-align switches 2019-12-20 20:43:31 +01:00
Daniel Eklöf
b2f091d243
vt: replace GROUND, ESCAPE and ESCAPE_INTERMEDIATE tables with switches 2019-12-20 19:16:52 +01:00
Daniel Eklöf
56faca4266
vt: use a switch instead of a top-level state lookup table
Remove the top-level state lookup table, which mapped from a state
enum to a state transition table, and replace it with a switch.
2019-12-20 18:24:32 +01:00
Daniel Eklöf
5001dd844e
script: generate-alt-random: reduce output size 2019-12-19 20:01:52 +01:00
Daniel Eklöf
3f86a45f68
PKGBUILD: run foot with the default configuration 2019-12-19 20:00:54 +01:00
Daniel Eklöf
d6065ef659
osc: spell "#if 0" correctly 2019-12-19 19:55:52 +01:00
Daniel Eklöf
88a1ebafbd
render: fix bug when erasing old cursor; send correct compositor damage 2019-12-19 07:29:05 +01:00