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
0e2219daa9
PKGBUILD/meson: bump version to 1.0.0
2019-12-15 12:43:46 +01:00
Daniel Eklöf
5cd8af44c6
meson: we now require -lm
2019-12-05 19:35:54 +01:00
Daniel Eklöf
cbef66ac07
meson: require fcft 0.4.x
2019-12-05 19:33:31 +01:00
Daniel Eklöf
d179287fb0
meson: we don't need -lm anymore
2019-12-03 21:40:32 +01:00
Daniel Eklöf
6c817d309e
meson: we don't need -lm anymore
2019-12-03 21:16:41 +01:00
Daniel Eklöf
0f15f0ba43
fcft: update to 0.3.0
...
fcft now calculates the underline and strikeout integer positions,
making our rendering code much simpler.
2019-12-03 21:03:52 +01:00
Daniel Eklöf
198529525c
selection: break out isword() to a new file
2019-12-03 19:16:58 +01:00
Daniel Eklöf
b3334444bb
meson: require fcft 0.2.0
2019-12-01 19:25:15 +01:00
Daniel Eklöf
c92746203a
meson: fcft: version must be 0.1.x
2019-12-01 18:47:39 +01:00
Daniel Eklöf
1307f61da1
PKGBUILD/meson: add version requirements to tllist+fcft
2019-12-01 17:50:27 +01:00
Daniel Eklöf
fcea49920f
meson: tllist/fcft: use system dependency first, fallback to subprojects
2019-12-01 16:11:35 +01:00
Daniel Eklöf
ba56379055
meson/PKGBUILD: we no longer depend directly on fontconfig/freetype
2019-12-01 15:42:28 +01:00
Daniel Eklöf
30f58bac56
meson: tllist/fcft: oops, forgot to set 'required: false'
2019-12-01 13:54:18 +01:00
Daniel Eklöf
fd9c28464d
fcft: use fcft instead of local copy of font.c/font.h
2019-12-01 13:43:51 +01:00
Daniel Eklöf
3c939f76e3
meson: tllist: try subproject first, then fallback to system dependency
2019-12-01 13:40:19 +01:00
Daniel Eklöf
310ead65ec
meson: add 'version' dependency to footclient
...
footclient (`client.c`, to be precise) includes `version.h`, which is
a generated file.
2019-11-18 17:01:34 +01:00
Daniel Eklöf
dd7058d368
tllist: use tllist from external git repository
2019-11-17 19:10:35 +01:00
Daniel Eklöf
9ae5c311d1
async: add async_write(), a write primitive to write to a NONBLOCK:ing FD
2019-11-04 13:46:30 +01:00
Daniel Eklöf
6637c8aeda
client: a standalone binary that connects to a foot --server
2019-11-01 20:39:34 +01:00
Daniel Eklöf
a1efd65746
server: implement a --server mode
...
In this mode, foot listens on a UNIX socket and creates terminal
windows when clients connect.
A connecting client sends argc/argv to the server, and the server
instantiates a new terminal window.
When the terminal window is closed, the exit code is sent back to the
client.
2019-11-01 20:39:09 +01:00
Daniel Eklöf
c9455d5f21
kbd: move into wayland
2019-10-27 17:10:32 +01:00
Daniel Eklöf
061bbd7049
kbd: break out XKB kbd struct to a separate file
2019-10-27 16:21:19 +01:00
Daniel Eklöf
942ff566a2
wayland: implement wayl_destroy()
2019-10-27 15:57:23 +01:00
Daniel Eklöf
0120c57ed5
wayland: move wayland struct definitions to a separate file
2019-10-27 13:06:39 +01:00
Daniel Eklöf
5fefb950b3
fdm: use the FDM's poll loop
2019-10-27 11:46:18 +01:00
Daniel Eklöf
6643fe5456
completions: add zsh completions
2019-10-20 11:54:58 +02:00
Daniel Eklöf
286db002f8
meson: fix version generation from git
...
run_command() was only run at configure time, meaning the generated
version (that was passed on to the sources via -DFUZZEL_VERSION)
became stale.
Fix by implementing a shell script that generates a header file, and
wrap this in a custom target that is run every time (but the generated
file is only updated when the version changes)
2019-10-19 22:09:52 +02:00
Daniel Eklöf
4cf39e5c42
meson: install footrc example file to $datadir/foot/footrc
2019-09-20 18:12:58 +02:00
Daniel Eklöf
47da5b4086
main: request server-side decorations
2019-08-30 17:55:45 +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
3d6bbf0fe8
meson: remove unused wayland protocols
2019-08-17 12:02:05 +02:00
Daniel Eklöf
f45e5c6aef
Remove all references to cairo; we now use pixman only
2019-08-16 22:11:22 +02:00
Daniel Eklöf
9259696b18
meson: add pixman dependency
2019-08-16 18:07:04 +02:00
Daniel Eklöf
74f723e0cf
output: initial support for output scaling
...
* Not updated run-time; only scale at start up used
* Multiple monitors (outputs) not supported, as we can't track which
output we're on (yet).
2019-08-12 21:33:24 +02:00
Daniel Eklöf
d405c7022f
doc: add foot.1 man page
2019-08-11 20:54:28 +02:00
Daniel Eklöf
1060c8e892
main: add -h,--help and -v,--version command line options
2019-08-11 16:03:29 +02:00
Daniel Eklöf
4302d3eb68
font: set FT load and render flags from FontConfig properties
2019-07-29 20:10:55 +02:00
Daniel Eklöf
175dc9cf94
cairo-ft: remove all usages of cairo-ft
2019-07-28 12:45:01 +02:00
Daniel Eklöf
838738a04a
terminfo: add XM (mouse initialization)
2019-07-21 20:46:17 +02:00
Daniel Eklöf
2096753b52
dcs: we have no parent terminal to pass through to
2019-07-21 18:22:26 +02:00
Daniel Eklöf
bb8a733758
base64: initial base64 decode implementation
2019-07-19 11:11:25 +02:00
Daniel Eklöf
b953326768
dcs: sort of implement DCS passthrough
...
We now store the passthrough characters in a buffer, and call
dcs_passthrough() on unhook.
However, dcs_passthrough() doesn't do anything.
2019-07-19 09:55:07 +02:00
Daniel Eklöf
0c565d1558
terminfo: intitial terminfo specification
2019-07-18 14:00:33 +02:00
Daniel Eklöf
2046dc0fbd
slave: break out command line tokenizer
2019-07-17 09:46:45 +02:00
Daniel Eklöf
0d1b4449b9
conf: initial support for configuration file
...
* Look for configuration file in (in this order):
- XDG_CONFIG_HOME/footrc
- ~/.config/footrc
* Currently supports setting the font
2019-07-16 11:52:22 +02:00
Daniel Eklöf
433c81f54b
meson: install foot.desktop
2019-07-15 15:47:45 +02:00
Daniel Eklöf
6077b57ca5
rename project to 'foot'
2019-07-11 20:10:59 +02:00
Daniel Eklöf
703aeecb95
selection: add support for pasting *from* primary
2019-07-11 17:38:03 +02:00
Daniel Eklöf
bcf763d417
selection: add a selection API
2019-07-11 17:38:01 +02:00