Commit graph

1132 commits

Author SHA1 Message Date
Daniel Eklöf
aabb7a7e8f
render: attrs_to_font: const:ify 2019-12-19 07:28:33 +01:00
Daniel Eklöf
e7abd6ce97
osc: commented out beginning of OSC 777
I haven't decided if I want to support this
2019-12-19 07:28:10 +01:00
Daniel Eklöf
f8009b549a
term: cursor blink reset doesn't force-refresh the cursor 2019-12-19 07:27:41 +01:00
Daniel Eklöf
0efcb66f3a
term/render: check for is_shutting_down in grid_render() 2019-12-19 07:27:14 +01:00
Daniel Eklöf
4c924ab14a
main: verify locale is UTF-8 2019-12-19 07:25:05 +01:00
Daniel Eklöf
a366bc9ace
term: remove TODO 2019-12-19 07:24:46 +01:00
Daniel Eklöf
81840b4e8e
cursor blink: move reset to pty input 2019-12-19 07:23:58 +01:00
Daniel Eklöf
c22ae98729
render: get rid of 'all-clean' detection
Instead of trying to figure out if we had to render
something (i.e. something in the grid was dirty), and using that to
determine whether to post a callback or not, we now let
render_refresh() set a flag indication we need to render another
frame.

This simplifies render_grid(), which now _always_ renders, and pushes
it to the compositor.

The callback handler checks the pending flag and simply doesn't call
render_grid() when there's no more pending state to render.

This ends up reducing the number of wakeups when e.g. having a
blinking cursor.
2019-12-17 19:14:56 +01:00
Daniel Eklöf
418ff5bcd9
render: move blink timer handling to term.c 2019-12-17 19:14:55 +01:00
Daniel Eklöf
5f2592bd4b
completions: zsh: footclient: auto-complete files for -s,--server-socket 2019-12-17 19:10:19 +01:00
Daniel Eklöf
f408a070e2
completions: zsh: add -c,--config 2019-12-17 19:10:07 +01:00
Daniel Eklöf
6c52cc35c3
doc: foot.5: mention that setting workers=0 disables multithreading 2019-12-17 19:09:19 +01:00
Daniel Eklöf
9d09a09edd
doc: foot.1: add -c,--config 2019-12-17 19:09:09 +01:00
Daniel Eklöf
caa76bcdea
config: enable user to specify path to configuration file 2019-12-17 19:08:43 +01:00
Daniel Eklöf
d15631e3de
main: remove unused macros 2019-12-17 19:08:04 +01:00
Daniel Eklöf
a0fcec3a3d
log: caller can control syslog level 2019-12-17 19:07:28 +01:00
Daniel Eklöf
7a3fb9284e
render: render block cursor as a hollow rectangle when unfocused 2019-12-16 21:34:38 +01:00
Daniel Eklöf
66b948750e
input: restart cursor blink on keyboard input
This makes the cursor stay unblinking while typing.
2019-12-16 21:33:44 +01:00
Daniel Eklöf
f4e5baa123
term: disable cursor blink on unfocus, and re-enable on focus 2019-12-16 21:33:22 +01:00
Daniel Eklöf
dac31dd9c0
term: disable cursor blink before shutting down terminal, and remove from FDM 2019-12-16 21:32:57 +01:00
Daniel Eklöf
d490cc84c0
term: cursor blink: cursor refresh now dirties the cursor cell
Normally we don't dirty the cell on cursor movement. But, since a
blinking cursor isn't a cursor that has moved, our normal cursor
rendering wont work.

Dirty the cursor cell to force a redraw of it.
2019-12-16 21:31:40 +01:00
Daniel Eklöf
7d29435d86
term: implement cursor blinking
Blinking can be enabled either by setting the cursor style with

 CSI Ps SP q

and selecting a blinking style.

Or, with 'CSI ? 12 h'

Note that both affect the same internal state. I.e. you can disable
blinking with CSI ? 12l after having selected a blinking cursor
style. This is consistent with XTerm behavior.
2019-12-15 15:07:56 +01:00
Daniel Eklöf
5106937c7b
fdm: close fd even if we didn't find it in our list
This behavior is debatable, but helps in error handling where we're
removing a bunch of descriptors where not all of them have been added
to the FDM yet.
2019-12-15 15:06:09 +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
2f475d7b44
selection: optimize \r\n -> \n when receiving clipboard data
Instead of first memmoving, possibly lots of data lots of times, the
received buffer, and _then_ calling the callback, simply call the
callback multiple times, and just skip the \r character(s).
2019-12-15 12:11:12 +01:00
Daniel Eklöf
2c4af8728d
vt: add commented out cases for 8-bit C1 control characters
XTerm seems to ignore these when in UTF-8 mode. Since we _only_
support UTF-8, we don't need to recognize these control characters at
all.

However, it may be good to have them here for reference. So add them,
but commented out, along with their corresponding 7-bit
versions (which we _do_ recognize and implement).
2019-12-14 20:28:05 +01:00
Daniel Eklöf
afc8ed97a6
csi: describe format of reply to tertiary DA 2019-12-14 19:10:59 +01:00
Daniel Eklöf
7d8327369b
csi: Send Device Attributes, Tertiary DA: require Ps == 0 2019-12-14 14:38:03 +01:00
Daniel Eklöf
c186f3dc0e
client: strncpy() size limit must be less than destination size 2019-12-14 13:14:24 +01:00
Daniel Eklöf
b2f72d470a
client: add missing break after handling -t,--term 2019-12-14 13:07:33 +01:00
Daniel Eklöf
4102f9d478
client: add 's:' to the list of recognized short options 2019-12-14 13:07:19 +01:00
Daniel Eklöf
9862d2c3a9
Merge branch 'server-socket-path' 2019-12-14 13:03:22 +01:00
Daniel Eklöf
cc0903cabe
completions: zsh: footclient: add -s,--server-socket 2019-12-14 13:02:33 +01:00
Daniel Eklöf
1808c8a5fc
completions: zsh: foot: complete optional -s,--server PATH argument 2019-12-14 13:02:08 +01:00
Daniel Eklöf
a71147a64d
doc: footclient.1: add -s,--server-socket 2019-12-14 13:01:54 +01:00
Daniel Eklöf
ccb3ce5df7
doc: foot.1: update with optional PATH argument to -s,--server 2019-12-14 13:01:37 +01:00
Daniel Eklöf
c0a9cf7767
client: initialize/deinitialize the logging system 2019-12-14 13:01:21 +01:00
Daniel Eklöf
c5875bf97c
client: add -s,--server-socket command line option
This allows the user to override the default
path (XDG_RUNTIME_DIR/foot.sock) we try to connect to.
2019-12-14 13:00:48 +01:00
Daniel Eklöf
44f24b01bc
main: allow server socket path to be set on the command line
This adds an optional argument to -s,--server that allows the user to
override the default socket path (XDG_RUNTIME_DIR/foot.sock).
2019-12-14 12:59:54 +01:00
Daniel Eklöf
89ea61cf0c
server: use socket-path from config 2019-12-14 12:59:38 +01:00
Daniel Eklöf
6d31bd63be
config: add 'server_socket_path' and set a default value 2019-12-14 12:59:06 +01:00
Daniel Eklöf
6ef65058cf
server: log socket packet 2019-12-13 22:28:48 +01:00
Daniel Eklöf
5cd8af44c6
meson: we now require -lm 2019-12-05 19:35:54 +01:00
Daniel Eklöf
db1d913ba8
wayland: include more output (monitor) details in the log output 2019-12-05 19:35:34 +01:00
Daniel Eklöf
8dc9560431
term: determine cell width from the width of the space character 2019-12-05 19:34:47 +01:00
Daniel Eklöf
6da88ddf01
config: trim leading spaces from fonts
When splitting the font configuration into multiple font
specifications, we now trim leading spaces.

This makes no actual difference; fontconfig matched the fonts just
fine anyway, but this looks better in the logs.
2019-12-05 19:33:54 +01:00
Daniel Eklöf
0f8fcad26f
PKGBUILD: require fcft 0.4.x 2019-12-05 19:33:43 +01:00
Daniel Eklöf
cbef66ac07
meson: require fcft 0.4.x 2019-12-05 19:33:31 +01:00
Daniel Eklöf
434da5cc27
fcft: update to 0.4.0 2019-12-05 19:33:18 +01:00
Daniel Eklöf
ad56afe2f4
term: test: set font DPI to the highest DPI we find
In most cases (i.e. when there's only a single output/monitor), this
will be *the* DPI value.

In other cases, well...

The _right_ thing to do is track the outputs our window is actually
mapped on, and re-instantiate fonts depending on the current output's
DPI. But that's for the future...
2019-12-04 22:02:02 +01:00