Commit graph

1837 commits

Author SHA1 Message Date
Daniel Eklöf
992ceed7e0
doc: foot.1: list what a bug report should contain 2020-04-04 20:54:28 +02:00
Daniel Eklöf
1a08d94da1
doc: foot.1: add link to issue reporting 2020-04-04 20:36:46 +02:00
Daniel Eklöf
0f663cb4d0
readme: summary: add 'lightweight' 2020-04-04 14:53:05 +02:00
Daniel Eklöf
a658fee6b5
readme: remove the 'non-features' and 'what doesn't work' sections 2020-04-04 14:43:38 +02:00
Daniel Eklöf
f54657569b
meson: don't set -fno-stack-protector
Disabling the stack protection is generally bad, and I can't measure
any performance drops with it enabled.
2020-04-04 14:41:43 +02:00
Daniel Eklöf
6d7c686a3c
Merge branch 'osc4-multi-parameter' 2020-04-04 14:32:02 +02:00
Daniel Eklöf
5dc7608e3f
changelog: osc 4 multiple 'c;spec' pairs 2020-04-04 14:31:46 +02:00
Daniel Eklöf
5b67e97fc2
osc 104: handle multiple indices the same way we do in OSC 4 - use strtok() 2020-04-04 14:30:50 +02:00
Daniel Eklöf
ae1b235eaa
osc: 4: handle multiple idx;spec pairs 2020-04-04 14:27:44 +02:00
Daniel Eklöf
10330c2a9d
readme: tweak presentation of OSC 555 2020-04-04 13:58:29 +02:00
Daniel Eklöf
34b4d55c82
readme: markup of OSC sequences 2020-04-04 13:58:05 +02:00
Daniel Eklöf
5113fa7375
readme: document implemented OSC sequences 2020-04-04 13:56:55 +02:00
Daniel Eklöf
f0fbfe8e89
Merge branch 'right-mouse-extend-selection' 2020-04-04 12:10:43 +02:00
Daniel Eklöf
934452e1d5
doc: foot.1: right mouse button extends current selection 2020-04-04 12:09:56 +02:00
Daniel Eklöf
6ed8dc0dda
readme: right mouse button extends current selection 2020-04-04 12:09:30 +02:00
Daniel Eklöf
51718f2e9c
changelog: right mouse button extends current selection 2020-04-04 12:08:46 +02:00
Daniel Eklöf
035eccbb13
selection: extend: new row must be offsetted with the current view offset 2020-04-04 12:05:40 +02:00
Daniel Eklöf
fac4b73107
input: right mouse click extends the current selection 2020-04-04 12:02:07 +02:00
Daniel Eklöf
aa01521ff6
selection: add selection_extend()
This function extends an existing selection in the following way:

If the extension point is *before* the upper boundary of the current
selection, extend the selection upwards.

If the extension point is *after* the bottom boundary of the current
selection, extend the selection downwards.

If the extension point is *inside* the current selection, shrink the
selection such that the new size is maximized. This means we move the
*closest* start/end point from in the current selection.
2020-04-04 11:59:15 +02:00
Daniel Eklöf
2344f153d9
input: hardcoded left mouse button handler requires click-count <= 3
This enables user mappings for the left mouse button with click count
> 3

I.e. it is now possible to create custom quad-click mappings (except
we don't yet support this in footrc).
2020-04-04 11:57:33 +02:00
Daniel Eklöf
210c0ee5cd
input: only cancel selection on left mouse button clicks 2020-04-04 11:57:08 +02:00
Daniel Eklöf
ea2897582f
changelog: mention memfd sealing failures not being fatal errors fix 2020-04-03 20:17:47 +02:00
Daniel Eklöf
4e4eaf0a12
changelog: mention OSC 7 hostname validation fix 2020-04-03 20:16:56 +02:00
Daniel Eklöf
7466e87a31
osc: ignore OSC 7 when hostname doesn't match our own hostname 2020-04-03 20:15:54 +02:00
Daniel Eklöf
a208104743
shm: memfd seal failures are not fatal errors 2020-04-03 20:14:53 +02:00
Daniel Eklöf
0538b96dbb
doc: foot/footclient: fix highlighting of TITLE argument to --title 2020-04-01 20:01:31 +02:00
Daniel Eklöf
ec7a768487
conf: add 'title' conf option and --title command line option 2020-04-01 19:59:47 +02:00
Daniel Eklöf
57761fbd50
completions: zsh: repair -a,--app-id completions 2020-04-01 19:58:09 +02:00
Daniel Eklöf
4d52a870b4
conf: add app-id config option and --app-id command line option 2020-04-01 18:40:51 +02:00
Daniel Eklöf
371dd65949
doc: foot.5: minor updates to 'tweaks' 2020-03-30 20:21:23 +02:00
Daniel Eklöf
21b51db9bf
doc: fcft.5: document the 'tweak' options 2020-03-30 17:31:31 +02:00
Daniel Eklöf
ecbee4af3a
meson: completions: join_paths() all the way 2020-03-29 12:21:28 +02:00
Daniel Eklöf
2c7ee09dad
Merge branch 'scroll-damage-performance' 2020-03-29 12:07:53 +02:00
Daniel Eklöf
043ee41c0d
changelog: mention renderer performance improvements with scrolling 2020-03-29 11:32:38 +02:00
Daniel Eklöf
f0e8d146bd
ci: initial sr.ht build manifest 2020-03-28 12:32:40 +01:00
Daniel Eklöf
a2a370acba
conf: rename 'startup-mode' to 'initial-window-mode' 2020-03-28 12:04:00 +01:00
Daniel Eklöf
598ac4bcd0
Merge branch 'master' into scroll-damage-performance 2020-03-27 21:16:42 +01:00
Daniel Eklöf
758fd9fd58
client: add --maximized and --fullscreen
We now create a copy of the config for each client, and updates it
with the values passed from the client.

Since we're not actually cloning it (and e.g. strdup() all strings
etc) we can't call conf_destroy() to free it, but need to free just
the strings we've replaced.
2020-03-27 21:14:49 +01:00
Daniel Eklöf
728e23863c
foot: add --maximized and --fullscreen command line options 2020-03-26 19:47:00 +01:00
Daniel Eklöf
e197368c0f
config: add 'startup-mode' option
This option controls the initial window mode: windowed, maximized or
fullscreen. The default is windowed.
2020-03-26 19:39:12 +01:00
Daniel Eklöf
c4aaba6299
conf: max-shm-pool-size-mb=0 now disables SHM scrolling 2020-03-26 18:04:30 +01:00
Daniel Eklöf
0baa249d8b
shm: make max pool size user configurable (via a 'tweak' setting) 2020-03-25 20:48:02 +01:00
Daniel Eklöf
e9f1638750
shm: handle ftruncate failure 2020-03-25 18:32:41 +01:00
Daniel Eklöf
dc42cc1d19
shm: seal the memfd
This both prevents accidental resizing of the memfd, and allows the
Wayland server to optimze reads from the buffer - it no longer has to
setup SIGBUS handlers.
2020-03-25 18:30:21 +01:00
Daniel Eklöf
03319560f5
shm: scroll: keep shm pool around, and fix its size at max allowed
This lessens the burden on (primarily) the compositor, since we no
longer tear down and re-create the SHM pool when scrolling.

The SHM pool is setup once, and its size is fixed at the maximum
allowed (512MB for now, 2GB would be possible).

This also allows us to mmap() the memfd once. The exposed raw pointer
is simply an offset from the memfd mmapping.

Note that this means e.g. rouge rendering code will be able to write
outside the buffer.

Finally, only do this if the caller explicitly wants to enable
scrolling. The memfd of other buffers are sized to the requested size.
2020-03-25 18:26:58 +01:00
Daniel Eklöf
1891489cd6
app synchronized updates: set is_armed=false when enabling 2020-03-25 18:24:58 +01:00
Daniel Eklöf
9bbbd26c7a
render: pace title updates
Synchronize window title updates with window rendering.
2020-03-25 18:23:55 +01:00
Daniel Eklöf
b46ad6a50a
render: explain _why_ we set a clip region 2020-03-24 21:04:30 +01:00
Daniel Eklöf
5c5f1d096c
shm: scroll: implement offset wrap-around
* Impose a maximum memfd size limit. In theory, this can be
  2GB (wl_shm_create_pool() is the limiting factor - its size argument
  is an int32_t). For now, use 256MB.

  This is mainly to reduce the amount of virtual address space used by
  the compositor, which keeps at least one mmapping (of the entire
  memfd) around. One mmapping *per terminal window* that is.

  Given that we have 128TB with 48-bit virtual addresses, we could
  probably bump this to 2GB without any issues. However, 256MB should
  be enough.

  TODO: check how much we typically move the offset when scrolling in
  a fullscreen window on a 4K monitor. 256MB may turn out to be too
  small.

  On 32-bit shm_scroll() is completely disabled. There simply isn't
  enough address space.

* Wrapping is done by moving the offset to "the other end" of the
  memfd, and copying the buffer contents to the new, wrapped offset.

  The "normal" scrolling code then does the actual scrolling. This
  means we'll re-instantiate all objects twice when wrapping.
2020-03-24 17:46:48 +01:00
Daniel Eklöf
dc393bd5d7
render: bug: clear clip region before tinting the window 2020-03-24 17:45:45 +01:00